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


Функция 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.

Возвращаемый код Описание
STATUS_SUCCESS
Это состояние успешного означает, что строка в psz не была null, а длина строки (включая завершающий символ NULL) меньше или равно символов cbMax.
STATUS_INVALID_PARAMETER
Это состояние означает, что значение в 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

См. также

RtlStringCchLength