次の方法で共有


CoNDIS プロトコル ドライバー OID 要求

CoNDIS プロトコル ドライバー (クライアントまたはコール マネージャー) は、ミニポート ドライバーとその他のプロトコル ドライバーの操作パラメーターを照会または設定できます。 CoNDIS プロトコル ドライバーは、ミニポート コール マネージャー (MCM) の情報を照会または設定することもできます。 OID 要求と MCM の詳細については、「CoNDIS MCM OID 要求」を参照してください。

基になるドライバーに OID 要求を送信するため、プロトコル ドライバーは NdisCoOidRequest 関数を呼び出し、アドレス ファミリ (AF) ハンドルを NdisAfHandle パラメーターで NULL に設定します。 別の CoNDIS プロトコル ドライバーに OID 要求を送信するため、プロトコル ドライバーは NdisCoOidRequest を呼び出し、有効な AF ハンドルを提供します。

プロトコル ドライバーが NdisCoOidRequest 関数を呼び出した後、NDIS は、他のドライバー (基になるドライバーまたは別の CoNDIS プロトコル ドライバー) の OID 要求関数を呼び出します。 ミニポート ドライバーの場合、NDIS は、MiniportCoOidRequest 関数を呼び出します。 プロトコル ドライバーの場合、NDIS は ProtocolCoOidRequest 関数を呼び出します。

次の図は、ミニポート ドライバーに向けて送信される OID 要求を示しています。

Diagram illustrating an OID request directed to a miniport driver.

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

Diagram illustrating an OID request directed to a protocol driver.

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

NdisCoOidRequest が NDIS_STATUS_PENDING を返す場合、NDIS は、他のドライバーが NdisMCoOidRequestComplete 関数または NdisCoOidRequestComplete 関数を呼び出すことによって OID 要求を完了した後、ProtocolCoOidRequestComplete 関数を呼び出します。 このケースでは、NDIS は ProtocolCoOidRequestCompleteOidRequest パラメーターで要求の結果を渡します。 NDIS は、ProtocolCoOidRequestCompleteStatus パラメーターで要求の最終的な状態を渡します。

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

基になるドライバーは、後続の状態を示す OID 要求を関連付ける必要がある場合、プロトコル ドライバーは、NDIS_OID_REQUEST構造の RequestIdRequestHandle メンバーを設定する必要があります。 基になるドライバーが状態を示す場合、ドライバーは、NDIS_STATUS_INDICATION 構造の RequestId メンバーを、NDIS_OID_REQUEST 構造の RequestId メンバーの値に設定し、NDIS_STATUS_INDICATION 構造の DestinationHandle メンバーからNDIS_OID_REQUEST 構造の RequestHandle メンバーの値に設定します。

ドライバーは、バインドが Restarting (再起動中)、Running (実行中)、Pausing (一時停止中)、または Paused (一時停止) 状態のときに NdisOidRequest を呼び出すことができます。