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 istanza opaca per il chiamante. Questo parametro è obbligatorio e non può essere NULL.

[in] FileObject

Puntatore a oggetti 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 sui file da restituire nel buffer FileInformation .

[out, optional] LengthReturned

Puntatore a una variabile allocata del 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 quanto segue:

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

Commenti

Un driver minifilter 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, in quanto può causare un deadlock di sistema.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (includere Fltkernel.h)
Libreria FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL (vedere la sezione Osservazioni)

Vedi anche

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile