Функция RtlUnicodeStringCat (ntstrsafe.h)

Функция RtlUnicodeStringCat объединяет две строки, содержащиеся в UNICODE_STRING структурах.

Синтаксис

NTSTRSAFEDDI RtlUnicodeStringCat(
  [in, out] PUNICODE_STRING  DestinationString,
  [in]      PCUNICODE_STRING SourceString
);

Параметры

[in, out] DestinationString

Указатель на структуру UNICODE_STRING . Эта структура включает буфер, который на входных данных содержит конечную строку, с которой будет сцеплена исходная строка. На выходе этот буфер является целевым буфером, который содержит всю результирующую строку. Исходная строка добавляется в конец строки назначения. Максимальное число байтов в строковом буфере структуры равно NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).

[in] SourceString

Указатель на структуру UNICODE_STRING . Эта структура включает буфер, содержащий исходную строку. Эта строка будет добавлена в конец строки назначения. Максимальное число байтов в строковом буфере структуры равно NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).

Возвращаемое значение

RtlUnicodeStringCat возвращает одно из следующих значений NTSTATUS.

Код возврата Описание
STATUS_SUCCESS
Это состояние успешного выполнения означает, что исходные данные присутствовали, строки были сцеплены без усечения, а результирующий буфер назначения завершается null.
STATUS_BUFFER_OVERFLOW
Это состояние предупреждения означает, что операция объединения не завершилась из-за нехватки буферного пространства. Буфер назначения содержит усеченную версию предполагаемого результата, завершаемую null.
STATUS_INVALID_PARAMETER
Это состояние ошибки означает, что функция получила недопустимый входной параметр. Дополнительные сведения см. в следующем списке.
 

RtlUnicodeStringCat возвращает значение STATUS_INVALID_PARAMETER, если происходит одно из следующих действий:

  • Содержимое структуры UNICODE_STRING недопустимо.
  • Буфер назначения уже заполнен.
  • Указатель буфера имеет значение NULL.
  • Длина буфера назначения равна нулю, но присутствует исходная строка ненулевой длины.
Сведения о проверке значений NTSTATUS см. в разделе Использование значений NTSTATUS.

Комментарии

Функция RtlUnicodeStringCat использует размер буфера назначения, чтобы гарантировать, что операция объединения не записывает данные после конца буфера. Функция не завершает результирующую строку значением null (т. е. нулевым).

Если исходная и целевая строки перекрываются, поведение функции не определено.

Указатели SourceString и DestinationString не могут иметь значение NULL. Если необходимо обрабатывать значения указателя NULL , используйте RtlUnicodeStringCatEx.

Дополнительные сведения о функциях безопасных строк см. в разделе Использование безопасных строковых функций.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows XP с пакетом обновления 1 (SP1) и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть ntstrsafe.h (включая Ntstrsafe.h)
Библиотека Ntstrsafe.lib
IRQL Любой, если строки, которыми осуществляется управление, всегда находятся в памяти, в противном случае PASSIVE_LEVEL

См. также раздел

RtlUnicodeStringCatEx

UNICODE_STRING