FltOpenVolume 函数 (fltkernel.h)
FltOpenVolume 例程返回一个句柄和一个文件对象指针,该句柄和文件对象指针用于附加到给定的微型筛选器驱动程序实例。
语法
NTSTATUS FLTAPI FltOpenVolume(
[in] PFLT_INSTANCE Instance,
[out] PHANDLE VolumeHandle,
[out] PFILE_OBJECT *VolumeFileObject
);
参数
[in] Instance
实例的不透明实例指针。 此实例必须附加到本地卷。
[out] VolumeHandle
文件系统卷的句柄。
[out] VolumeFileObject
指向调用方分配的变量的指针,该变量接收卷根目录的文件对象指针。 此参数是可选的,可以 NULL。
返回值
FltOpenVolume 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:
返回代码 | 描述 |
---|---|
|
正在拆毁实例或卷。 这是一个错误代码。 |
|
实例附加到网络卷。 这是一个错误代码。 |
言论
不再需要 VolumeHandle 参数中返回的句柄时,调用方必须通过调用 FltClose释放它。 因此,对 FltOpenVolume 的每个成功调用都必须匹配对 FltClose的后续调用。
如果在 VolumeFileObject 参数中返回文件对象指针,则调用方必须在不再需要 ObDereferenceObject时释放它。
Instance 参数指定的实例必须附加到本地卷。 如果连接到网络卷,FltOpenVolume 返回STATUS_INVALID_PARAMETER。
若要获取指向给定卷的设备对象的指针,请调用 FltGetDeviceObject。
若要获取有关给定实例附加到的卷的详细信息,请调用 FltQueryVolumeInformation。
注意:不要使用非 NULL 顶级 IRP 值调用此例程,因为这可能会导致系统死锁。 若要确定线程 TopLevelIrp 是否已设置调用 IoGetTopLevelIrp。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 适用于 SP4、Windows XP SP3、Windows Server 2003 SP1 和更高版本的 Windows作系统Microsoft Windows 2000 更新汇总 1。 |
目标平台 | 普遍 |
标头 | fltkernel.h (包括 Fltkernel.h) |
库 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |