NPI_CLIENT_ATTACH_PROVIDER_FN回调函数 (netioddk.h)
客户端模块的 ClientAttachProvider 回调函数将客户端模块附加到提供程序模块。
语法
NPI_CLIENT_ATTACH_PROVIDER_FN NpiClientAttachProviderFn;
NTSTATUS NpiClientAttachProviderFn(
[in] HANDLE NmrBindingHandle,
[in] PVOID ClientContext,
[in] PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
)
{...}
参数
[in] NmrBindingHandle
NMR 用于表示客户端模块与提供程序模块之间的绑定的句柄。
[in] ClientContext
指向客户端模块的注册上下文的指针。 客户端模块在调用 NmrRegisterClient 函数以将自身注册到 NMR 时,会将此指针传递到 NMR。
[in] ProviderRegistrationInstance
指向 的指针 NPI_REGISTRATION_INSTANCE 结构。 此结构包含提供程序模块的注册数据。
返回值
客户端模块的 ClientAttachProvider 回调函数返回以下 NTSTATUS 代码之一:
返回代码 | 说明 |
---|---|
|
客户端模块和提供程序模块已成功相互附加。 |
|
客户端模块未附加到提供程序模块,或者提供程序模块未附加到客户端模块。 |
|
出现了错误。 |
注解
客户端模块注册到 NMR 后,NMR 将调用客户端模块的 ClientAttachProvider 回调函数,针对注册为客户端模块已注册为客户端的同一 NPI 提供程序的每个提供程序模块调用一次。
每当新的网络模块注册为客户端模块注册为客户端的同一 NPI 的提供程序时,NMR 还会调用客户端模块的 ClientAttachProvider 回调函数。
客户端模块可以检查提供程序模块的注册数据。 此数据位于 ProviderRegistrationInstance 参数指向的结构中。 客户端模块使用此数据确定是否将附加到提供程序模块:
- 如果客户端模块确定将附加到提供程序模块,则 ClientAttachProvider 回调函数调用 NmrClientAttachProvider 函数以继续附件过程。 在这种情况下, ClientAttachProvider 回调函数必须返回由调用 返回的状态代码 NmrClientAttachProvider 函数。
- 如果客户端模块确定不会附加到提供程序模块,则 ClientAttachProvider 回调函数必须返回STATUS_NOINTERFACE。
NMR 在 IRQL = PASSIVE_LEVEL 调用客户端模块的 ClientAttachProvider 回调函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
目标平台 | Windows |
标头 | netioddk.h (包括 Wsk.h) |
IRQL | PASSIVE_LEVEL |