FsRtlIsNameInExpression 函数 (ntifs.h)

FsRtlIsNameInExpression 例程确定 Unicode 字符串是否与指定的模式匹配。

语法

BOOLEAN FsRtlIsNameInExpression(
  [in]           PUNICODE_STRING Expression,
  [in]           PUNICODE_STRING Name,
  [in]           BOOLEAN         IgnoreCase,
  [in, optional] PWCH            UpcaseTable
);

参数

[in] Expression

指向模式字符串的指针。 可以包含通配符。 如果 IgnoreCaseTRUE则 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)

另请参阅

FsRtlIsDbcsInExpression

UNICODE_STRING