Funzione FltGetVolumeProperties (fltkernel.h)

La routine FltGetVolumeProperties restituisce informazioni sulle proprietà del volume per il volume specificato.

Sintassi

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

Parametri

[in] Volume

Puntatore opaco per il volume. Questo parametro è obbligatorio e non può essere NULL.

[out] VolumeProperties

Puntatore a un buffer allocato dal chiamante che riceve le informazioni sulle proprietà del volume richieste. Se Length è zero per l'input, questo parametro viene ignorato. In caso contrario, questo parametro è obbligatorio e non può essere NULL.

VolumePropertiesLength

Dimensioni, in byte, del buffer a cui punta il parametro VolumeProperties . Questo parametro è facoltativo e può essere zero. Se è zero, LengthReturned riceve le dimensioni, in byte, del buffer necessario per contenere le proprietà del volume. Se questo parametro è diverso da zero, deve essere almeno il valore sizeof(FLT_VOLUME_PROPERTIES).

[out] LengthReturned

Puntatore a una variabile allocata dal chiamante che riceve le dimensioni, in byte, delle informazioni restituite in VolumeProperties. Se FltGetVolumeProperties restituisce STATUS_BUFFER_TOO_SMALL o se Length è zero all'input, questo parametro riceve invece le dimensioni, in byte, del buffer necessario per contenere le proprietà del volume. Questo parametro è obbligatorio e non può essere NULL.

Valore restituito

FltGetVolumeProperties restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_BUFFER_OVERFLOW
Il buffer a cui punta il parametro VolumeProperties è sufficientemente grande da contenere la parte fissa della struttura FLT_VOLUME_PROPERTIES ma non i membri FileSystemDriverName, FileSystemDeviceName o RealDeviceName . In questo caso, solo la parte fissa delle informazioni sul volume viene restituita nel buffer a cui punta il parametro VolumeProperties . Il parametro LengthReturned riceve la lunghezza effettiva, in byte, dei dati restituiti. Si tratta di un codice di avviso.
STATUS_BUFFER_TOO_SMALL
Il buffer a cui punta il parametro VolumeProperties non è sufficientemente grande da contenere le informazioni sulla proprietà del volume. Il parametro LengthReturned riceve le dimensioni del buffer necessarie. In questo caso, non viene restituita alcuna informazione sul volume. Si tratta di un codice di errore.

Commenti

FltGetVolumeProperties restituisce solo informazioni su cui è possibile eseguire query in modo sicuro durante il processo di montaggio senza rischiare un deadlock di sistema. Pertanto, un driver minifilter chiama in genere questa routine da una funzione di callback post-montaggio o una routine InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) per determinare se collegarsi a un determinato volume.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include Fltkernel.h)
Libreria FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Vedi anche

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK