Функция IoQueryFullDriverPath (ntddk.h)

Подпрограмма IoQueryFullDriverPath извлекает полное имя пути к двоичному файлу, загруженного для указанного объекта драйвера. Начиная с Windows 10 версии 1709 вызывающие объекты могут запрашивать объекты драйвера, которые не являются их собственными, при условии, что они используют правильную синхронизацию, чтобы гарантировать, что структура DRIVER_OBJECT остается действительной во время вызова.

Синтаксис

NTSTATUS IoQueryFullDriverPath(
  [in]  PDRIVER_OBJECT  DriverObject,
  [out] PUNICODE_STRING FullPath
);

Параметры

[in] DriverObject

Указатель на структуру DRIVER_OBJECT . При вызове IoQueryFullDriverPath на компьютере с версией Windows 10 более ранней, чем 1709, эта структура должна быть объектом драйвера для вызывающего драйвера.

[out] FullPath

Указатель на структуру, выделенную вызывающим объектом UNICODE_STRING . При успешном возвращении эта структура содержит имя пути.

Возвращаемое значение

IoQueryFullDriverPath возвращает STATUS_SUCCESS, если вызов успешно получает имя пути. Возможные возвращаемые значения ошибок включают следующие коды состояния.

Код возврата Описание
STATUS_ACCESS_DENIED Целевой объект драйвера не принадлежит вызывающей объекту. Этот код состояния возвращается только в версиях Windows 10, предшествующих 1709.
STATUS_NOT_FOUND Объект драйвера не имеет связанного с ним раздела (загруженного образа памяти).
STATUS_INSUFFICIENT_RESOURCES Недостаточно ресурсов для выполнения запрошенной операции.

Комментарии

Драйвер может вызывать эту подпрограмму для запроса полного имени пути к двоичному файлу или, начиная с Windows 10 версии 1709, полного пути к двоичному файлу для другого драйвера.

Вызывающий объект выделяет UNICODE_STRING структуру, на которую указывает параметр FullPath , но не инициализировать эту структуру. IoQueryFullDriverPath предполагает, что исходное содержимое этой структуры является недопустимым, и перезаписывает его. Эта подпрограмма выделяет строковый буфер из выгружаемой системной памяти, задает элемент Buffer структуры, указывающий на этот буфер, и задает элементы MaximumLength и Buffer для описания буфера и его содержимого.

Вызывающий объект отвечает за освобождение хранилища, на которое указывает FullPath-Buffer>, если строка полного пути больше не нужна. Как правило, вызывающий объект освобождает это хранилище, вызывая подпрограмму, например ExFreePool.

Требования

Требование Значение
Минимальная версия клиента Доступно, начиная с Windows 8.1.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также раздел

DRIVER_OBJECT

ExFreePool

UNICODE_STRING