Partager via


Fonction RtlStringCbLengthA (ntstrsafe.h)

Les fonctions RtlStringCbLengthW et RtlStringCbLengthA déterminent la longueur, en octets, d’une chaîne fournie.

Syntaxe

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

Paramètres

[in] psz

Pointeur vers une mémoire tampon qui contient une chaîne terminée par null, dont la longueur sera vérifiée.

[in] cbMax

Nombre maximal d’octets autorisés dans la mémoire tampon pointée par psz, y compris le caractère null de fin.

Pour les chaînes Unicode, le nombre maximal d’octets est NTSTRSAFE_MAX_CCH * sizeof(WCHAR).

Pour les chaînes ANSI, le nombre maximal d’octets est NTSTRSAFE_MAX_CCH * sizeof(char).

pcbLength

Si l’appelant fournit un pointeur d’adresse non NULL , la fonction charge l’adresse avec la longueur, en octets, de la chaîne contenue dans la mémoire tampon. La longueur n’inclut pas le caractère null de fin de la chaîne.

Valeur retournée

La fonction retourne l’une des valeurs NTSTATUS répertoriées dans le tableau suivant. Pour plus d’informations sur le test des valeurs NTSTATUS, consultez Utilisation de valeurs NTSTATUS.

Code de retour Description
STATUS_SUCCESS
Cette status de réussite signifie que la chaîne au niveau psz n’était pas NULL et que la longueur de la chaîne (y compris le caractère null de fin) est inférieure ou égale à des caractères cbMax.
STATUS_INVALID_PARAMETER
Cette erreur status signifie que la valeur dans psz est NULL, que cbMax est supérieure à NTSTRSAFE_MAX_CCH * sizeof(TCHAR), ou que psz est plus longue que cbMax.

Remarques

RtlStringCbLengthW et RtlStringCbLengthA doivent être utilisés au lieu de strlen. Utilisez ces fonctions pour vous assurer qu’une chaîne n’est pas supérieure à une longueur donnée, en octets. Si cette condition est remplie, RtlStringCbLengthW et RtlStringCbLengthA retournent la longueur actuelle de la chaîne en octets, sans inclure les octets utilisés pour le caractère null de fin.

Utilisez RtlStringCbLengthW pour gérer les chaînes Unicode et RtlStringCbLengthA pour gérer les chaînes ANSI. Le formulaire que vous utilisez dépend de vos données, comme indiqué dans le tableau suivant.

Type de données String Littéral de chaîne Fonction
WCHAR L"string » RtlStringCbLengthW
char "chaîne" RtlStringCbLengthA
 

Pour plus d’informations sur les fonctions de chaîne sécurisée, consultez Utilisation des fonctions de chaîne sécurisée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows XP avec Service Pack 1 (SP1) et versions ultérieures de Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ntstrsafe.h (inclure Ntstrsafe.h)
Bibliothèque Ntstrsafe.lib
IRQL Toutes les chaînes si manipulées résident toujours dans la mémoire, sinon PASSIVE_LEVEL

Voir aussi

RtlStringCchLength