RtlFindUnicodePrefix 函数 (ntifs.h)

RtlFindUnicodePrefix 例程在前缀表中搜索给定 Unicode 文件名的最佳匹配项。

语法

NTSYSAPI PUNICODE_PREFIX_TABLE_ENTRY RtlFindUnicodePrefix(
  [in] PUNICODE_PREFIX_TABLE PrefixTable,
  [in] PCUNICODE_STRING      FullName,
  [in] ULONG                 CaseInsensitiveIndex
);

参数

[in] PrefixTable

指向前缀表的指针。 表必须已通过调用 RtlInitializeUnicodePrefix 进行初始化。

[in] FullName

指向包含文件的完整路径名的 Unicode 字符串的指针。

[in] CaseInsensitiveIndex

在文件名和前缀字符串中的位置,比较将变为不区分大小写。 对于每个字符串中的第一个 CaseInsensitiveIndex 字符,字符串比较区分大小写,其余字符串不区分大小写。

含义
0 字符串比较不区分大小写。
1..FullName.Length-1 对于位置 0 到 CaseInsensitiveIndex-1 的字符,字符串比较区分大小写;对于从 CaseInsensitiveIndex 位置到字符串末尾的字符,字符串比较不区分大小写。
FullName.Length 字符串比较区分大小写。

返回值

RtlFindUnicodePrefix 返回指向 在 FullName 处为给定字符串找到的最长正确前缀的指针。 如果未找到匹配的前缀, 则 RtlFindUnicodePrefix 返回 NULL

注解

表中的每个前缀条目都是相对于文件系统卷的根目录的路径名。 要使格式良好,前缀必须以单个反斜杠 () 开头。

找到匹配的前缀时, RtlFindUnicodePrefix 会重新平衡前缀表的 splay 树。

文件系统在使用任何其他 Rtl.之前,必须调用 RtlInitializeUnicodePrefix 来初始化前缀表 。它的 UnicodePrefix 例程。 应将初始化的前缀表结构视为不透明。

Rtl. 的调用方。UnicodePrefix 例程负责同步对前缀表的访问。 快速互斥体是用于此目的的最有效同步机制。

有关其他字符串处理例程的信息,请参阅 运行时库 (RTL) 例程

要求

要求
最低受支持的客户端 Windows XP
最低受支持的服务器 Windows Server 2003
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

RtlInitializeUnicodePrefix

RtlInsertUnicodePrefix

RtlNextUnicodePrefix

RtlRemoveUnicodePrefix

UNICODE_STRING