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 コードを返します。
リターン コード | 説明 |
---|---|
|
NMR によってプロバイダー モジュールが正常に登録されました。 |
|
NMR には、プロバイダー モジュールを登録するのに十分なシステム リソースがありませんでした。 |
|
エラーが発生しました。 |
解説
プロバイダー モジュールは 、NmrRegisterProvider 関数を呼び出して NPI のプロバイダーとして登録し、同じ NPI のクライアントとして登録するクライアント モジュールにアタッチできるようにします。
プロバイダー モジュールは通常、他のすべての初期化タスクを完了した後、DriverEntry 関数から NmrRegisterProvider 関数を呼び出します。 NmrRegisterProvider 関数の呼び出しは、プロバイダー モジュールがプロバイダーとして登録されている、またはプロバイダー モジュールがプロバイダーとして登録されているのと同じ NPI のクライアントとして登録されるクライアント モジュールにアタッチする準備ができていることを NMR に示します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | デスクトップ |
Header | netioddk.h (Wsk.h を含む) |
Library | Netio.lib |
IRQL | PASSIVE_LEVEL |