次の方法で共有


NmrDeregisterProvider 関数 (netioddk.h)

NmrDeregisterProvider 関数は、NMR からプロバイダー モジュールを登録解除します。

構文

NTSTATUS NmrDeregisterProvider(
  [in] HANDLE NmrProviderHandle
);

パラメーター

[in] NmrProviderHandle

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

戻り値

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

リターン コード 説明
STATUS_PENDING
NMR はプロバイダー モジュールの登録解除を開始しました。 プロバイダー モジュールは、 を呼び出す必要があります。 NmrWaitForProviderDeregisterComplete 関数は、登録解除が完了するまで待機してから、プロバイダー モジュールをアンロードできます。
その他の状態コード
エラーが発生しました。

解説

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

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

メモ プロバイダー モジュールが Windows Driver Framework を使用する場合、通常は、 EvtDriverUnload イベント コールバック関数の NmrDeregisterProvider 関数。 この状況では、登録解除が完了するまで、プロバイダー モジュールは EvtDriverUnload 関数の呼び出しからを返す必要があります。
 

要件

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

こちらもご覧ください

ClientDetachProvider

EvtDriverUnload

NmrRegisterProvider

NmrWaitForProviderDeregisterComplete

ProviderDetachClient

アンロード