NmrDeregisterClient 関数 (netioddk.h)

NmrDeregisterClient 関数は、NMR からクライアント モジュールを登録解除します。

構文

NTSTATUS NmrDeregisterClient(
  [in] HANDLE NmrClientHandle
);

パラメーター

[in] NmrClientHandle

クライアント モジュールの登録を表すために NMR によって使用されるハンドル。 クライアント モジュールが NmrRegisterClient 関数を呼び出すと、NMR はクライアント モジュールにこのハンドルを返します。

戻り値

NmrDeregisterClient 関数は、次のいずれかの NTSTATUS コードを返します。

リターン コード 説明
STATUS_PENDING
NMR によってクライアント モジュールの登録解除が開始されました。 クライアント モジュールは、 を呼び出す必要があります。クライアント モジュールをアンロードする前に、登録解除が完了するまで待機する NmrWaitForClientDeregisterComplete 関数。
その他の状態コード
エラーが発生しました。

解説

クライアント モジュールが NmrDeregisterClient 関数を呼び出すと、NMR はクライアント モジュールの ClientDetachProvider コールバック関数と、クライアント モジュールとプロバイダー モジュール間の各バインディングに対してプロバイダー モジュールの ProviderDetachClient コールバック関数を呼び出します。 NMR からのクライアント モジュールの登録解除は、クライアント モジュールが接続されているすべてのプロバイダー モジュールから正常にデタッチされ、それらのプロバイダー モジュールがすべてクライアント モジュールから正常にデタッチされた後に完了します。

クライアント モジュールは通常、Unload 関数から NmrDeregisterClient 関数を呼び出して、クライアント モジュールがシステムからアンロードされる前にアタッチされているすべてのプロバイダー モジュールから自身をデタッチします。 NmrDeregisterClient 関数を呼び出した後、クライアント モジュールは を呼び出す必要があります。クライアント モジュールをアンロードする前に、登録解除が完了するまで待つ NmrWaitForClientDeregisterComplete 関数。 登録解除が完了するまで、クライアント モジュールは Unload 関数の呼び出しからを返してはなりません。

メモクライアント モジュールが Windows Driver Framework を使用する場合、通常は EvtDriverUnload イベント コールバック関数から NmrDeregisterClient 関数を呼び出します。 このような状況では、登録解除が完了するまで、クライアント モジュールは EvtDriverUnload 関数の呼び出しからを返してはなりません。
 

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header netioddk.h (Wsk.h を含む)
Library Netio.lib
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

ClientDetachProvider

EvtDriverUnload

NmrRegisterClient

NmrWaitForClientDeregisterComplete

ProviderDetachClient

アンロード