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 |