Compartilhar via


Função FltQueryInformationFile (fltkernel.h)

FltQueryInformationFile recupera informações para 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 de objeto de arquivo para o arquivo. Esse parâmetro é necessário e não pode ser NULL.

[out] FileInformation

Ponteiro para um buffer alocado pelo 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 pelo chamador que recebe o tamanho, em bytes, das informações retornadas no buffer FileInformation . Esse parâmetro é opcional e pode ser NULL.

Retornar valor

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.

Comentários

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

FltQueryInformationFile retorna zero em qualquer membro de uma estrutura FILE_XXX_INFORMATION que não é compatível com um sistema de arquivos específico.

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

NOTA: 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
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

Confira também

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile