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:
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.
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.