次の方法で共有


NdisOidRequest 関数 (ndis.h)

NdisOidRequest 関数は、アダプターの機能または状態を照会したり、アダプターの状態を設定したりするために、基になるドライバーに要求を転送します。

構文

NDIS_STATUS NdisOidRequest(
  [in] NDIS_HANDLE       NdisBindingHandle,
  [in] PNDIS_OID_REQUEST OidRequest
);

パラメーター

[in] NdisBindingHandle

バインドのターゲット アダプターを識別する NdisOpenAdapterEx 関数によって返されるハンドル。

[in] OidRequest

特定のOID_XXX コードで要求された操作を指定する NDIS_OID_REQUEST 構造体へのポインター。アダプターの状態を照会するか、アダプターの状態を設定します。

戻り値

基になるドライバーは、NdisOidRequest が返 XXXコードNDIS_STATUS_を決定しますが、通常は次のいずれかの値です。

リターン コード 形容
NDIS_STATUS_SUCCESS
要求操作が正常に完了しました。
NDIS_STATUS_PENDING
要求は非同期的に処理されており、NDIS は呼び出し元を呼び出します。 ProtocolOidRequestComplete 要求の完了時に関数です。
NDIS_STATUS_INVALID_OID
OID_OidRequest NDIS_OID_REQUEST-structured バッファーの Oid メンバー で指定された XXX コードが無効であるか、基になるドライバーでサポートされていません。
NDIS_STATUS_INVALID_LENGTH またはNDIS_STATUS_BUFFER_TOO_SHORT
OidRequest のNDIS_OID_REQUEST構造化バッファーの InformationBufferLength メンバーに指定された値が、指定されたOID_XXX コードの要件と一致しません。 情報バッファーが小さすぎる場合、BytesNeeded メンバーには、NdisOidRequestから返されるときに InformationBufferLength の正しい値が含まれます。
NDIS_STATUS_INVALID_DATA
指定されたNDIS_OID_REQUEST構造体 InformationBuffer で指定されたデータは、指定されたOID_XXX コードでは無効です。
NDIS_STATUS_NOT_SUPPORTED またはNDIS_STATUS_NOT_RECOGNIZED
基になるドライバーは、要求された操作をサポートしていません。
NDIS_STATUS_RESOURCES
リソース不足のため、要求を満たできませんでした。 通常、この戻り値は、メモリの割り当て試行が失敗したことを示しますが、後で送信された同じ要求が同じ理由で失敗するとは限りません。
NDIS_STATUS_NOT_ACCEPTED
基になるドライバーは、要求された操作 (通常は NIC のセット) を試行しましたが、失敗しました。 たとえば、マルチキャスト アドレスを設定しようとすると、この値が返される可能性があります。
NDIS_STATUS_CLOSING またはNDIS_STATUS_CLOSING_INDICATING
閉じる操作が進行中のため、基になるドライバーが要求された操作に失敗しました。
NDIS_STATUS_RESET_IN_PROGRESS
基になるミニポート ドライバーは現在、影響を受ける NIC をリセットしているため、現時点では要求を満たすことはできません。 呼び出し元の ProtocolStatusEx 関数は、リセットが進行中であることを示すためにNDIS_STATUS_RESET_STARTで呼び出されました。または、呼び出されます。 この戻り値は、後で送信された同じ要求が同じ理由で失敗することを必ずしも示すわけではありません。
NDIS_STATUS_FAILURE
通常、この値は非特定の既定値であり、より具体的なNDIS_STATUS_XXX によって基になるドライバーが要求に失敗しなかった場合に返されます。

備考

プロトコル ドライバーは、指定された OID に関連付けられている情報バッファーを保持するために十分なメモリを割り当てる必要があります。 また、ドライバーは、NdisOidRequest を呼び出す前に、OidRequest でバッファー割り当てて設定する必要があります。 基になるドライバーは要求の処理中に発生した IRQL で実行されるため、両方のバッファーを非ページ プールから割り当てる必要があります。

NdisOidRequest 、基になるドライバーに要求を転送するか、要求自体を処理します。 次の下位ドライバーが NDIS 中間ドライバーの場合は、最初に上位レベルのドライバーによって送信された要求を完了する前に、独自の OID 固有の要求 NdisOidRequest を呼び出すことができます。

返される一部のエラーは、次のような回復可能です。

つまり、ドライバーは、OidRequest のパケットを適切に変更して、OID_XXX コード、または InformationBuffer のバッファーのサイズまたは内容 修正し、要求パケットを NdisOidRequest 再送信できます。 元の呼び出しでリセットが進行中であることが示された場合、またはリソース不足 (一時的な可能性があります) によって要求が実行されない場合は、NdisOidRequest する再送信時に同じパケットが満たされる可能性があります。

NDIS ライブラリは、基になるミニポート ドライバーのバインドを維持します。 NDIS は、特定の OID が、システムがフィルター ライブラリを提供するシステム定義の中の種類に関連付けられている場合、バインド固有のクエリの情報を返すことができます。

一般的な OID とメディア固有の OID とその関連する情報バッファーの詳細については、「NDIS OID を参照してください。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 以降でサポートされています。
ターゲット プラットフォーム デスクトップ
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する Irql_OID_Function(ndis)

関連項目

NDIS_OID_REQUEST

NdisOpenAdapterEx

ProtocolOidRequestComplete

ProtocolStatusEx