Compartilhar via


Função FltQueryInformationFile (fltkernel.h)

FltQueryInformationFile recupera informações de um determinado arquivo.

Sintaxe

NTSTATUS FLTAPI FltQueryInformationFile(
  [in]            PFLT_INSTANCE          Instance,
  [in]            PFILE_OBJECT           FileObject,
  [out]           PVOID                  FileInformation,
  [in]            ULONG                  Length,
  [in]            FILE_INFORMATION_CLASS FileInformationClass,
  [out, optional] PULONG                 LengthReturned
);

Parâmetros

[in] Instance

Ponteiro de instância opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL.

[in] FileObject

Ponteiro do objeto de arquivo para o arquivo. Esse parâmetro é necessário e não pode ser NULL.

[out] FileInformation

Ponteiro para um buffer alocado por chamador que recebe informações sobre o arquivo. O parâmetro FileInformationClass especifica o tipo de informação. Esse parâmetro é necessário e não pode ser NULL.

[in] Length

Tamanho, em bytes, do buffer FileInformation.

[in] FileInformationClass

Um valor FILE_INFORMATION_CLASS que especifica o tipo de informações de arquivo a serem retornadas no buffer FileInformation.

[out, optional] LengthReturned

Ponteiro para uma variável alocada por chamador que recebe o tamanho, em bytes, das informações retornadas no buffer FileInformation. Esse parâmetro é opcional e pode ser NULL.

Valor de retorno

FltQueryInformationFile retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:

Código de retorno Descrição
STATUS_VOLUME_DISMOUNTED
O arquivo reside em um volume que não está montado no momento. Este é um código de erro.

Observações

Um driver de minifiltro chama FltQueryInformationFile para recuperar informações do arquivo identificado por FileObject. No momento, o arquivo deve estar aberto.

FltQueryInformationFile retorna zero em qualquer membro de uma estrutura de_INFORMATION XXX FILE_que não tem suporte de um sistema de arquivos específico.

Os chamadores de FltQueryInformationFile devem estar em execução no IRQL = PASSIVE_LEVEL e com APCs habilitadas.

OBSERVAÇÃO: Não chame essa rotina com um valor IRP de nível superior não NULL, pois isso pode causar um deadlock do sistema.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho fltkernel.h (inclua Fltkernel.h)
biblioteca FltMgr.lib
de DLL Fltmgr.sys
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

Consulte também

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile