次の方法で共有


NDIS プロトコル ドライバーからの OID 要求の生成

基になるドライバーに OID 要求を送信するには、プロトコルは NdisOidRequest 関数を呼び出します。

次の図は、プロトコル ドライバーが送信する OID 要求を示しています。

Diagram illustrating an OID request originated by a protocol driver.

プロトコル ドライバーが NdisOidRequest 関数を呼び出した後、NDIS は、次の基になるドライバーの要求関数を呼び出します。 ミニポート ドライバーが OID 要求を処理する方法の詳細については、「アダプターの OID リクエスト」を参照してください。 フィルター ドライバーが OID 要求を処理する方法の詳細については、「フィルター モジュールの OID 要求」を参照してください。

同期的に完了するには、NdisOidRequest は NDIS_STATUS_SUCCESS またはエラー状態を返します。 非同期的に完了するには、NdisOidRequest は NDIS_STATUS_PENDING を返します。

NdisOidRequest が NDIS_STATUS_PENDING を返す場合、基になるドライバーが OID 要求を完了した後、NDIS は ProtocolOidRequestComplete 関数を呼び出します。 このケースでは、NDIS は ProtocolOidRequestCompleteOidRequest パラメーターで要求の結果を渡します。 NDIS は、ProtocolOidRequestCompleteStatus パラメーターで要求の最終的な状態を渡します。

NdisOidRequest が NDIS_STATUS_SUCCESS を返す場合は、NDIS_OID_REQUEST 構造体の OidRequest パラメーターにクエリ要求の結果を返します。 このケースでは、NDIS は ProtocolOidRequestComplete 関数を呼び出しません。

基になるドライバーによって正常に処理された情報を確認するには、OID 要求を発行するプロトコル ドライバーは、OID 要求が返された後、NDIS_OID_REQUEST 構造体の SupportedRevision メンバーの値をチェックする必要があります。 NDIS のバージョン情報の詳細については、「NDIS バージョン情報の指定」を参照してください。

基になるドライバーが OID 要求を後続の状態表示に関連付ける必要がある場合、プロトコル ドライバーは、NDIS_OID_REQUEST構造体の RequestId メンバーを設定する必要があります。 基になるドライバーがステータスを示すと、NDIS_STATUS_INDICATION 構造体の RequestId メンバーを OID 要求で指定された値に設定します。

ドライバーは、バインディングが RestartingRunningPausing、または Paused 状態のときに NdisOidRequest を呼び出すことができます。