Training
Modul
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
Dieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Auslagerungscode ist Code, der in die Auslagerungsdatei des Computers geschrieben werden kann, wenn der Code nicht verwendet wird. Sie können einen Teil Ihres Treibers auslagerbar machen, um das Ladeimage und die anfängliche Ladezeit zu reduzieren und den Code Ihres Treibers zu reduzieren, der den begrenzten Arbeitsspeicherpool des Computers verwendet.
Gehen Sie wie folgt vor, um festzustellen, ob ausgelagerter Code oder Daten für Ihren Treiber geeignet sind:
Identifizieren Sie auslagerungsfähige Abschnitte in Ihrem Treiber.
Auslagerungsabschnitte werden erst in den Arbeitsspeicher geladen, wenn sie benötigt werden. Informationen zum Erstellen von ausgelagerten Abschnitten in einem Treiber finden Sie unter Auslagerung von Treibern.
Stellen Sie sicher, dass ausgelagerter Treibercode nicht die Fähigkeit eines Computers beeinträchtigt, schnell aus einem Energiesparzustand zu erwachen.
Alle Geräteobjektrückruffunktionen, die Treiber bereitstellen, werden unter IRQL = PASSIVE_LEVEL aufgerufen, wodurch Sie ihren Code auswertbar machen können (wie unter Making Drivers Pageable beschrieben).
Sie sollten jedoch den Code einer Rückruffunktion nicht auswertbar machen, wenn das Framework die Rückruffunktion aufruft, wenn das Gerät einen Low-Power-Zustand verlässt und in seinen Arbeitszustand (D0) zurückkehrt.
Wenn dieser Code ausgelagert werden kann, wird der Code möglicherweise in die Auslagerungsdatei geschrieben, bevor der Computer in den Ruhezustand wechselt. Daher wird der Computer langsamer aktiviert, da Ihr Code nicht erneut geladen werden kann (und ihr Gerät daher nicht vollständig betriebsbereit sein kann), bis die Stromversorgung des Auslagerungsdatenträgers wiederhergestellt ist.
Aus diesem Grund sollten die Rückruffunktionen, die im Thema A Device Returns to Its Working State aufgeführt sind, nicht ausgelagert werden können.
Ermitteln Sie, ob Ihr Treiber bei Energieübergängen Zugriff auf auslagerungsfähige Daten außerhalb des Treibers benötigt, z. B. Dateien, die Registrierung oder den ausgelagerten Pool.
Informationen zum Aktivieren und Deaktivieren der Fähigkeit eines Treibers, während des Energieübergangs auf ausgelagerte Daten zuzugreifen, finden Sie unter WdfDeviceInitSetPowerPageable und WdfDeviceInitSetPowerNotPageable.
Informationen dazu, wie Sie ermitteln können, wann sich Ihr Treiber in einem nicht ausstellbaren Zustand befindet, finden Sie unter WdfDevStateIsNP.
Training
Modul
Troubleshoot device driver failures - Training
This module focuses on the role of device drivers and troubleshooting problems that pertain to them.
Dokumentation
WdfRequestRetrieveInputWdmMdl-Funktion (wdfrequest.h) - Windows drivers
Die WdfRequestRetrieveInputWdmMdl-Methode ruft eine Speicherdeskriptorliste (Memory Descriptor List, MDL) ab, die den Eingabepuffer einer E/A-Anforderung darstellt.
WdfRequestFormatRequestUsingCurrentType-Funktion (wdfrequest.h) - Windows drivers
Die WdfRequestFormatRequestUsingCurrentType-Methode formatiert eine angegebene E/A-Anforderung, sodass der Treiber sie, unverändert, an das lokale E/A-Ziel des Treibers weiterleiten kann.
WdfIoQueueGetDevice-Funktion (wdfio.h) - Windows drivers
Die WdfIoQueueGetDevice-Methode gibt ein Handle an das Framework-Geräteobjekt zurück, zu dem eine angegebene E/A-Warteschlange gehört.