Condividi tramite


Funzione FltQueryInformationFile (fltkernel.h)

FltQueryInformationFile recupera informazioni per un determinato file.

Sintassi

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

Parametri

[in] Instance

Puntatore dell'istanza opaca per il chiamante. Questo parametro è obbligatorio e non può essere NULL.

[in] FileObject

Puntatore all'oggetto file per il file. Questo parametro è obbligatorio e non può essere NULL.

[out] FileInformation

Puntatore a un buffer allocato dal chiamante che riceve informazioni sul file. Il parametro FileInformationClass specifica il tipo di informazioni. Questo parametro è obbligatorio e non può essere NULL.

[in] Length

Dimensioni, in byte, del buffer FileInformation.

[in] FileInformationClass

Valore FILE_INFORMATION_CLASS che specifica il tipo di informazioni sul file da restituire nel buffer FileInformation.

[out, optional] LengthReturned

Puntatore a una variabile allocata dal chiamante che riceve le dimensioni, in byte, delle informazioni restituite nel buffer FileInformation. Questo parametro è facoltativo e può essere NULL.

Valore restituito

FltQueryInformationFile restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio:

Codice restituito Descrizione
STATUS_VOLUME_DISMOUNTED
Il file si trova in un volume attualmente non montato. Si tratta di un codice di errore.

Osservazioni

Un driver minifiltro chiama FltQueryInformationFile per recuperare informazioni per il file identificato da FileObject. Il file deve essere aperto.

FltQueryInformationFile restituisce zero in qualsiasi membro di una struttura FILE_XXX_INFORMATION non supportata da un file system specifico.

I chiamanti di FltQueryInformationFile devono essere eseguiti in IRQL = PASSIVE_LEVEL e con LE API abilitate.

NOTA: Non chiamare questa routine con un valore IRP di primo livello diverso da NULL, perché ciò può causare un deadlock di sistema.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione fltkernel.h (include Fltkernel.h)
libreria FltMgr.lib
dll Fltmgr.sys
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)

Vedere anche

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile