Функция RtlStringCchCopyUnicodeString (ntstrsafe.h)
Функция RtlStringCchCopyUnicodeString копирует содержимое структуры UNICODE_STRING в указанное место назначения.
Синтаксис
NTSTRSAFEDDI RtlStringCchCopyUnicodeString(
[out] NTSTRSAFE_PWSTR pszDest,
[in] size_t cchDest,
[in] PCUNICODE_STRING SourceString
);
Параметры
[out] pszDest
Указатель на буфер, который получает скопированную строку. Строка, на которую указывает структура UNICODE_STRING параметра SourceString, копируется в буфер в pszDest и завершается символом NULL.
[in] cchDest
Размер буфера назначения (в символах). Буфер должен быть достаточно большим для строки и завершающего символа NULL. Максимальное количество символов — NTSTRSAFE_UNICODE_STRING_MAX_CCH.
[in] SourceString
Указатель на структуру UNICODE_STRING , содержащую копируемые строки. Максимальное количество символов в строке — NTSTRSAFE_UNICODE_STRING_MAX_CCH.
Возвращаемое значение
RtlStringCchCopyUnicodeString возвращает одно из следующих значений NTSTATUS.
Код возврата | Описание |
---|---|
|
Это состояние успешного выполнения означает, что исходные данные присутствовали, строка была скопирована без усечения, а результирующий буфер назначения завершается null. |
|
Это состояние предупреждения означает, что операция копирования не была завершена из-за нехватки буферного пространства. Буфер назначения содержит усеченную версию предполагаемого результата, завершаемую null. |
|
Это состояние ошибки означает, что функция получила недопустимый входной параметр. Дополнительные сведения см. в следующем списке. |
RtlStringCchCopyUnicodeString возвращает значение STATUS_INVALID_PARAMETER, если происходит одно из следующих действий:
- Содержимое структуры UNICODE_STRING недопустимо.
- Значение в cbDest больше максимального размера буфера.
- Буфер назначения (на который указывает pszDest ) уже заполнен.
- Указатель буфера имеет значение NULL.
- Длина буфера назначения равна нулю, но присутствует исходная строка ненулевой длины.
Комментарии
Функция RtlStringCchCopyUnicodeString использует размер буфера назначения (который указывает cchDest ), чтобы операция копирования не записывалась после конца буфера.
Если исходная и целевая строки перекрываются, поведение функции не определено.
Указатели SourceString и pszDest не могут иметь значение NULL. Если необходимо обрабатывать значения указателя NULL , используйте функцию RtlStringCchCopyUnicodeStringEx .
Дополнительные сведения о функциях безопасных строк см. в разделе Использование безопасных строковых функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows XP с пакетом обновления 1 (SP1) и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ntstrsafe.h (включая Ntstrsafe.h) |
Библиотека | Ntstrsafe.lib |
IRQL | Любой, если строки, которыми осуществляется управление, всегда находятся в памяти, в противном случае PASSIVE_LEVEL |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по