Функция 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.
Возвращаемый код | Описание |
---|---|
|
Это успешно состояния означает, что исходные данные были представлены, строка была скопирована без усечения, а результирующий целевой буфер завершается значением NULL. |
|
Это предупреждение состояние означает, что операция копирования не завершена из-за нехватки буферного пространства. Целевой буфер содержит усеченную, завершаемую null версию предполагаемого результата. |
|
Это ошибка состоянии означает, что функция получила недопустимый входной параметр. Дополнительные сведения см. в следующем абзаце. |
RtlUnicodeStringVPrintf возвращает значение STATUS_INVALID_PARAMETER при возникновении одной из следующих ситуаций:
- Содержимое структуры UNICODE_STRING, которая DestinationString указывает на недопустимые.
- Буфер назначения уже заполнен.
- Присутствует указатель NULL.
- Длина целевого буфера равна нулю, но в исходной строке ненулевой длины присутствует.
Замечания
Функция RtlUnicodeStringVPrintf использует размер буфера назначения, чтобы убедиться, что операция форматирования строк не записывается в конец буфера. Функция не завершает результирующая строка с символом NULL.
Если строка форматирования и целевая строка перекрываются, поведение функции не определено.
Указатели pszFormat и DestinationString нельзя null. Если необходимо обработать значения указателя null NULL, используйте функцию RtlUnicodeStringVPrintfEx.
Дополнительные сведения о функциях безопасной строки см. в разделе Использование безопасных строковых функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows XP с пакетом обновления 1 (SP1) и более поздними версиями Windows. |
целевая платформа | Настольный |
заголовка | ntstrsafe.h (include Ntstrsafe.h) |
библиотеки | Ntstrsafe.lib |
IRQL | Любой, если управляемые строки всегда находятся в памяти, в противном случае PASSIVE_LEVEL |