MINIPORT_SYNCHRONOUS_OID_REQUEST関数 (ndis.h)
NDIS は、ミニポート ドライバーの ミニポート同期OidRequest コールバック関数を呼び出して、同期 OID 要求を発行します。
構文
NDIS_STATUS MINIPORT_SYNCHRONOUS_OID_REQUEST(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] NDIS_OID_REQUEST *OidRequest
);
パラメーター
[in] MiniportAdapterContext
ミニポート ドライバーがその MiniportInitializeEx 関数で割り当てたコンテキスト領域へのハンドル。 ミニポート ドライバーは、このコンテキスト領域を使用して、ミニポート アダプターの状態情報を維持します。
[in] OidRequest
バッファーとミニポート ドライバーが処理する要求パケットの両方を含む NDIS_OID_REQUEST構造体への ポインター。 要求に応じて、ドライバーは、指定された構造体で要求された情報を返します。
戻り値
MiniportSynchronousOidRequest は、次のいずれかの状態値を返すことができます。
リターン コード | 説明 |
---|---|
|
ミニポート ドライバーは、要求に応じてデータを設定または取得します。 |
|
OidRequest が指定した要求が無効であるか、認識されませんでした。 |
|
OidRequest が指定した要求が認識されましたが、ミニポート ドライバーではサポートされていません。 |
|
OidRequest が提供するバッファーが小さすぎて、要求されたデータを保持できませんでした。 |
|
OidRequest のNDIS_OID_REQUEST構造体の InformationBufferLength メンバーで指定された値が、指定したOID_Xxx コードに対して正しくありません。 |
|
OidRequest で要求に指定された 1 つ以上のパラメーターが無効でした。 |
|
ミニポート ドライバーは、後続の状態を示す OID 完了状態を提供します。 ミニポート ドライバーは、特定の OID がそれを許可しない限り、NDIS_STATUS_INDICATION_REQUIREDを返すことができません。 この状態が許可されているかどうかを確認するには、OID リファレンス ページを参照してください。 NDIS_STATUS_INDICATION_REQUIREDの詳細については、「 NDIS_OID_REQUEST と NDIS_STATUS_INDICATION」を参照してください。 |
|
を呼び出した後、 ミニポートDevicePnPEventNotify ドライバーの MiniportHaltEx 関数を呼び出した NDIS を突然削除を示す関数。 NDIS が MiniportHaltEx を呼び出す前に、ドライバーが OID 要求を受信した場合は、状態値が NDIS_STATUS_NOT_ACCEPTED でこのような要求をすぐに完了する必要があります。
ミニポート ドライバーは、突然の削除後にすべての OID のNDIS_STATUS_NOT_ACCEPTEDを返す必要が常にありませんが、これを行うと、呼び出しが失敗した理由を説明するのに役立ちます。 |
注釈
MiniportSynchronousOidRequest は省略可能な関数です。 ミニポート ドライバーは、同期 OID 要求を処理する場合、この関数を登録します。 ドライバーは、NDIS_MINIPORT_DRIVER_CHARACTERISTICS構造体のSynchronousOidRequestHandler メンバーを使用して NdisMRegisterMiniportDriver 関数を呼び出すときに、MiniportSynchronousOidRequest エントリ ポイントを指定します。
ミニポート ドライバーは、MiniportSynchronousOidRequest からNDIS_STATUS_PENDINGまたはNDIS_STATUS_REQUEST_ABORTEDを返してはなりません。 同期 OID 要求をペンまたは取り消すことはできません。
ミニポート ドライバーは、デバイスの突然の削除をドライバーに通知する ミニポートDevicePnPEventNotify を呼び出した後、NDIS_STATUS_NOT_ACCEPTEDを返す可能性があります。 ただし、ミニポート ドライバーは、別の状態コードを使用して OID 要求を完了する可能性があります (可能な場合)。 詳細については、各 OID の特定のドキュメントを参照してください。
ミニポート ドライバーは、ブロック、待機、またはスリープ状態にすることなく、同期 OID 要求をすばやく完了することが期待されます。 同期 OID 要求は待機時間の短い操作にのみ使用され、ミニポート ドライバーは数ミリ秒以内にそれらを完了するように努める必要があります。 ほとんどの OID 要求は 、MiniportOidRequest に配信されます。これは、ペンまたは長時間待機することが許可されます。
NDIS では、互いに、他の OID 要求に対して、 MiniportPause に対して、 MiniportResetEx に対して、または電源遷移に対して同期 OID 要求をシリアル化しません。 ミニポート ドライバーは、独自の同期を実装し、要求を正常に処理できないときに配信される要求を失敗させる必要があります。
NDIS は 、MiniportHaltEx に対して同期 OID 要求をシリアル化します。NDIS では、 MiniportHaltEx が呼び出されると、同期 OID 要求がアクティブになることが保証されます。
NDIS 選択的中断を実装するミニポート ドライバーは、同期 OID と互換性がありません、 ミニポートSynchronousOidRequest ハンドラーを登録することはできません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 バージョン 1709 |
対象プラットフォーム | Windows |
ヘッダー | ndis.h (Ndis.h を含む) |
IRQL | <= DISPATCH_LEVEL |