Função IoQueryFullDriverPath (ntddk.h)

A rotina IoQueryFullDriverPath recupera o nome completo do caminho do arquivo binário carregado para o objeto de driver especificado. A partir Windows 10 versão 1709, os chamadores podem consultar objetos de driver que não são seus, desde que usem a sincronização adequada para garantir que a estrutura DRIVER_OBJECT permaneça válida durante a chamada.

Sintaxe

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

Parâmetros

[in] DriverObject

Um ponteiro para uma estrutura DRIVER_OBJECT . Se você estiver chamando IoQueryFullDriverPath em um computador que executa uma versão do Windows 10 anterior à versão 1709, essa estrutura será necessária para ser o objeto driver do driver de chamada.

[out] FullPath

Um ponteiro para uma estrutura de UNICODE_STRING alocada pelo chamador. No retorno bem-sucedido, essa estrutura contém o nome do caminho.

Retornar valor

IoQueryFullDriverPath retornará STATUS_SUCCESS se a chamada buscar com êxito o nome do caminho. Os valores de retorno de erro possíveis incluem os seguintes códigos de status.

Código de retorno Descrição
STATUS_ACCESS_DENIED O objeto de driver de destino não pertence ao chamador. Esse código status só é retornado em versões de Windows 10 anteriores a 1709.
STATUS_NOT_FOUND O objeto driver não tem nenhuma seção (imagem de memória carregada) associada a ele.
STATUS_INSUFFICIENT_RESOURCES Recursos insuficientes estão disponíveis para executar a operação solicitada.

Comentários

Um driver pode chamar essa rotina para consultar o nome do caminho completo de seu arquivo binário ou, começando em Windows 10 versão 1709, o nome completo do caminho do arquivo binário para outro driver.

O chamador aloca a estrutura UNICODE_STRING apontada pelo parâmetro FullPath , mas não precisa inicializar essa estrutura. IoQueryFullDriverPath pressupõe que o conteúdo original dessa estrutura seja inválido e os substitua. Essa rotina aloca um buffer de cadeia de caracteres da memória do sistema paginada, define o membro Buffer da estrutura para apontar para esse buffer e define os membros MaximumLength e Buffer para descrever o buffer e seu conteúdo.

O chamador é responsável por liberar o armazenamento apontado por FullPath-Buffer> quando a cadeia de caracteres de caminho completo não é mais necessária. Normalmente, o chamador libera esse armazenamento chamando uma rotina como ExFreePool.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.1.
Plataforma de Destino Universal
Cabeçalho ntddk.h (inclua Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

DRIVER_OBJECT

ExFreePool

UNICODE_STRING