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 caso di errore, questo parametro non viene modificato.
Valore restituito
FltGetDiskDeviceObject restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio:
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. |
Osservazioni
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 all'oggetto dispositivo restituito in DiskDeviceObject. Quando questo puntatore non è più necessario, il chiamante deve decrementare questo conteggio dei riferimenti chiamando ObDereferenceObject. In caso contrario, impedisce al sistema di liberare o eliminare l'oggetto dispositivo a causa del riferimento in sospeso. Pertanto ogni chiamata riuscita a FltGetDiskDeviceObject deve essere confrontata con una chiamata successiva a ObDereferenceObject.
Un minifiltro deve chiamare FltGetDiskDeviceObject solo in un callback correlato all'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 volume di Gestione filtri (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 dispositivo del volume, vedere stack di file system.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | fltkernel.h (include Fltkernel.h) |
libreria | Fltmgr.lib |
dll | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |