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 值,如下所示:

返回代码 说明
STATUS_FLT_NO_DEVICE_OBJECT 给定卷不存在请求的设备对象。 这是错误代码。

注解

FltGetDeviceObject 返回指向筛选器管理器的卷设备对象的指针, (给定卷的 VDO) 。

有关卷设备对象的详细信息,请参阅 文件系统堆栈

筛选器管理器的 VDO 与基础存储驱动程序的磁盘设备对象或基本文件系统的 VDO 不同。 若要获取指向磁盘设备对象的指针,请在 Volume 参数中指定的卷上调用 FltGetDiskDeviceObject。 若要获取指向基本文件系统 VDO 的指针,请在 FltGetDeviceObject 返回的 RetDeviceObject 上调用 IoGetDeviceAttachmentBaseRef

若要获取给定设备对象的相应卷的不透明指针,请调用 FltGetVolumeFromDeviceObject

FltGetDeviceObject 递增返回的设备对象指针上的引用计数。 当不再需要此指针时,调用方必须通过调用 ObDereferenceObject 来递减此引用计数。 因此,每次成功调用 FltGetDeviceObject 都必须通过后续调用 ObDereferenceObject 进行匹配。

要求

要求
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

另请参阅

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject