次の方法で共有


NPI_CLIENT_ATTACH_PROVIDER_FN コールバック関数 (netioddk.h)

クライアント モジュールの ClientAttachProvider コールバック関数は、クライアント モジュールをプロバイダー モジュールにアタッチします。

構文

NPI_CLIENT_ATTACH_PROVIDER_FN NpiClientAttachProviderFn;

NTSTATUS NpiClientAttachProviderFn(
  [in] HANDLE NmrBindingHandle,
  [in] PVOID ClientContext,
  [in] PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
)
{...}

パラメーター

[in] NmrBindingHandle

クライアント モジュールとプロバイダー モジュールの間のバインドを表すために、NMR によって使用されるハンドル。

[in] ClientContext

クライアント モジュールの登録コンテキストへのポインター。 クライアント モジュールは、 NmrRegisterClient 関数を呼び出して自身を NMR に登録するときに、このポインターを NMR に渡します。

[in] ProviderRegistrationInstance

へのポインター NPI_REGISTRATION_INSTANCE 構造体。 この構造体には、プロバイダー モジュールの登録データが含まれています。

戻り値

クライアント モジュールの ClientAttachProvider コールバック関数は、次のいずれかの NTSTATUS コードを返します。

リターン コード 説明
STATUS_SUCCESS
クライアント モジュールとプロバイダー モジュールが正常に相互に接続されました。
STATUS_NOINTERFACE
クライアント モジュールがプロバイダー モジュールにアタッチされなかったか、プロバイダー モジュールがクライアント モジュールにアタッチされませんでした。
その他の状態コード
エラーが発生しました。

解説

クライアント モジュールが NMR に登録されると、クライアント モジュールがクライアントとして登録されているのと同じ NPI のプロバイダーとして登録されているプロバイダー モジュールごとに、クライアント モジュールの ClientAttachProvider コールバック関数が 1 回呼び出されます。

また、クライアント モジュールがクライアントとして登録されているのと同じ NPI のプロバイダーとして新しいネットワーク モジュールが登録されるたびに、クライアント モジュールの ClientAttachProvider コールバック関数も呼び出されます。

クライアント モジュールは、プロバイダー モジュールの登録データを調べることができます。 このデータは、 ProviderRegistrationInstance パラメーターによって指される構造にあります。 クライアント モジュールは、このデータを使用して、プロバイダー モジュールにアタッチするかどうかを決定します。

  • クライアント モジュールがプロバイダー モジュールにアタッチすると判断した場合、 ClientAttachProvider コールバック関数は NmrClientAttachProvider 関数を呼び出して添付ファイル プロセスを続行します。 この状況では、 ClientAttachProvider コールバック関数は、 の呼び出しによって返される状態コードを返す必要があります。 NmrClientAttachProvider 関数。
  • クライアント モジュールがプロバイダー モジュールにアタッチしないと判断した場合、 ClientAttachProvider コールバック関数はSTATUS_NOINTERFACEを返す必要があります。
クライアント モジュールがプロバイダー モジュールに正常にアタッチされた場合は、 NmrBindingHandle パラメーターに指定されたハンドルを保存する必要があります。 クライアント モジュールは、このハンドルをパラメーターとして に渡します。プロバイダー モジュールからデタッチすると、NmrClientDetachProviderComplete 関数が実行されます。

NMR は、IRQL = PASSIVE_LEVELでクライアント モジュールの ClientAttachProvider コールバック関数を呼び出します。

要件

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

こちらもご覧ください

ClientDetachProvider

NPI_CLIENT_CHARACTERISTICS

NPI_REGISTRATION_INSTANCE

NmrClientAttachProvider

NmrClientDetachProviderComplete

NmrRegisterClient