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

Функция RtlUnicodeStringVPrintf создает текстовую строку с форматированием, основанным на предоставленных сведениях о форматировании, и сохраняет строку в UNICODE_STRING структуре.

Синтаксис

NTSTRSAFEDDI RtlUnicodeStringVPrintf(
  [out] PUNICODE_STRING  DestinationString,
  [in]  NTSTRSAFE_PCWSTR pszFormat,
  [in]  va_list          argList
);

Параметры

[out] DestinationString

Указатель на структуру UNICODE_STRING , получающую отформатированную строку. RtlUnicodeStringVPrintf создает эту строку на основе строки форматирования, указанной pszFormat , и списка аргументов функции. Максимальное количество символов в строке равно NTSTRSAFE_UNICODE_STRING_MAX_CCH.

[in] pszFormat

Указатель на текстовую строку, завершающуюся null, которая содержит директивы форматирования в стиле printf.

[in] argList

Список аргументов va_list типа. Аргументы в этом списке аргументов будут интерпретироваться с помощью строки форматирования, указанной в pszFormat .

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

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

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

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

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

Комментарии

Функция RtlUnicodeStringVPrintf использует размер буфера назначения, чтобы гарантировать, что операция форматирования строки не записывает данные за конец буфера. Функция не завершает результируемую строку символом NULL.

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

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

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

Требования

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

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

RtlUnicodeStringPrintf

RtlUnicodeStringPrintfEx

RtlUnicodeStringVPrintfEx

UNICODE_STRING