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

Vedi anche

FltGetDeviceObject

FltGetVolumeFromDeviceObject

ObDereferenceObject

ObReferenceObject