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