Поделиться через


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

Функция RtlUnicodeStringInitEx инициализирует структуру UNICODE_STRING .

Синтаксис

NTSTRSAFEDDI RtlUnicodeStringInitEx(
  [out]          PUNICODE_STRING  DestinationString,
  [in, optional] NTSTRSAFE_PCWSTR pszSrc,
  [in]           DWORD            dwFlags
);

Параметры

[out] DestinationString

Необязательный параметр. Указатель на инициализируемый UNICODE_STRING структуру. Указатель pszSrc копируется в структуру UNICODE_STRING параметра DestinationString. Максимальное число символов в строке, на которую указывает pszSrc , равно NTSTRSAFE_UNICODE_STRING_MAX_CCH. DestinationString может иметь значение NULL, но только если STRSAFE_IGNORE_NULLS задано в dwFlags.

[in, optional] pszSrc

Необязательный элемент. Указатель на строковую константу, завершаемую null. Этот строковый указатель будет скопирован в элемент Bufferструктуры UNICODE_STRING , на которую указывает параметр DestinationString . Этот указатель строки может иметь значение NULL.

[in] dwFlags

Определен следующий флаг:

STRSAFE_IGNORE_NULLS

Если этот флаг установлен, исходный указатель может иметь значение NULL. RtlUnicodeStringInitEx обрабатывает указатели исходного буфера NULL как пустые строки (TEXT("")), которые можно скопировать.

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

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

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

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

  • Длина строки, на которую указывает параметр pszSrc , превышает NTSTRSAFE_UNICODE_STRING_MAX_CCH символов.
  • Указатель DestinationString имеет значение NULL, но указатель pszSrc не равен NULL.
Сведения о проверке значений NTSTATUS см. в разделе Использование значений NTSTATUS.

Комментарии

Функция RtlUnicodeStringInitEx выполняет следующие действия:

  • Задает элемент Lengthструктуры UNICODE_STRING длину в байтах строки, на которую указывает параметр pszSrc .
  • Задает для элемента MaximumLengthструктуры UNICODE_STRING длину в байтах строки, на которую указывает параметр pszSrc , плюс 2 байта.
  • Задает элементу Bufferструктуры UNICODE_STRING адрес, который задается параметром pszSrc .
Указатель DestinationString не может иметь значение NULL , если не установлен флаг STRSAFE_IGNORE_NULLS.

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

Требования

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

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

RtlUnicodeStringInit

UNICODE_STRING