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 用来表示提供程序模块注册的句柄的变量的指针。 提供程序模块必须保存此句柄,并将其作为参数传递给 NmrDeregisterProvider 函数(从 NMR 取消注册)。

返回值

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

返回代码 描述
STATUS_SUCCESS
NMR 已成功注册提供程序模块。
STATUS_INSUFFICIENT_RESOURCES
NMR 没有足够的系统资源来注册提供程序模块。
其他状态代码
发生错误。

言论

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

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

要求

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

另请参阅

DriverEntry

NPI_PROVIDER_CHARACTERISTICS

NmrDeregisterProvider