Función RtlStringCbLengthA (ntstrsafe.h)

Las funciones RtlStringCbLengthW y RtlStringCbLengthA determinan la longitud, en bytes, de una cadena proporcionada.

Sintaxis

NTSTRSAFEDDI RtlStringCbLengthA(
  [in] STRSAFE_PCNZCH psz,
  [in] size_t         cbMax,
       size_t         *pcbLength
);

Parámetros

[in] psz

Puntero a un búfer que contiene una cadena terminada en NULL, cuya longitud se comprobará.

[in] cbMax

Número máximo de bytes permitidos en el búfer al que apunta psz, incluido el carácter nulo de terminación.

En el caso de las cadenas Unicode, el número máximo de bytes es NTSTRSAFE_MAX_CCH * sizeof(WCHAR).

Para las cadenas ANSI, el número máximo de bytes es NTSTRSAFE_MAX_CCH * sizeof(char).

pcbLength

Si el autor de la llamada proporciona un puntero de dirección distinto de NULL , la función carga la dirección con la longitud, en bytes, de la cadena contenida en el búfer. La longitud no incluye el carácter nulo de terminación de la cadena.

Valor devuelto

La función devuelve uno de los valores NTSTATUS que se enumeran en la tabla siguiente. Para obtener información sobre cómo probar valores NTSTATUS, vea Uso de valores NTSTATUS.

Código devuelto Descripción
STATUS_SUCCESS
Este estado correcto significa que la cadena de psz no era NULL y la longitud de la cadena (incluido el carácter nulo de terminación) es menor o igual que los caracteres cbMax .
STATUS_INVALID_PARAMETER
Este estado de error significa que el valor de psz es NULL, cbMax es mayor que NTSTRSAFE_MAX_CCH * sizeof(TCHAR) o psz es mayor que cbMax.

Comentarios

Se debe usar RtlStringCbLengthW y RtlStringCbLengthA en lugar de strlen. Use estas funciones para asegurarse de que una cadena no es mayor que una longitud determinada, en bytes. Si se cumple esa condición, RtlStringCbLengthW y RtlStringCbLengthA devuelven la longitud actual de la cadena en bytes, no incluidos los bytes usados para el carácter nulo de terminación.

Use RtlStringCbLengthW para controlar cadenas Unicode y RtlStringCbLengthA para controlar cadenas ANSI. El formulario que use depende de los datos, como se muestra en la tabla siguiente.

Tipo de datos String Literal de cadena Función
WCHAR L"string" RtlStringCbLengthW
char "cadena" RtlStringCbLengthA
 

Para obtener más información sobre las funciones de cadena segura, consulte Uso de funciones de cadena segura.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows XP con Service Pack 1 (SP1) y versiones posteriores de Windows.
Plataforma de destino Escritorio
Encabezado ntstrsafe.h (incluya Ntstrsafe.h)
Library Ntstrsafe.lib
IRQL PASSIVE_LEVEL

Consulte también

RtlStringCchLength