Функция 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 |