nmrRegisterClient 函数 (netioddk.h)

NmrRegisterClient 函数向 NMR 注册客户端模块。

语法

NTSTATUS NmrRegisterClient(
  [in]  PNPI_CLIENT_CHARACTERISTICS ClientCharacteristics,
  [in]  __drv_aliasesMem PVOID      ClientContext,
  [out] PHANDLE                     NmrClientHandle
);

参数

[in] ClientCharacteristics

指向 的指针描述客户端模块特征的NPI_CLIENT_CHARACTERISTICS结构。 只要客户端模块已注册到 NMR,客户端模块就必须确保此结构保持有效并驻留在内存中。

[in] ClientContext

指向调用方提供的注册上下文的指针。 客户端模块使用此上下文来跟踪客户端注册的状态。 客户端模块的注册上下文的内容对 NMR 是不透明的。 每当调用客户端模块的 ClientAttachProvider 回调函数时,NMR 都会将此指针传递给客户端模块。 只要客户端模块已注册到 NMR,客户端模块就必须确保其注册上下文保持有效并驻留在内存中。

[out] NmrClientHandle

指向变量的指针,该变量接收 NMR 用来表示客户端模块注册的句柄。 客户端模块必须保存此句柄,并在从 NMR 取消注册时将其作为参数传递给 NmrDeregisterClient 函数。

返回值

NmrRegisterClient 函数返回以下 NTSTATUS 代码之一:

返回代码 说明
STATUS_SUCCESS
NMR 已成功注册客户端模块。
STATUS_INSUFFICIENT_RESOURCES
NMR 没有足够的系统资源来注册客户端模块。
其他状态代码
出现了错误。

注解

客户端模块调用 NmrRegisterClient 函数以注册为 NPI 的客户端,以便它可以附加到注册为同一 NPI 的提供程序的提供程序模块。

客户端模块通常在完成所有其他初始化任务后,从其 DriverEntry 函数调用 NmrRegisterClient 函数。 对 NmrRegisterClient 函数的调用向 NMR 指示客户端模块已准备好附加到任何已注册或将注册为客户端模块已注册为客户端的同一 NPI 的提供程序模块。

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
目标平台 桌面
标头 netioddk.h (包括 Wsk.h)
Library Netio.lib
IRQL PASSIVE_LEVEL

另请参阅

DriverEntry

NPI_CLIENT_CHARACTERISTICS

NmrDeregisterClient