FsRtlIsNameInExpression 函数 (ntifs.h)
FsRtlIsNameInExpression 例程确定 Unicode 字符串是否与指定的模式匹配。
语法
BOOLEAN FsRtlIsNameInExpression(
[in] PUNICODE_STRING Expression,
[in] PUNICODE_STRING Name,
[in] BOOLEAN IgnoreCase,
[in, optional] PWCH UpcaseTable
);
参数
[in] Expression
指向模式字符串的指针。 可以包含通配符。 如果 IgnoreCase 为 TRUE, 则 Expression 必须为大写。
[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。 这意味着“*”与空字符串不匹配。
如果两个参数都是空字符串, 则 FsRtlIsNameInExpression 返回 TRUE。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 此例程是 Windows 2000 |
目标平台 | 通用 |
标头 | ntifs.h (包括 FltKernel.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , PowerIrpDDis (wdm) |