Freigeben über


Initialisieren von Zwischentreibern für die Verarbeitung von PnP- und Energieverwaltungsereignissen

Um Plug & Play (PnP) und Energieverwaltungsereignisse zu verarbeiten, müssen NDIS-Zwischentreiber die folgenden Schritte ausführen:

  • Wenn NDIS die ProtocolBindAdapterEx-Funktion des Zwischentreibers aufruft, verweist der BindParameters-Parameter auf eine NDIS_PM_CAPABILITIES Struktur, die die Funktionen des zugrunde liegenden Miniportadapters enthält. Die Energieverwaltungsfunktionen werden in einem der folgenden Member gemeldet:

    • PowerManagementCapabilities

      Für NDIS 6.0- und NDIS 6.1-Zwischentreiber enthält dieses Element die Energieverwaltungsfunktionen innerhalb einer NDIS_PNP_CAPABILITIES-Struktur. Weitere Informationen zu dieser Struktur finden Sie unter OID_PNP_CAPABILITIES.

      Hinweis Für NDIS 6.20 und höhere Zwischentreiber ist das PowerManagementCapabilities-Element auf NULL festgelegt, und die Energieverwaltungsfunktionen werden im PowerManagementCapabilitiesEx-Member gemeldet.

    • PowerManagementCapabilitiesEx

      Für NDIS 6.20- und höher-Zwischentreiber enthält dieses Element die Energieverwaltungsfunktionen innerhalb einer NDIS_PM_CAPABILITIES-Struktur .

      Hinweis Für NDIS 6.0- und NDIS 6.1-Zwischentreiber ist der PowerManagementCapabilitiesEx-Member auf NULL festgelegt, und die Energieverwaltungsfunktionen werden im PowerManagementCapabilities-Element gemeldet.

Hinweis Wenn der zugrunde liegende Miniportadapter keine Energieverwaltungsereignisse unterstützt, werden die Elemente PowerManagementCapabilities und PowerManagementCapabilitiesEx auf NULL festgelegt.

  • Wenn NDIS MiniportInitializeEx für jeden virtuellen Miniport aufruft, der vom NDIS-Zwischentreiber unterstützt wird, meldet der Treiber seine Energieverwaltungsfunktionen, indem er NdisMSetMiniportAttributes auf folgende Weise aufruft:

    1. Je nach Version des NDIS-Zwischentreibers werden die Energieverwaltungsfunktionen entweder im PowerManagementCapabilities-Member (für NDIS 6.0- und NDIS 6.1-Zwischentreiber) oder im PowerManagementCapabilitiesEx-Member (für NDIS 6.20 und höher) von NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES gemeldet. Wenn das PowerManagementCapabilities - oder PowerManagementCapabilitiesEx-Element der NDIS_BIND_PARAMETERS-Struktur nicht NULL ist, muss der Zwischentreiber die folgenden Schritte ausführen:

      • Speichern Sie die ursprünglichen Werte der Member MinMagicPacketWakeUp, MinPatternWakeUp und MinLinkChangeWakeUp der Elemente PowerManagementCapabilities(NDIS 6.0 und NDIS 6.1) oder PowerManagementCapabilitiesEx(NDIS 6.20 und höher).

      • Deaktivieren Sie die Energieverwaltungsfunktion, indem Sie die Member MinMagicPacketWakeUp, MinPatternWakeUp und MinLinkChangeWakeUp auf NdisDeviceStateUnspecified festlegen.

      • Übergeben Sie die Adresse der geänderten NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES-Struktur als MiniportAttributes-Parameter im Aufruf von NdisMSetMiniportAttributes.

    2. Ein Zwischentreiber muss das NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND-Flag im AttributFlags-Element der NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES-Struktur festlegen. Der Treiber muss die Adresse dieser Struktur als MiniportAttributes-Parameter im Aufruf von NdisMSetMiniportAttributes übergeben.

    Weitere Informationen zu den Initialisierungsanforderungen von NDIS-Zwischentreibern finden Sie unter Initialisieren virtueller Miniports.