Freigeben über


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

Siehe auch

DRIVER_OBJECT

ExFreePool-

UNICODE_STRING