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 in 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 di 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 in 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 |
---|---|
|
Il buffer a cui punta il parametro VolumeProperties è sufficientemente grande da contenere la parte fissa della struttura FLT_VOLUME_PROPERTIES, ma non il FileSystemDriverName, FileSystemDeviceNameo membri 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. |
|
Il buffer a cui punta il parametro VolumeProperties non è sufficiente per contenere le informazioni sulla proprietà del volume. Il parametro LengthReturned riceve le dimensioni del buffer necessarie. In questo caso, non vengono restituite informazioni sul volume. Si tratta di un codice di errore. |
Osservazioni
FltGetVolumeProperties restituisce solo informazioni che possono essere sottoposte a query in modo sicuro durante il processo di montaggio senza rischi di deadlock di sistema. Pertanto, un driver minifilter chiama in genere questa routine da una funzione di callback post-montaggio o da una routine InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) per determinare se collegare a un determinato volume.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | fltkernel.h (include Fltkernel.h) |
libreria | FltMgr.lib |
dll | Fltmgr.sys |
IRQL | <= APC_LEVEL |