次の方法で共有


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 コードを返します。

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

備考

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

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

必要条件

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

関連項目

DriverEntry

NPI_PROVIDER_CHARACTERISTICS

NmrDeregisterProvider