NPI_CLIENT_DETACH_PROVIDER_FN回调函数 (netioddk.h)

客户端模块的 ClientDetachProvider 回调函数将客户端模块与提供程序模块分离。

语法

NPI_CLIENT_DETACH_PROVIDER_FN NpiClientDetachProviderFn;

NTSTATUS NpiClientDetachProviderFn(
  [in] PVOID ClientBindingContext
)
{...}

参数

[in] ClientBindingContext

指向客户端模块上下文的指针,用于客户端模块与要从中分离的提供程序模块之间的绑定。 客户端模块在调用 NmrClientAttachProvider 函数以附加到提供程序模块时将此指针传递给 NMR。

返回值

客户端模块的 ClientDetachProvider 回调函数返回以下 NTSTATUS 代码之一:

返回代码 说明
STATUS_SUCCESS
客户端模块已成功从提供程序模块分离。
STATUS_PENDING
客户端模块无法立即从提供程序模块分离。

注解

每当需要终止客户端模块和提供程序模块之间的绑定时,NMR 都会调用客户端模块的 ClientDetachProvider 回调函数。 分离由调用 NmrDeregisterClient 函数的客户端模块或调用 NmrDeregisterProvider 函数的提供程序模块启动。

调用 其 ClientDetachProvider 回调函数后,客户端模块不应再调用提供程序模块的任何 NPI 函数。 如果在调用客户端模块的 ClientDetachProvider 回调函数时,没有正在进行的对提供程序模块的任何 NPI 函数的调用,则客户端模块的 ClientDetachProvider 回调函数将返回STATUS_SUCCESS。

如果在调用客户端模块的 ClientDetachProvider 回调函数时正在进行对提供程序模块的一个或多个 NPI 函数的调用,则客户端模块的 ClientDetachProvider 回调函数将返回STATUS_PENDING。 在这种情况下,客户端模块必须调用完成对提供程序模块 NPI 函数的所有正在进行的调用后,NmrClientDetachProviderComplete 函数。 对 的调用 NmrClientDetachProviderComplete 函数通知 NMR 从提供程序模块分离已完成。

NMR 调用客户端模块的 ClientCleanupBindingContext 回调函数和提供程序模块的客户端模块和提供程序模块完成彼此分离之后的 ProviderCleanupBindingContext 回调函数。

NMR 在任何 IRQL <= DISPATCH_LEVEL调用客户端模块的 ClientDetachProvider 回调函数。

要求

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

另请参阅

ClientCleanupBindingContext

NPI_CLIENT_CHARACTERISTICS

NmrClientAttachProvider

NmrClientDetachProviderComplete

NmrDeregisterClient

NmrDeregisterProvider

ProviderCleanupBindingContext