FsRtlIsNameInExpression 例程确定 Unicode 字符串是否与指定的模式匹配。
语法
BOOLEAN FsRtlIsNameInExpression(
[in] PUNICODE_STRING Expression,
[in] PUNICODE_STRING Name,
[in] BOOLEAN IgnoreCase,
[in, optional] PWCH UpcaseTable
);
参数
[in] Expression
指向模式字符串的指针。 可以包含通配符。 如果 IgnoreCase为 TRUE,则 表达式 必须为大写。
[in] Name
指向要与模式进行比较的字符串的指针。 不能包含通配符。
[in] IgnoreCase
对于不区分大小写的匹配,设置为 TRUE,否则 FALSE。
[in, optional] UpcaseTable
可选指针,指向要用于不区分大小写的匹配的大写字符表。 如果未提供此值,则使用默认系统大写字符表。
返回值
如果字符串与模式匹配,则 FsRtlIsNameInExpression 返回 TRUE,否则 FALSE。
言论
可以在模式字符串中使用以下通配符。
通配符 | 意义 |
---|---|
* (星号) | 匹配零个或多个字符。 |
? (问号) | 匹配单个字符。 |
DOS_DOT | 匹配名称字符串之外的句点或零个字符。 |
DOS_QM | 匹配任何单个字符,或者在遇到句点或名称字符串的结尾时,将表达式推进到连续DOS_QMs集的末尾。 |
DOS_STAR | 匹配零个或多个字符,直到遇到和匹配最终字符。 名称中的 。 |
在资源条件低的情况下,FsRtlIsNameInExpression 可能会引发结构化异常,代码为STATUS_NO_MEMORY,调用方应准备好处理这些异常。 有关详细信息,请参阅 结构化异常处理。
注意
如果其中一个字符串参数的长度为零,FsRtlIsNameInExpression 返回 FALSE。 这意味着“*”与 null 字符串不匹配。
如果这两个参数均为 null 字符串,FsRtlIsNameInExpression 返回 TRUE。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 此例程是 Windows 2000 |
目标平台 | 普遍 |
标头 | ntifs.h (包括 FltKernel.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |