WdmlibRtlInitUnicodeStringEx 函数 (wdmsec.h)
WdmlibRtlInitUnicodeStringEx 函数初始化 Unicode 字符的计数字符串。
语法
NTSTATUS WdmlibRtlInitUnicodeStringEx(
[out] PUNICODE_STRING DestinationString,
[in, optional] PCWSTR SourceString
);
参数
[out] DestinationString
指向要初始化的 UNICODE_STRING 结构的指针。
[in, optional] SourceString
指向以 null 结尾的宽字符字符串的指针。 此字符串用于初始化 DestinationString指向的计数字符串。
返回值
WdmlibRtlInitUnicodeStringEx 如果成功,则返回STATUS_SUCCESS,否则该方法可能会返回其他 NTSTATUS 值。
言论
例程将 SourceString 指针值复制到由 DestinationString指向的 UNICODE_STRING 结构的 Buffer 成员。 此结构的 Length 成员设置为源字符串的长度(以字节为单位),不包括终止 null。 结构的 MaximumLength 成员设置为源字符串的长度(以字节为单位),包括终止 null。 如果 SourceString为 NULL,则 Length 和 MaximumLength 均设置为零。
WdmlibRtlInitUnicodeStringEx 不会更改 SourceString指向的源字符串。
注意
如果源字符串的长度超过 MAX_USTRING - 1 个字节(其中 MAX_USTRING = 0xfffe),WdmlibRtlInitUnicodeStringEx 将 DestinationString 指向的 UNICODE_STRING 结构的 Length 成员设置为 MAX_USTRING - 2, 并将此结构的 MaximumLength 成员设置为MAX_USTRING。 在这种情况下,Length 和 MaximumLength 值错误地表示以 null 结尾的源字符串的长度,并且依赖于这些值的准确度可能很危险。
如果 DestinationString 缓冲区不可分页,则 WdmlibRtlInitUnicodeStringEx 的调用方可以在 IRQL <= DISPATCH_LEVEL 运行。 通常,调用方在 IRQL = PASSIVE_LEVEL 运行,因为大多数其他 RtlXxx字符串 例程无法在 IRQL > PASSIVE_LEVEL 调用。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 普遍 |
标头 | wdmsec.h (包括 Wdmsec.h、Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参阅“备注”部分。 |