WdfDeviceInitSetPowerNotPageable-Funktion (wdfdevice.h)
[Gilt nur für KMDF]
Die WdfDeviceInitSetPowerNotPageable-Methode informiert den Power Manager, dass der Treiber nicht auf auslagerungsfähige Daten zugreift, während das System zwischen einem Ruhezustand und dem Arbeitszustand (S0) wechselt.
Syntax
void WdfDeviceInitSetPowerNotPageable(
[in] PWDFDEVICE_INIT DeviceInit
);
Parameter
[in] DeviceInit
Ein vom Aufrufer bereitgestellter Zeiger auf eine WDFDEVICE_INIT-Struktur .
Rückgabewert
Keine
Bemerkungen
Wenn Ihr Funktionstreiber oder Bustreiber WdfDeviceInitSetPowerNotPageable aufruft, befindet sich das Gerät der System-Auslagerungsdatei möglicherweise nicht im Betriebszustand (D0), wenn das Gerät Des Treibers in einen Energiesparzustand wechselt oder in den Betriebszustand zurückkehrt. Daher darf Ihr Treiber während der Energieübergänge Ihres Geräts keine Vorgänge ausführen, die dazu führen könnten, dass das Betriebssystem auf die Auslagerungsdatei zugreift. Solche Vorgänge umfassen den Zugriff auf Dateien, die Registrierung oder den ausgelagerten Pool.
Standardmäßig ermöglicht das Framework den Zugriff auf ausgelagerte Daten für Funktionstreiber. Das Framework verwendet die Einstellung des übergeordneten Geräts für jedes untergeordnete Gerät, das ein Bustreiber aufzählt, es sei denn, der Bustreiber ruft entweder WdfDeviceInitSetPowerPageable oder WdfDeviceInitSetPowerNotPageable für das untergeordnete Gerät auf. Wenn Sie einen Bustreiber schreiben, der WdfDeviceInitSetPowerPageable für ein untergeordnetes Gerät aufruft, können keine Treiber im Stapel des untergeordneten Geräts WdfDeviceInitSetPowerNotPageable aufrufen.
Das Aufrufen von WdfDeviceInitSetPowerPageable oder WdfDeviceInitSetPowerNotPageable über einen Filtertreiber hat keine Auswirkungen. Das Framework verwendet die Einstellung, die der nächstniedrige Treiber angibt.
Die meisten Treiber müssen WdfDeviceInitSetPowerPageable oder WdfDeviceInitSetPowerNotPageable nicht aufrufen. Stattdessen sollten Sie das Framework die Standardeinstellung verwenden lassen, die für Ihren Treiber geeignet ist. Ihr Treiber sollte jedoch WdfDeviceInitSetPowerNotPageable aufrufen, wenn der Treiber Teil eines Treiberstapels ist, der bei Energieübergängen nicht auf auslagerungsfähige Daten zugreifen darf (z. B. der Speicherstapel oder der Videostapel), oder wenn der Treiber ein Bustreiber ist, der Geräte auflistet, bei denen es sich um Speicher- oder Videogeräte handeln kann.
Wenn Ihr Treiber WdfDeviceInitSetPowerNotPageable aufruft, muss er dies tun, bevor er WdfDeviceCreate aufruft.
Weitere Informationen zum Aufrufen von WdfDeviceCreate finden Sie unter Erstellen eines Framework-Geräteobjekts.
Beispiele
Im folgenden Codebeispiel wird der Power Manager darüber informiert, dass ein Treiber nicht auf auslagerungsfähige Daten zugreift, während das System zwischen einem Ruhezustand und dem Arbeitszustand (S0) wechselt.
WdfDeviceInitSetPowerNotPageable(DeviceInit);
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
Kopfzeile | wdfdevice.h (einschließen von Wdf.h) |
Bibliothek | Wdf01000.sys (siehe Versionsverwaltung der Frameworkbibliothek).) |
IRQL | <= DISPATCH_LEVEL |
DDI-Complianceregeln | ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf) |