Функция RtlStringCbLengthA (ntstrsafe.h)
Функции RtlStringCbLengthW и функции RtlStringCbLengthA определяют длину в байтах указанной строки.
Синтаксис
NTSTRSAFEDDI RtlStringCbLengthA(
[in] STRSAFE_PCNZCH 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. |
Замечания
RtlStringCbLengthW и RtlStringCbLengthA следует использовать вместо strlen. Используйте эти функции, чтобы гарантировать, что строка не превышает заданную длину в байтах. Если это условие выполнено, RtlStringCbLengthW и RtlStringCbLengthA вернуть текущую длину строки в байтах, не включая эти байты, используемые для конца символа NULL.
Используйте RtlStringCbLengthW для обработки строк Юникода и RtlStringCbLengthA для обработки строк ANSI. Используемая форма зависит от данных, как показано в следующей таблице.
Тип строковых данных | Строковый литерал | Функция |
---|---|---|
WCHAR | L"string" | RtlStringCbLengthW |
char | "string" | RtlStringCbLengthA |
Дополнительные сведения о функциях безопасной строки см. в разделе Использование безопасных строковых функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows XP с пакетом обновления 1 (SP1) и более поздними версиями Windows. |
целевая платформа | Настольный |
заголовка | ntstrsafe.h (include Ntstrsafe.h) |
библиотеки | Ntstrsafe.lib |
IRQL | Любой, если управляемые строки всегда находятся в памяти, в противном случае PASSIVE_LEVEL |