NmrRegisterProvider 関数 (netioddk.h)

NmrRegisterProvider 関数は、プロバイダー モジュールを NMR に登録します。

構文

NTSTATUS NmrRegisterProvider(
  [in]  PNPI_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
  [in]  __drv_aliasesMem PVOID        ProviderContext,
  [out] PHANDLE                       NmrProviderHandle
);

パラメーター

[in] ProviderCharacteristics

へのポインター NPI_PROVIDER_CHARACTERISTICS プロバイダー モジュールの特性を記述する構造体です。 プロバイダー モジュールは、プロバイダー モジュールが NMR に登録されている限り、この構造体が有効であり、メモリに常駐していることを確認する必要があります。

[in] ProviderContext

登録の呼び出し元が指定したコンテキストへのポインター。 プロバイダー モジュールでは、このコンテキストを使用して、プロバイダー登録の状態を追跡します。 プロバイダー モジュールの登録コンテキストの内容は、NMR に対して不透明です。 NMR は、プロバイダー モジュールの ProviderAttachClient コールバック関数を呼び出すたびに、プロバイダー モジュールにこのポインターを渡します。 プロバイダー モジュールは、プロバイダー モジュールが NMR に登録されている限り、このコンテキストが有効であり、メモリ内に常駐していることを確認する必要があります。

[out] NmrProviderHandle

プロバイダー モジュールの登録を表すために NMR によって使用されるハンドルを受け取る変数へのポインター。 プロバイダー モジュールは、このハンドルを保存し、NMR から登録解除するときに 、それをパラメーターとして NmrDeregisterProvider 関数に渡す必要があります。

戻り値

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

リターン コード 説明
STATUS_SUCCESS
NMR によってプロバイダー モジュールが正常に登録されました。
STATUS_INSUFFICIENT_RESOURCES
NMR には、プロバイダー モジュールを登録するのに十分なシステム リソースがありませんでした。
その他の状態コード
エラーが発生しました。

解説

プロバイダー モジュールは 、NmrRegisterProvider 関数を呼び出して NPI のプロバイダーとして登録し、同じ NPI のクライアントとして登録するクライアント モジュールにアタッチできるようにします。

プロバイダー モジュールは通常、他のすべての初期化タスクを完了した後、DriverEntry 関数から NmrRegisterProvider 関数を呼び出します。 NmrRegisterProvider 関数の呼び出しは、プロバイダー モジュールがプロバイダーとして登録されている、またはプロバイダー モジュールがプロバイダーとして登録されているのと同じ NPI のクライアントとして登録されるクライアント モジュールにアタッチする準備ができていることを NMR に示します。

要件

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

こちらもご覧ください

DriverEntry

NPI_PROVIDER_CHARACTERISTICS

NmrDeregisterProvider