fltGetUpperInstance 函数 (fltkernel.h)

FltGetUpperInstance 例程返回下一个较高微筛选器驱动程序实例(如果有)的不透明实例指针,该指针附加到同一卷上的给定微筛选器驱动程序实例上方。

语法

NTSTATUS FLTAPI FltGetUpperInstance(
  [in]  PFLT_INSTANCE CurrentInstance,
  [out] PFLT_INSTANCE *UpperInstance
);

参数

[in] CurrentInstance

请求下一个更高实例的实例的不透明实例指针。

[out] UpperInstance

指向调用方分配的变量的指针,该变量接收下一个更高实例的不透明实例指针。 此参数是必需的,不能为 NULL

返回值

FltGetUpperInstance 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:

返回代码 说明
STATUS_NO_MORE_ENTRIES
找不到更高的实例。 这是一个警告代码。

注解

如果一个实例连接到同一卷上的较高高度,则表示另一个实例 高于 另一个实例。 术语“海拔”是指实例 (或应在卷的微筛选器驱动程序实例堆栈中占据) 的位置。 高度越高,实例离堆栈中基本文件系统的距离就越远。 在给定卷的给定高度上只能附加一个实例。

海拔由 海拔字符串指定,该字符串是计数的 Unicode 字符串,由 0 到 9 范围内的一个或多个十进制数字组成,可以包含单个小数点。 例如,“100.123456”和“03333”是有效的海拔字符串。

字符串“03333”表示高于“100.123456”的海拔高度。 (前导零和尾随零将被忽略。) 换句话说,高度为“03333”的实例比高度为“100.123456”的实例离基本文件系统更远。 但是,仅当两个实例都附加到同一卷时,此比较才有意义。

FltGetUpperInstance 添加对 UpperInstance 参数中返回的不透明实例指针的断开引用。 当不再需要此指针时,调用方必须通过调用 FltObjectDereference 释放它。 因此,每次成功调用 FltGetUpperInstance 都必须通过后续调用 FltObjectDereference 进行匹配。

要求

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

另请参阅

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetBottomInstance

FltGetLowerInstance

FltGetTopInstance

FltObjectDereference