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