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
クライアント モジュールをプロバイダー モジュールからすぐにデタッチできませんでした。

注釈

クライアント モジュールとプロバイダー モジュール間のバインドを終了する必要がある場合は常に、クライアント モジュールの 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

こちらもご覧ください

ClientCleanupBindingContext

NPI_CLIENT_CHARACTERISTICS

NmrClientAttachProvider

NmrClientDetachProviderComplete

NmrDeregisterClient

NmrDeregisterProvider

ProviderCleanupBindingContext