Funzione FltGetDeviceObject (fltkernel.h)

La routine FltGetDeviceObject restituisce un puntatore all'oggetto dispositivo del volume di Filter Manager (VDO) per un determinato volume.

Sintassi

NTSTATUS FLTAPI FltGetDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DeviceObject
);

Parametri

[in] Volume

Puntatore opaco per il volume.

[out] DeviceObject

Puntatore a una variabile allocata dal chiamante che riceve il puntatore dell'oggetto del dispositivo del volume. Questo parametro è obbligatorio e non può essere NULL.

Valore restituito

FltGetDeviceObject 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

FltGetDeviceObject restituisce un puntatore all'oggetto dispositivo del volume di Filter Manager (VDO) per il volume specificato.

Per altre informazioni sugli oggetti del dispositivo di volume, vedere Stack di file system.

Il VDO di Filter Manager non è uguale all'oggetto dispositivo del driver di archiviazione sottostante o al VDO del file system di base. Per ottenere un puntatore all'oggetto dispositivo disco, chiamare FltGetDiskDeviceObject nel volume specificato nel parametro Volume . Per ottenere un puntatore alla VDO del file system di base, chiamare IoGetDeviceAttachmentBaseRef nel RetDeviceObject restituito da FltGetDeviceObject.

Per ottenere un puntatore opaco per il volume corrispondente per un determinato oggetto dispositivo, chiamare FltGetVolumeFromDeviceObject.

FltGetDeviceObject incrementa il conteggio dei riferimenti nel puntatore dell'oggetto dispositivo restituito. Quando questo puntatore non è più necessario, il chiamante deve decrerere il conteggio dei riferimenti chiamando ObDereferenceObject. Pertanto, ogni chiamata riuscita a FltGetDeviceObject deve essere corrispondente a una chiamata successiva a ObDereferenceObject.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (includere Fltkernel.h)
Libreria Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Vedi anche

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject