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 に対して不透明です。 このポインターは、プロバイダー モジュールの ProviderAttachClient コールバック関数を呼び出すたびに、このポインターをプロバイダー モジュールに渡します。 プロバイダー モジュールは、プロバイダー モジュールがNMR に登録されている限り、このコンテキストが有効であり、メモリ内に常駐していることを確認する必要があります。
[out] NmrProviderHandle
プロバイダー モジュールの登録を表すために、NMR によって使用されるハンドルを受け取る変数へのポインター。 プロバイダー モジュールは、このハンドルを保存し、NmrDeregisterProvider 関数にパラメーターとして渡す必要があります。
戻り値
NmrRegisterProvider 関数は、次のいずれかの NTSTATUS コードを返します。
リターン コード | 形容 |
---|---|
|
NMR がプロバイダー モジュールを正常に登録しました。 |
|
NMR には、プロバイダー モジュールを登録するための十分なシステム リソースがありませんでした。 |
|
エラーが発生しました。 |
備考
プロバイダー モジュールは、NmrRegisterProvider 関数を呼び出して、同じ NPI のクライアントとして登録するクライアント モジュールにアタッチできるように、NPI のプロバイダーとして登録します。
プロバイダー モジュールは通常、他のすべての初期化タスクを完了した後、DriverEntry 関数から NmrRegisterProvider 関数を呼び出します。 NmrRegisterProvider 関数の呼び出しは、プロバイダー モジュールがプロバイダー として登録されている、またはプロバイダー モジュールが登録したのと同じ NPI のクライアントとして登録するクライアント モジュールに、プロバイダー モジュールをアタッチする準備ができていることを、NMR に示します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | netioddk.h (Wsk.h を含む) |
ライブラリ | Netio.lib |
IRQL | PASSIVE_LEVEL |