Función IoQueryFullDriverPath (ntddk.h)
La rutina IoQueryFullDriverPath recupera el nombre de ruta de acceso completo del archivo binario que se carga para el objeto de controlador especificado. A partir de la versión 1709 de Windows 10, los autores de llamadas pueden consultar objetos de controlador que no son suyos, siempre y cuando usen la sincronización adecuada para asegurarse de que la estructura de DRIVER_OBJECT permanece válida durante la llamada.
Sintaxis
NTSTATUS IoQueryFullDriverPath(
[in] PDRIVER_OBJECT DriverObject,
[out] PUNICODE_STRING FullPath
);
Parámetros
[in] DriverObject
Puntero a una estructura de DRIVER_OBJECT. Si llamas a IoQueryFullDriverPath en un equipo que ejecuta una versión de Windows 10 anterior a la versión 1709, esta estructura es necesaria para ser el objeto de controlador para el controlador de llamada.
[out] FullPath
Puntero a una estructura de UNICODE_STRING asignada por el autor de la llamada. Si la devolución es correcta, esta estructura contiene el nombre de la ruta de acceso.
Valor devuelto
ioQueryFullDriverPath devuelve STATUS_SUCCESS si la llamada captura correctamente el nombre de la ruta de acceso. Entre los posibles valores devueltos de error se incluyen los siguientes códigos de estado.
Código devuelto | Descripción |
---|---|
STATUS_ACCESS_DENIED | El objeto del controlador de destino no pertenece al autor de la llamada. Este código de estado solo se devuelve en versiones de Windows 10 anteriores a 1709. |
STATUS_NOT_FOUND | El objeto driver no tiene ninguna sección (imagen de memoria cargada) asociada. |
STATUS_INSUFFICIENT_RESOURCES | Los recursos insuficientes están disponibles para realizar la operación solicitada. |
Observaciones
Un controlador puede llamar a esta rutina para consultar el nombre de ruta de acceso completa de su archivo binario o, a partir de Windows 10 versión 1709, el nombre de ruta de acceso completo del archivo binario para otro controlador.
El autor de la llamada asigna la estructura UNICODE_STRING a la que apunta el parámetro FullPath, pero no es necesario inicializar esta estructura. IoQueryFullDriverPath supone que el contenido original de esta estructura no es válido y los sobrescribe. Esta rutina asigna un búfer de cadenas de la memoria del sistema paginada, establece el búfer de la estructura para que apunte a este búfer y establece el MaximumLength y miembros del búfer para describir el búfer y su contenido.
El autor de la llamada es responsable de liberar el almacenamiento al que apunta fullPath:>buffer cuando ya no se necesita la cadena de ruta de acceso completa. Normalmente, el autor de la llamada libera este almacenamiento llamando a una rutina como ExFreePool.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows 8.1. |
de la plataforma de destino de | Universal |
encabezado de | ntddk.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | <= APC_LEVEL |