Функция RtlUnicodeStringCopy (ntstrsafe.h)
Функция RtlUnicodeStringCopy копирует строку из одной структуры UNICODE_STRING в другую.
Синтаксис
NTSTRSAFEDDI RtlUnicodeStringCopy(
[out] PUNICODE_STRING DestinationString,
[in] PCUNICODE_STRING SourceString
);
Параметры
[out] DestinationString
Указатель на структуру UNICODE_STRING . Исходная строка копируется в конечную строку. Максимальное число байтов в строковом буфере структуры равно NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
[in] SourceString
Указатель на структуру UNICODE_STRING . Эта структура включает буфер, содержащий исходную строку. Эта строка будет скопирована в конечную строку. Максимальное число байтов в строковом буфере структуры равно NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
Возвращаемое значение
RtlUnicodeStringCopy возвращает одно из следующих значений NTSTATUS.
Код возврата | Описание |
---|---|
|
Это состояние успешного выполнения означает, что исходные данные присутствовали, строка была скопирована без усечения, а результирующий буфер назначения завершается null. |
|
Это состояние предупреждения означает, что операция копирования не была завершена из-за нехватки буферного пространства. Буфер назначения содержит усеченную версию исходной строки. |
|
Это состояние ошибки означает, что функция получила недопустимый входной параметр. Дополнительные сведения см. в следующем списке. |
RtlUnicodeStringCopy возвращает значение STATUS_INVALID_PARAMETER при выполнении одного из следующих действий:
- Содержимое структуры UNICODE_STRING недопустимо.
- Буфер назначения уже заполнен.
- Указатель буфера имеет значение NULL.
- Длина буфера назначения равна нулю, но присутствует исходная строка ненулевой длины.
Комментарии
Функция RtlUnicodeStringCopy использует размер буфера назначения, чтобы гарантировать, что операция копирования не записывает данные за конец буфера. Если строка должна быть усечена в конце буфера назначения, функция не завершает результируемую строку символом NULL.
Если исходная и целевая строки перекрываются, поведение функции не определено.
Указатели SourceString и DestinationString не могут иметь значение NULL. Если необходимо обрабатывать значения указателя NULL , используйте функцию RtlUnicodeStringCopyEx .
Дополнительные сведения о функциях безопасных строк см. в разделе Использование безопасных строковых функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows XP с пакетом обновления 1 (SP1) и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ntstrsafe.h (включая Ntstrsafe.h) |
Библиотека | Ntstrsafe.lib |
IRQL | Любой, если строки, которыми осуществляется управление, всегда находятся в памяти, в противном случае PASSIVE_LEVEL |