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