nmrRegisterProvider 函数 (netioddk.h)

NmrRegisterProvider 函数向 NMR 注册提供程序模块。

语法

NTSTATUS NmrRegisterProvider(
  [in]  PNPI_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
  [in]  __drv_aliasesMem PVOID        ProviderContext,
  [out] PHANDLE                       NmrProviderHandle
);

参数

[in] ProviderCharacteristics

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

[in] ProviderContext

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

[out] NmrProviderHandle

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

返回值

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

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

注解

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

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

要求

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

另请参阅

DriverEntry

NPI_PROVIDER_CHARACTERISTICS

NmrDeregisterProvider