Função IoQueryFullDriverPath (ntddk.h)
A rotina IoQueryFullDriverPath recupera o nome do caminho completo do arquivo binário carregado para o objeto de driver especificado. A partir do 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 de driver para o 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.
Valor de retorno
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 de status só é retornado em versões do 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. |
Observações
Um driver pode chamar essa rotina para consultar o nome completo do caminho de seu arquivo binário ou, a partir do Windows 10 versão 1709, o nome completo do caminho do arquivo binário para outro driver.
O chamador aloca a estrutura de 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 de páginas, define o buffer membro da estrutura para apontar para esse buffer e define o MaximumLength e membros do 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 |
---|---|
de cliente com suporte mínimo | Disponível a partir do Windows 8.1. |
da Plataforma de Destino | Universal |
cabeçalho | ntddk.h (incluem Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |