Função NtQueryInformationByName (ntifs.h)

NtQueryInformationByName retorna as informações solicitadas sobre um arquivo especificado pelo nome do arquivo.

Sintaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryInformationByName(
  [in]  POBJECT_ATTRIBUTES     ObjectAttributes,
  [out] PIO_STATUS_BLOCK       IoStatusBlock,
  [out] PVOID                  FileInformation,
  [in]  ULONG                  Length,
  [in]  FILE_INFORMATION_CLASS FileInformationClass
);

Parâmetros

[in] ObjectAttributes

Ponteiro para uma estrutura OBJECT_ATTRIBUTES que contém os atributos do arquivo, incluindo o nome do arquivo.

[out] IoStatusBlock

Ponteiro uma estrutura de IO_STATUS_BLOCK que contém a status de E/S do chamador.

[out] FileInformation

Ponteiro para o buffer fornecido pelo chamador no qual retornar as informações solicitadas sobre o arquivo. A estrutura do buffer é determinada pelo parâmetro FileInformationClass .

[in] Length

Comprimento, em bytes, do buffer para o qual FileInformation aponta.

[in] FileInformationClass

Um valor FILE_INFORMATION_CLASS que identifica o tipo de informações de arquivo a serem retornadas no buffer para o qual FileInformation aponta. FileInformationClass pode ser um dos valores a seguir.

Valor FILE_INFORMATION_CLASS Tipo de informações a serem retornadas
FileStatInformation (68) FILE_STAT_INFORMATION. Disponível a partir do Windows 10, versão 1709.
FileStatLxInformation (70) FILE_STAT_LX_INFORMATION. Disponível a partir do Windows 10 Atualização de abril de 2018.
FileCaseSensitiveInformation (71) FILE_CASE_SENSITIVE_INFORMATION. Disponível a partir do Windows 10 Atualização de abril de 2018.
FileStatBasicInformation (77) FILE_STAT_BASIC_INFORMATION. Disponível a partir do Windows 11, build 26048.

Retornar valor

NtQueryInformationByName retorna STATUS_SUCCESS após a conclusão bem-sucedida; caso contrário, retornará um código de erro, como um dos seguintes.

Código do Erro Significado
STATUS_INVALID_PARAMETER O parâmetro FileInformationClass contém um valor inválido.
STATUS_INFO_LENGTH_MISMATCH O tamanho do buffer especificado por Length não é grande o suficiente para conter as informações solicitadas.

Comentários

NtQueryInformationByName consulta e retorna as informações solicitadas sobre o arquivo. Ele faz isso sem abrir o arquivo real, tornando-o mais eficiente do que NtQueryInformationFile, que requer um arquivo aberto (e fechamento de arquivo subsequente).

Os chamadores de NtQueryInformationByName devem estar em execução em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1703
Cabeçalho ntifs.h
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

Confira também

FILE_CASE_SENSITIVE_INFORMATION

FILE_INFORMATION_CLASS

FILE_STAT_INFORMATION

FILE_STAT_LX_INFORMATION

IO_STATUS_BLOCK

NtQueryInformationFile

OBJECT_ATTRIBUTES