次の方法で共有


OID_PNP_Xxx クエリと設定の処理

中間ドライバーの仮想ミニポートは、MiniportOidRequest 関数をエクスポートする必要があります。 NDIS は、中間ドライバーの仮想ミニポートにバインドされている上位ドライバーが情報オブジェクト (OID_Xxx) をクエリまたは設定するために NdisOidRequest を呼び出すと、中間ドライバーの MiniportOidRequest 関数を呼び出します。 NDIS は、自身のために MiniportOidRequest を呼び出すこともできます。 情報オブジェクトに対する設定とクエリのミニポート ドライバーの処理の詳細については、「ミニポート ドライバー情報の取得と設定」および「WMI の NDIS サポート」を参照してください。

中間ドライバーは、ProtocolBindAdapterEx 関数で受信する基になるミニポート アダプターの機能に関する情報を保持する必要があります。 ミニポート アダプターが電源管理に対応していない場合、NDIS は、NDIS_BIND_PARAMETERSPowerManagementCapabilities メンバーを NULL に設定します。

中間ドライバーは、基になるミニポート ドライバーが保持する OID_Xxx をクエリまたは設定できます。 これは、NdisOidRequest(中間ドライバーにコネクションレスの下端がある場合)、または NdisCoOidRequest(中間ドライバーにコネクション型の下端がある場合) を使用して行います。

中間ドライバーは、次のようにクエリと設定を処理する必要があります:

  • OID_PNP_CAPABILITIES

    この OID クエリに応答して、中間ドライバーは、基になる物理ミニポート アダプターの PnP 機能を報告する必要があります。 物理デバイスのミニポート アダプターは、この OID クエリを受信しないことに注意してください。

    中間ドライバーは、バインド パラメーターで基になるミニポート アダプターの PnP 機能を受け取ります。 中間ドライバーの使用目的に応じて、上位ドライバーに渡す必要があります。 中間ドライバーとミニポート ドライバーは、ミニポート アダプター属性の PnP 機能を報告します。 中間ドライバーは、基になるミニポート ドライバーに OID_PNP_CAPABILITIES 要求を発行しません。 基になるミニポート アダプターが電源管理に対応している場合、仮想ミニポート属性の NDIS_PM_WAKE_UP_CAPABILITIES 構造では、中間ドライバーは、各ウェイクアップ機能の NdisDeviceStateUnspecified のデバイスの電源状態を指定する必要があります:

    • MinMagicPacketWakeUp
    • MinPatternWakeUp
    • MinLinkChangeWakeUp

    このような設定は、中間ドライバーが電源管理に対応しているが、システムを起動できないことを示します。

  • OID_PNP_QUERY_POWEROID_PNP_SET_POWER

    中間ドライバーは、常に OID_PNP_QUERY_POWER のクエリまたは OID_PNP_SET_POWER の設定に NDIS_STATUS_SUCCESS を返す必要があります。 中間ドライバーは、基になるミニポート ドライバーにこれらの OID 要求のいずれかを伝達することは決してできません。

  • "ウェイクアップ OID"

    基になる NIC が電源管理に対応している場合、中間ドライバーは基になるミニポート ドライバーに、 (NdisOidRequest または NdisCoOidRequest を呼び出すことによって) ウェイクアップ イベントに関連する次の OID_PNP_Xxx を渡す必要があります。

    OID_PNP_ENABLE_WAKE_UP

    OID_PNP_ADD_WAKE_UP_PATTERN

    OID_PNP_REMOVE_WAKE_UP_PATTERN

    OID_PNP_WAKE_UP_PATTERN_LIST

    OID_PNP_WAKE_UP_ERROR

    OID_PNP_WAKE_UP_OK

中間ドライバーは、基になるミニポート ドライバーのこれらの OID への応答を、上位のプロトコル ドライバーにも伝達する必要があります。

基になるミニポート アダプターが電源管理に対応していない場合、ミニポート ドライバーは、NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTESPowerManagementCapabilities メンバーを NULL に設定し、NDIS は NDIS_BIND_PARAMETERSPowerManagementCapabilities メンバーを NULL に設定します。

基になるミニポート アダプターが電源管理に対応していない場合、中間ドライバーは、これらの OID のクエリまたは設定に応答して NDIS_STATUS_NOT_SUPPORTED を返す必要があります。