FltGetDeviceObject 函式 (fltkernel.h)

FltGetDeviceObject 例程會針對指定的磁碟區傳回篩選管理員磁碟區裝置物件的指標 (VDO) 。

語法

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

參數

[in] Volume

磁碟區的不透明指標。

[out] DeviceObject

接收磁碟區裝置物件指標之呼叫端配置的變數指標。 這個參數是必要的,而且不能是 NULL

傳回值

FltGetDeviceObject 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:

傳回碼 Description
STATUS_FLT_NO_DEVICE_OBJECT 指定的磁碟區不存在要求的裝置物件。 這是錯誤碼。

備註

FltGetDeviceObject 會針對指定的磁碟區傳回篩選管理員磁碟區裝置物件的指標 (VDO) 。

如需磁碟區裝置對象的詳細資訊,請參閱 文件系統堆疊

篩選管理員的 VDO 與基礎記憶體驅動程式的磁碟設備物件或基底檔案系統的 VDO 不同。 若要取得磁碟裝置物件的指標,請在 Volume 參數中指定的磁碟區上呼叫 FltGetDiskDeviceObject。 若要取得基底文件系統 VDO 的指標,請在 FltGetDeviceObject 所傳回的 RetDeviceObject 上呼叫 IoGetDeviceAttachmentBaseRef

若要取得指定裝置對象對應磁碟區的不透明指標,請呼叫 FltGetVolumeFromDeviceObject

FltGetDeviceObject 會遞增傳回裝置對象指標上的參考計數。 不再需要此指標時,呼叫端必須藉由呼叫 ObDereferenceObject 來遞減此參考計數。 因此, 對 FltGetDeviceObject 的每個成功呼叫都必須與 後續對 ObDereferenceObject 的呼叫相符。

規格需求

需求
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 Fltmgr.lib
Dll Fltmgr.sys
IRQL <= DISPATCH_LEVEL

另請參閱

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject