Funzione FltGetDiskDeviceObject (fltkernel.h)
La routine FltGetDiskDeviceObject restituisce un puntatore all'oggetto dispositivo disco associato a un determinato volume.
Sintassi
NTSTATUS FLTAPI FltGetDiskDeviceObject(
[in] PFLT_VOLUME Volume,
[out] PDEVICE_OBJECT *DiskDeviceObject
);
Parametri
[in] Volume
Puntatore opaco per il volume. Questo parametro è obbligatorio e non può essere NULL.
[out] DiskDeviceObject
Puntatore a una variabile allocata dal chiamante che riceve il puntatore dell'oggetto dispositivo. In qualsiasi errore, questo parametro non viene modificato.
Valore restituito
FltGetDiskDeviceObject restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio quanto segue:
Codice restituito | Descrizione |
---|---|
STATUS_FLT_NO_DEVICE_OBJECT | L'oggetto dispositivo richiesto non esiste per il volume specificato. Si tratta di un codice di errore. |
Commenti
FltGetDiskDeviceObject recupera un puntatore all'oggetto dispositivo di archiviazione per il disco fisico in cui risiede il volume. Il dispositivo di archiviazione non deve essere un disco effettivo.
FltGetDiskDeviceObject incrementa il conteggio dei riferimenti sul puntatore dell'oggetto dispositivo restituito in DiskDeviceObject. Quando questo puntatore non è più necessario, il chiamante deve decrerere il conteggio dei riferimenti chiamando ObDereferenceObject. Se non si esegue questa operazione, il sistema impedisce al sistema di liberare o eliminare l'oggetto dispositivo a causa del riferimento in sospeso. Pertanto ogni chiamata riuscita a FltGetDiskDeviceObject deve essere corrispondente a una chiamata successiva a ObDereferenceObject.
Un minifilter deve chiamare FltGetDiskDeviceObject solo in un callback correlato di I/O. In caso contrario, i campi dell'oggetto dispositivo restituiti potrebbero non essere validi. Questo caso nelle routine di callback, ad esempio InstanceTeardownStartCallback e InstanceTeardownCompleteCallback.
Per ottenere un puntatore all'oggetto dispositivo del volume di Filter Manager (VDO) per un determinato volume, chiamare FltGetDeviceObject.
Per ottenere un puntatore al volume opaco per il volume rappresentato da un oggetto dispositivo del volume, chiamare FltGetVolumeFromDeviceObject.
Per altre informazioni sugli oggetti del dispositivo di volume, vedere Stack di file system.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (includere Fltkernel.h) |
Libreria | Fltmgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |