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 コードを返します。
リターン コード | 説明 |
---|---|
|
クライアント モジュールがプロバイダー モジュールから正常にデタッチされました。 |
|
クライアント モジュールをプロバイダー モジュールからすぐにデタッチできませんでした。 |
注釈
クライアント モジュールとプロバイダー モジュール間のバインドを終了する必要がある場合は常に、クライアント モジュールの ClientDetachProvider コールバック関数が呼び出されます。 デタッチは、 NmrDeregisterClient 関数を呼び出すクライアント モジュールまたは NmrDeregisterProvider 関数を呼び出すプロバイダー モジュールによって開始されます。
ClientDetachProvider コールバック関数が呼び出された後、クライアント モジュールはプロバイダー モジュールの NPI 関数をこれ以上呼び出さないでください。 クライアント モジュールの ClientDetachProvider コールバック関数が呼び出されたときに、プロバイダー モジュールの NPI 関数への進行中の呼び出しがない場合、クライアント モジュールの ClientDetachProvider コールバック関数はSTATUS_SUCCESSを返します。
クライアント モジュールの ClientDetachProvider コールバック関数が呼び出されたときに、プロバイダー モジュールの NPI 関数の 1 つ以上の呼び出しが進行中の場合、クライアント モジュールの 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 |