Compartir a través de


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

Consulte también

DRIVER_OBJECT

ExFreePool

UNICODE_STRING