Функция RtlStringCchLengthW (ntstrsafe.h)
Функции RtlStringCchLengthW и RtlStringCchLengthA определяют длину предоставленной строки в символах.
Синтаксис
NTSTRSAFEDDI RtlStringCchLengthW(
[in] STRSAFE_PCNZWCH psz,
[in] size_t cchMax,
size_t *pcchLength
);
Параметры
[in] psz
Указатель на буфер, содержащий строку со значением NULL, длина которой будет проверяться.
[in] cchMax
Максимально допустимое количество символов в буфере, на который указывает psz, включая завершающий символ NULL. Это значение не может превышать NTSTRSAFE_MAX_CCH.
pcchLength
Если вызывающий объект предоставляет указатель на адрес, отличный от NULL , функция загружает адрес длиной в символах строки, содержащейся в буфере. Длина не включает завершающий символ NULL строки.
Возвращаемое значение
Функция возвращает одно из значений NTSTATUS, перечисленных в следующей таблице. Сведения о проверке значений NTSTATUS см. в разделе Использование значений NTSTATUS.
Код возврата | Описание |
---|---|
|
Это состояние успешного выполнения означает, что строка в psz не была NULL, а длина строки (включая завершающий символ NULL) меньше или равна символам cchMax . |
|
Это состояние ошибки означает, что значение в psz равно NULL, cchMax больше NTSTRSAFE_MAX_CCH или psz длиннее cchMax. |
Комментарии
Вместо strlen следует использовать RtlStringCchLengthW и RtlStringCchLengthA. Они используются для обеспечения того, чтобы строка не превышала заданную длину в символах. Если это условие выполнено, RtlStringCchLengthW и RtlStringCchLengthA возвращают текущую длину строки в символах, не включая завершающий символ NULL.
Используйте RtlStringCchLengthW для обработки строк Юникода и RtlStringCchLengthA для обработки строк ANSI. Используемая форма зависит от данных, как показано в следующей таблице.
Строковый тип данных | Строковый литерал | Функция |
---|---|---|
WCHAR | L"string" | RtlStringCchLengthW |
char | Строка | RtlStringCchLengthA |
Дополнительные сведения о безопасных строковых функциях см. в разделе Использование безопасных строковых функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows XP с пакетом обновления 1 (SP1) и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ntstrsafe.h (включая Ntstrsafe.h) |
Библиотека | Ntstrsafe.lib |
IRQL | Любое значение, если строки, которыми осуществляется управление, всегда находятся в памяти, в противном случае PASSIVE_LEVEL |