次の方法で共有


PnP および電源管理イベントを処理するための中間ドライバーの初期化

プラグ アンド プレイ (PnP) と電源管理イベントを処理するには、NDIS 中間ドライバーで次の操作を行う必要があります。

  • NDIS が中間ドライバーの ProtocolBindAdapterEx 関数を呼び出すと、BindParameters パラメーターは、基になるミニポート アダプターの機能を含むNDIS_PM_CAPABILITIES 構造体を指します。 電源管理機能は、次のいずれか 1 つのメンバーで報告されます。

    • PowerManagementCapabilities

      NDIS 6.0 と NDIS 6.1 中間ドライバーの場合、このメンバーには、NDIS_PNP_CAPABILITIES 構造体内の電源管理機能が含まれています。 この構造の詳細については、「OID_PNP_CAPABILITIES」を参照してください。

      注: NDIS 6.20 以降の中間ドライバーの場合、PowerManagementCapabilities メンバーは NULL に設定され、電源管理機能は PowerManagementCapabilitiesEx メンバーで報告されます。

    • PowerManagementCapabilitiesEx

      NDIS 6.20 以降の中間ドライバーの場合、このメンバーには、NDIS_PM_CAPABILITIES 構造体内の電源管理機能が含まれています。

      注: NDIS 6.0 と NDIS 6.1 の中間ドライバーの場合、PowerManagementCapabilitiesEx メンバーは NULL に設定され、電源管理機能は PowerManagementCapabilities メンバーで報告されます。

注: 基になるミニポート アダプターが電源管理イベントをサポートしていない場合、PowerManagementCapabilitiesPowerManagementCapabilitiesEx メンバーは NULL に設定されます。

  • NDIS が NDIS 中間ドライバーでサポートされている各仮想ミニポートの MiniportInitializeEx を呼び出すと、ドライバーは、次の方法で NdisMSetMiniportAttributes を呼び出すことによって、その電源管理機能を報告します。

    1. NDIS 中間ドライバーのバージョンに応じて、電源管理機能は、NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTESPowerManagementCapabilities メンバー (NDIS 6.0 と NDIS 6.1 中間ドライバーの場合) または PowerManagementCapabilitiesEx メンバー (NDIS 6.20 以降の中間ドライバー) で報告されます。 NDIS_BIND_PARAMETERS 構造体の PowerManagementCapabilities または PowerManagementCapabilitiesEx メンバーが NULL でない場合、中間ドライバーは次の操作を行う必要があります。

      • PowerManagementCapabilities (NDIS 6.0 と NDIS 6.1) または PowerManagementCapabilitiesEx (NDIS 6.20 以降) メンバーの MinMagicPacketWakeUpMinPatternWakeUpMinLinkChangeWakeUp メンバーの元の値を保存します。

      • 電源管理機能を無効にするには、MinMagicPacketWakeUpMinPatternWakeUpMinLinkChangeWakeUp メンバーを NdisDeviceStateUnspecified に設定します。

      • 変更された NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 構造体のアドレスを NdisMSetMiniportAttributes への呼び出しの MiniportAttributes パラメーターとして渡します。

    2. 中間ドライバーは、NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 構造体の AttributeFlags メンバーに NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND フラグを設定する必要があります。 ドライバーは、NdisMSetMiniportAttributes への呼び出しで、MiniportAttributes パラメーターとして、この構造体のアドレスを渡す必要があります。

    NDIS 中間ドライバーの初期化要件の詳細については、「仮想ミニポートの初期化」を参照してください。