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