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,则 表达式 必须为大写。

[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)

另请参阅

FsRtlIsDbcsInExpression

UNICODE_STRING