ミニポート アダプターの OID 要求の処理

NDIS は、ミニポート ドライバーの MiniportOidRequest 関数を呼び出して、OID 要求を送信し、ドライバーの情報を照会または設定します。 NDIS は、自身のために、あるいは NdisOidRequest またはNdisFOidRequest 関数を呼び出した上にあるドライバーの代わりに、MiniportOidRequest 関数を呼び出します。

NDIS は、MiniportOidRequest に、要求情報を含む NDIS_OID_REQUEST 構造体へのポインターを渡します。 要求構造体には、要求データを定義する要求の種類と他のメンバーを示す OID_Xxx 識別子が含まれています。

Timeout メンバーは、要求のタイムアウトを秒単位で指定します。 NDIS は、ドライバーをリセットするか、ドライバーが要求を完了する前にタイムアウトが切れた場合、要求を取り消すことができます。

RequestId メンバーは、要求の省略可能な識別子を指定します。 ミニポート ドライバーは、関連付けられている OID 要求の RequestId メンバーから取得した値に状態表示の RequestId メンバーを設定できます。 通常、ミニポート ドライバーは、このメンバーを無視できます。 ドライバーがこのメンバーを設定する必要がある場合は、特定の OID の参照ページに必要な値が表示されます。 状態表示の詳細については、「アダプターの状態の表示」を参照してください。

OID セット要求を正常に処理するミニポート ドライバーは、OID セット要求から戻ると、NDIS_OID_REQUEST 構造体の SupportedRevision メンバーを設定する必要があります。 SupportedRevision メンバーは、ドライバーがサポートしたリビジョンの要求をイニシエーターに通知します。 たとえば、ミニポート ドライバーは、Xxx_REVISION_2 構造体を作成し、Xxx_REVISION_1 構造体に適した値を指定し、構造体の残りの部分をゼロで埋めることができます。 ミニポート ドライバーは、SupportedRevision メンバーの Xxx_REVISION_1 を報告します。 この場合、Xxx_REVISION_2 をサポートできるプロトコル ドライバーは、ミニポート ドライバーがサポートした Xxx_REVISION_1 情報を使用します。 NDIS 構造体の中のバージョン情報については、「NDIS バージョン情報の指定」を参照してください。

ミニポート ドライバーは、成功または失敗の状態を返すことによって、OID 要求を同期的に完了できます。

ミニポート ドライバーは、NDIS_STATUS_PENDING を返すことによって、OID 要求を非同期的に完了できます。 この場合、ミニポート ドライバーは、操作を完了するために NdisMOidRequestComplete 関数を呼び出す必要があります。

MiniportOidRequest が NDIS_STATUS_PENDING を返す場合、NDIS は、保留中の要求が完了するまでアダプターの別の要求で MiniportOidRequest を呼び出しません。

NDIS は、OID 要求を取り消すミニポート ドライバーの MiniportCancelOidRequest 関数を呼び出すことができます。