Compartilhar via


Função FltQueryInformationFile (fltkernel.h)

FltQueryInformationFile recupera informações de um determinado arquivo.

Syntax

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
);

Parameters

[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.

Return value

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

Return code Description
STATUS_VOLUME_DISMOUNTED
O arquivo reside em um volume que não está montado no momento. Este é um código de erro.

Remarks

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 em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais 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.

Requirements

Requirement Value
Target Platform Universal
Header fltkernel.h (inclua Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

See also

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile