CoNDIS プロトコル ドライバー (クライアントまたは呼び出しマネージャー) は、ミニポート ドライバーとその他のプロトコル ドライバーの操作パラメーターを照会または設定できます。 CoNDIS プロトコル ドライバーは、ミニポート呼び出しマネージャー (MMC) の情報を照会または設定することもできます。 OID 要求と MCM の詳細については、「 CoNDIS MCM OID 要求」を参照してください。
基になるドライバーに OID 要求を送信するには、プロトコル ドライバー は NdisCoOidRequest 関数を呼び出し、アドレス ファミリ (AF) ハンドルを NdisAfHandle パラメーターで NULL に設定します。 別の CoNDIS プロトコル ドライバーに OID 要求を送信するには、プロトコル ドライバー は NdisCoOidRequest を呼び出し、有効な AF ハンドルを提供します。
プロトコル ドライバーが NdisCoOidRequest 関数を呼び出した後、NDIS は、他のドライバー (基になるドライバーまたは別の CoNDIS プロトコル ドライバー) の OID 要求関数を呼び出します。 ミニポート ドライバーの場合、NDIS は、ミニポートCoOidRequest 関数を 呼び出します。 プロトコル ドライバーの場合、NDIS は ProtocolCoOidRequest 関数を 呼び出します。
次の図は、ミニポート ドライバーに送信される OID 要求を示しています。
次の図は、プロトコル ドライバーに送信される OID 要求を示しています。
同期的に完了するには、 NdisCoOidRequest はNDIS_STATUS_SUCCESSまたはエラー状態を返します。 非同期的に完了するために、 NdisCoOidRequest はNDIS_STATUS_PENDINGを返します。
NdisCoOidRequest がNDIS_STATUS_PENDINGを返す場合、NDIS は、他のドライバーが NdisMCoOidRequestComplete 関数または NdisCoOidRequestComplete 関数を呼び出すことによって OID 要求を完了した後、ProtocolCoOidRequestComplete 関数を呼び出します。 この場合、NDIS は ProtocolCoOidRequestComplete の OidRequest パラメーターで要求の結果を渡します。 NDIS は、ProtocolCoOidRequestComplete の状態パラメーターで要求の最終的な状態を渡します。
NdisCoOidRequest がNDIS_STATUS_SUCCESSを返す場合は、OidRequest パラメーター ポイントのNDIS_OID_REQUEST構造体のクエリ要求の結果を返します。 この場合、NDIS は ProtocolCoOidRequestComplete 関数を呼び出しません。
基になるドライバーが OID 要求を後続の状態表示に関連付ける必要がある場合、プロトコル ドライバーは、NDIS_OID_REQUEST構造体の RequestId と RequestHandle メンバーを設定する必要があります。 基になるドライバーが状態を示す場合、ドライバーは NDIS_STATUS_INDICATION 構造体の RequestId メンバーを NDIS_OID_REQUEST 構造体の RequestId メンバーの値に設定し、NDIS_STATUS_INDICATION 構造体の DestinationHandle メンバーを NDIS_OID_REQUEST 構造体の RequestHandle メンバーの値に設定します。
ドライバーは、バインドが再起動、実行中、一時停止、または一時停止状態のときに NdisCoOidRequest を呼び出すことができます。