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 keine 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 frühere Version von Windows 10 als Version 1709 ausgeführt wird, muss diese Struktur das Treiberobjekt für den aufrufenden Treiber sein.

[out] FullPath

Ein Zeiger auf eine aufruferseitig zugeordnete 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 status Codes.

Rückgabecode Beschreibung
STATUS_ACCESS_DENIED Das Zieltreiberobjekt gehört nicht zum Aufrufer. Dieser status Code wird nur in Versionen von Windows 10 vor 1709 zurückgegeben.
STATUS_NOT_FOUND Dem Treiberobjekt ist kein Abschnitt (geladenes Speicherimage) zugeordnet.
STATUS_INSUFFICIENT_RESOURCES Für die Ausführung des angeforderten Vorgangs sind nicht genügend Ressourcen verfügbar.

Hinweise

Ein Treiber kann diese Routine aufrufen, um den vollständigen Pfadnamen seiner Binärdatei abzufragen, oder ab Windows 10 Version 1709 den vollständigen Pfadnamen der Binärdatei für einen anderen Treiber.

Der Aufrufer ordnet die UNICODE_STRING Struktur zu, auf die der FullPath-Parameter verweist, muss diese Struktur jedoch nicht initialisieren. IoQueryFullDriverPath geht davon aus, dass der ursprüngliche Inhalt dieser Struktur ungültig ist, und überschreibt sie. Diese Routine ordnet einen Zeichenfolgenpuffer aus dem ausgelagerten Systemspeicher zu, legt fest, dass der Buffer-Member der Struktur auf diesen Puffer verweist, und legt die Elemente MaximumLength und Buffer fest, um den Puffer und seinen Inhalt zu beschreiben.

Der Aufrufer ist für das Freigeben des Speichers verantwortlich, auf den FullPath-Buffer> verweist, wenn die vollständige Pfadzeichenfolge nicht mehr benötigt wird. In der Regel gibt der Aufrufer diesen Speicher frei, indem er eine Routine wie ExFreePool aufruft.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.1.
Zielplattform Universell
Header ntddk.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

DRIVER_OBJECT

ExFreePool

UNICODE_STRING