IoQueryFullDriverPath-Funktion (ntddk.h)
Die IoQueryFullDriverPath Routine ruft den vollständigen Pfadnamen der Binärdatei ab, die für das angegebene Treiberobjekt geladen wird. Ab Windows 10, Version 1709, können Aufrufer Treiberobjekte abfragen, die nicht ihre eigenen sind, solange sie die richtige Synchronisierung verwenden, um sicherzustellen, dass die DRIVER_OBJECT Struktur während des Aufrufs gültig bleibt.
Syntax
NTSTATUS IoQueryFullDriverPath(
[in] PDRIVER_OBJECT DriverObject,
[out] PUNICODE_STRING FullPath
);
Parameter
[in] DriverObject
Ein Zeiger auf eine DRIVER_OBJECT Struktur. Wenn Sie IoQueryFullDriverPath- auf einem Computer aufrufen, auf dem eine Version von Windows 10 vor Version 1709 ausgeführt wird, muss diese Struktur das Treiberobjekt für den aufrufenden Treiber sein.
[out] FullPath
Ein Zeiger auf eine aufrufergeteilte UNICODE_STRING Struktur. Bei erfolgreicher Rückgabe enthält diese Struktur den Pfadnamen.
Rückgabewert
IoQueryFullDriverPath gibt STATUS_SUCCESS zurück, wenn der Aufruf den Pfadnamen erfolgreich abruft. Mögliche Fehlerrückgabewerte sind die folgenden Statuscodes.
Rückgabecode | Beschreibung |
---|---|
STATUS_ACCESS_DENIED | Das Zieltreiberobjekt gehört nicht zum Aufrufer. Dieser Statuscode wird nur für Versionen von Windows 10 vor 1709 zurückgegeben. |
STATUS_NOT_FOUND | Dem Treiberobjekt ist kein Abschnitt (geladenes Speicherimage) zugeordnet. |
STATUS_INSUFFICIENT_RESOURCES | Unzureichende Ressourcen sind verfügbar, um den angeforderten Vorgang auszuführen. |
Bemerkungen
Ein Treiber kann diese Routine aufrufen, um den vollständigen Pfadnamen der Binärdatei abzufragen, oder ab Windows 10, Version 1709, den vollständigen Pfadnamen der Binärdatei für einen anderen Treiber.
Der Aufrufer weist die UNICODE_STRING Struktur zu, auf die der FullPath-Parameter verweist, muss diese Struktur jedoch nicht initialisieren. IoQueryFullDriverPath davon aus, dass der ursprüngliche Inhalt dieser Struktur ungültig ist und diese überschreibt. Diese Routine weist einen Zeichenfolgenpuffer aus dem ausgelagerten Systemspeicher zu, legt den Buffer Member der Struktur so fest, dass er auf diesen Puffer zeigt, und legt die MaximumLength- und Buffer- Member fest, um den Puffer und dessen Inhalt zu beschreiben.
Der Aufrufer ist für das Freigeben des Speichers verantwortlich, auf den FullPathverweist –>Buffer, wenn die vollständige Pfadzeichenfolge nicht mehr benötigt wird. In der Regel gibt der Anrufer diesen Speicher frei, indem eine Routine wie ExFreePool-aufgerufen wird.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows 8.1. |
Zielplattform- | Universal |
Header- | ntddk.h (enthalten Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |