filterAttachAtAltitude 函数 (fltuser.h)

FilterAttachAtAltitude 函数是一种调试支持函数,可将新的微筛选器实例附加到位于指定高度的卷,从而替代微筛选器的设置信息 (INF) 文件的任何设置。

语法

HRESULT FilterAttachAtAltitude(
  [in]            LPCWSTR lpFilterName,
  [in]            LPCWSTR lpVolumeName,
  [in]            LPCWSTR lpAltitude,
  [in, optional]  LPCWSTR lpInstanceName,
  [in, optional]  DWORD   dwCreatedInstanceNameLength,
  [out, optional] LPWSTR  lpCreatedInstanceName
);

参数

[in] lpFilterName

指向以 null 结尾的宽字符字符串的指针,该字符串包含要为其创建实例的微筛选器的名称。 此参数是必需的,不能为 NULL

[in] lpVolumeName

指向以 null 结尾的宽字符字符串的指针,该字符串包含新创建的实例要附加到的卷的名称。

lpVolumeName 输入字符串可以是以下任一项。 尾随反斜杠 (\) 是可选的。

  • 驱动器号,例如“D:\”
  • 卷装入点的路径,例如“c:\mnt\edrive\”
  • 唯一卷标识符 (也称为卷 GUID 名称) ,例如“\??\Volume{7603f260-142a-11d4-ac67-806d6172696f}\”
  • 非永久性设备名称 (也称为 目标名称 或 NT 设备名称) ,例如“\Device\HarddiskVolume1\”
此参数是必需的,不能为 NULL

[in] lpAltitude

指向以 null 结尾的宽字符字符串的指针,该字符串包含一个数值,该值指定微筛选器实例应在卷堆栈中占据的目标位置。 数字越大,堆栈中的相对位置就越高。 海拔高度字符串由 0 到 9 范围内的一个或多个数字组成,可以包含单个小数点。 小数点是可选的。 例如,“100.123456”是有效的海拔字符串。 此参数是必需的,不能为 NULL

[in, optional] lpInstanceName

指向以 null 结尾的宽字符字符串的指针,该字符串包含新实例的实例名称。 此参数是可选的,可以为 NULL。 如果此参数为 NULL,则新实例将接收微筛选器的默认实例名称,如 FltAttachVolume 的“备注”部分所述。

[in, optional] dwCreatedInstanceNameLength

lpCreatedInstanceName 指向的缓冲区的长度(以字节为单位)。 此参数是可选的,可以为零。

[out, optional] lpCreatedInstanceName

指向调用方分配的变量的指针,该变量在实例成功附加到卷时接收新实例的实例名称。 此参数是可选的,可以为 NULL。 如果它不为 NULL,则缓冲区必须足够大,以容纳INSTANCE_NAME_MAX_CHARS字符加上 NULL 终止符。

返回值

如果成功,FilterAttachAtAltitude 将返回S_OK。 否则,它将返回如下所示的错误值之一。

返回代码 说明
ERROR_FLT_INSTANCE_ALTITUDE_COLLISION
指定卷上的此高度上已存在一个实例。
ERROR_FLT_INSTANCE_NAME_COLLISION
指定的卷上已存在具有此名称的实例。

备注

应用程序应仅使用 FilterAttachAtAltitude 进行调试。 它不应在应用程序的零售版本中调用此函数。

FilterAttachAtAltitudeFltAttachVolumeAtAltitude 的 Win32 等效项。

术语“海拔高度”是指实例 (或应在卷的微筛选器实例堆栈中占据) 的位置。 高度越高,实例离堆栈中基本文件系统的距离就越远。 在给定卷的给定高度上只能附加一个实例。

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

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

lpCreatedInstanceName 中返回的实例名称在整个系统中是唯一的。

若要从卷中分离微筛选器实例,请调用 FilterDetach

要求

   
目标平台 通用
标头 fltuser.h (包括 Fltuser.h)
Library FltLib.lib
DLL FltLib.dll

请参阅

FilterAttach

FilterDetach

FltAttachVolumeAtAltitude