RtlStringCchLengthW 函数 (ntstrsafe.h)

RtlStringCchLengthWRtlStringCchLengthA 函数确定提供的字符串的长度(以字符为单位)。

语法

NTSTRSAFEDDI RtlStringCchLengthW(
  [in] STRSAFE_PCNZWCH psz,
  [in] size_t          cchMax,
       size_t          *pcchLength
);

参数

[in] psz

指向包含 null 终止字符串的缓冲区的指针,将检查其长度。

[in] cchMax

psz(包括终止 null 字符)指向的缓冲区中允许的最大字符数。 此值不能超过NTSTRSAFE_MAX_CCH。

pcchLength

如果调用方提供非NULL 地址指针,则该函数将加载包含缓冲区中字符串的长度(以字符为单位)的地址。 长度不包括字符串的终止 null 字符。

返回值

该函数返回下表中列出的 NTSTATUS 值之一。 有关如何测试 NTSTATUS 值的信息,请参阅 使用 NTSTATUS 值

返回代码 描述
STATUS_SUCCESS
此成功状态表示 psz 的字符串未 NULL,字符串(包括终止 null 字符)的长度小于或等于 cchMax 字符。
STATUS_INVALID_PARAMETER
此错误状态表示 psz 中的值 NULLcchMax 大于 NTSTRSAFE_MAX_CCH,或者 pszcchMax长。

言论

应使用 RtlStringCchLengthWRtlStringCchLengthA,而不是使用 strlen。 它们用于确保字符串不大于给定长度(以字符为单位)。 如果满足该条件,RtlStringCchLengthWRtlStringCchLengthA 返回字符串的当前长度(不包括终止 null 字符)。

使用 RtlStringCchLengthW 处理 Unicode 字符串和 RtlStringCchLengthA 来处理 ANSI 字符串。 所使用的窗体取决于你的数据,如下表所示。

字符串数据类型 字符串文本 功能
WCHAR L“string” RtlStringCchLengthW
char “string” RtlStringCchLengthA
 

有关安全字符串函数的详细信息,请参阅 使用安全字符串函数

要求

要求 价值
最低支持的客户端 在 Windows XP 中提供 Service Pack 1(SP1)和更高版本的 Windows。
目标平台 桌面
标头 ntstrsafe.h (包括 Ntstrsafe.h)
Ntstrsafe.lib
IRQL 如果正在作的字符串始终驻留在内存中,则为任何字符串,否则PASSIVE_LEVEL

另请参阅

RtlStringCbLength