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 |
---|---|
|
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. |
|
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 |