WskCaptureProviderNPI 関数 (wsk.h)

WskCaptureProviderNPI 関数は、プロバイダーのネットワーク プログラミング インターフェイス (NPI) が WSK サブシステムから使用可能になったときにキャプチャします。

構文

NTSTATUS WskCaptureProviderNPI(
  [in]  PWSK_REGISTRATION WskRegistration,
  [in]  ULONG             WaitTimeout,
  [out] PWSK_PROVIDER_NPI WskProviderNpi
);

パラメーター

[in] WskRegistration

WSK アプリケーションの登録インスタンスを識別する WskRegister によって初期化されたメモリの場所へのポインター。 詳細については、「 WSK_REGISTRATION」を参照してください。

[in] WaitTimeout

WskCaptureProviderNPI 関数が WSK プロバイダー NPI が使用可能になるまで待機できる時間 (ミリ秒単位)。 または、次の指定も可能です。

WSK_NO_WAIT

プロバイダー NPI が使用できない場合は、すぐにこの関数から戻ります。

WSK_INFINITE_WAIT

プロバイダー NPI が WSK サブシステムから使用可能になるまで待ちます。

このパラメーターの使用方法の詳細については、「 Winsock カーネル アプリケーションの登録」を参照してください。

[out] WskProviderNpi

WSK プロバイダーによって返される NPI へのポインター。 この WSK_PROVIDER_NPI 構造体には、WSK アプリケーションが呼び出すことができる WSK 関数の WSK プロバイダー ディスパッチ テーブルへのポインターが含まれています。

戻り値

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

リターン コード 説明
STATUS_SUCCESS
プロバイダー NPI キャプチャが正常に完了しました。
STATUS_DEVICE_NOT_READY
プロバイダー NPI はまだ使用できませんでした。
STATUS_NOINTERFACE
WSK クライアントによって要求されたバージョンは、WSK サブシステムではサポートされていません。
その他の状態コード
プロバイダー NPI キャプチャに失敗しました。

注釈

成功コードを返す WskCaptureProviderNPI の呼び出しごとに、 WskCaptureProviderNPI に渡されたのと同じ WskRegistration パラメーターを使用する、対応する WskReleaseProviderNPI 呼び出しが 1 つだけ必要です。

WskCaptureProviderNPI は、WskRegistration ブロックが解放または上書きされていない場合にのみ、WskDeregister への呼び出しが行われた後に呼び出すことができます。 WskDeregister が呼び出されると、WskCaptureProviderNPI のそれ以降の呼び出しは状態コード STATUS_DEVICE_NOT_READYで失敗し、プロバイダー NPI が同時に使用可能にならない限り、WSK プロバイダー NPI が使用可能になるのを待機している他のスレッドでブロックされている既存の WskCaptureProviderNPI 呼び出しも、状態コード STATUS_DEVICE_NOT_READYですぐに返されます。

WSK アプリケーションを WSK サブシステムにアタッチする方法の詳細については、「 Winsock カーネル アプリケーションの登録」を参照してください。

WaitTimeout が WSK_NO_WAIT に設定されていない場合、WskCaptureProviderNPI 関数の呼び出し元は IRQL = PASSIVE_LEVEL で実行されている必要があります。それ以外の場合、呼び出し元は IRQL <= DISPATCH_LEVELで実行されている必要があります。

要件

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

こちらもご覧ください

WskDeregister

WskRegister

WskReleaseProviderNPI