NDIS プロトコル ドライバーからの OID 要求の生成
基になるドライバーに OID 要求を送信するには、プロトコルは NdisOidRequest 関数を呼び出します。
次の図は、プロトコル ドライバーが送信する OID 要求を示しています。
プロトコル ドライバーが NdisOidRequest 関数を呼び出した後、NDIS は、次の基になるドライバーの要求関数を呼び出します。 ミニポート ドライバーが OID 要求を処理する方法の詳細については、「アダプターの OID リクエスト」を参照してください。 フィルター ドライバーが OID 要求を処理する方法の詳細については、「フィルター モジュールの OID 要求」を参照してください。
同期的に完了するには、NdisOidRequest は NDIS_STATUS_SUCCESS またはエラー状態を返します。 非同期的に完了するには、NdisOidRequest は NDIS_STATUS_PENDING を返します。
NdisOidRequest が NDIS_STATUS_PENDING を返す場合、基になるドライバーが OID 要求を完了した後、NDIS は ProtocolOidRequestComplete 関数を呼び出します。 このケースでは、NDIS は ProtocolOidRequestComplete の OidRequest パラメーターで要求の結果を渡します。 NDIS は、ProtocolOidRequestComplete の Status パラメーターで要求の最終的な状態を渡します。
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 要求で指定された値に設定します。
ドライバーは、バインディングが Restarting、Running、Pausing、または Paused 状態のときに NdisOidRequest を呼び出すことができます。