RtlStringCbLengthA-Funktion (ntstrsafe.h)

Die Funktionen RtlStringCbLengthW und RtlStringCbLengthA bestimmen die Länge einer angegebenen Zeichenfolge in Bytes.

Syntax

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

Parameter

[in] psz

Ein Zeiger auf einen Puffer, der eine NULL-endende Zeichenfolge enthält, deren Länge überprüft wird.

[in] cbMax

Die maximale Anzahl von Bytes, die im Puffer zulässig sind, auf den von psz verwiesen wird, einschließlich des abschließenden NULL-Zeichens.

Bei Unicode-Zeichenfolgen beträgt die maximale Anzahl von Bytes NTSTRSAFE_MAX_CCH * sizeof(WCHAR).

Für ANSI-Zeichenfolgen beträgt die maximale Anzahl von Bytes NTSTRSAFE_MAX_CCH * sizeof(char).

pcbLength

Wenn der Aufrufer einen Adresszeiger ungleich NULL bereitstellt, lädt die Funktion die Adresse mit der Länge der im Puffer enthaltenen Zeichenfolge in Bytes. Die Länge enthält nicht das abschließende NULL-Zeichen der Zeichenfolge.

Rückgabewert

Die Funktion gibt einen der NTSTATUS-Werte zurück, die in der folgenden Tabelle aufgeführt sind. Informationen zum Testen von NTSTATUS-Werten finden Sie unter Verwenden von NTSTATUS-Werten.

Rückgabecode Beschreibung
STATUS_SUCCESS
Dieser Erfolg status bedeutet, dass die Zeichenfolge bei psz nicht NULL war und die Länge der Zeichenfolge (einschließlich des endenden NULL-Zeichens) kleiner oder gleich cbMax-Zeichen ist.
STATUS_INVALID_PARAMETER
Dieser Fehler status bedeutet, dass der Wert in pszNULL ist, cbMax größer als NTSTRSAFE_MAX_CCH * sizeof(TCHAR) oder psz ist länger als cbMax.

Hinweise

RtlStringCbLengthW und RtlStringCbLengthA sollten anstelle von strlen verwendet werden. Verwenden Sie diese Funktionen, um sicherzustellen, dass eine Zeichenfolge nicht größer als eine bestimmte Länge (in Bytes) ist. Wenn diese Bedingung erfüllt ist, geben RtlStringCbLengthW und RtlStringCbLengthA die aktuelle Länge der Zeichenfolge in Byte zurück, ohne die Bytes, die für das abschließende NULL-Zeichen verwendet werden.

Verwenden Sie RtlStringCbLengthW zum Verarbeiten von Unicode-Zeichenfolgen und RtlStringCbLengthA zum Verarbeiten von ANSI-Zeichenfolgen. Das verwendete Formular hängt von Ihren Daten ab, wie in der folgenden Tabelle gezeigt.

String-Datentyp Zeichenfolgenliteral Funktion
WCHAR L"string" RtlStringCbLengthW
char „String“ RtlStringCbLengthA
 

Weitere Informationen zu den sicheren Zeichenfolgenfunktionen finden Sie unter Verwenden sicherer Zeichenfolgenfunktionen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows XP mit Service Pack 1 (SP1) und höheren Versionen von Windows.
Zielplattform Desktop
Kopfzeile ntstrsafe.h (einschließen von Ntstrsafe.h)
Bibliothek Ntstrsafe.lib
IRQL Alle, wenn Zeichenfolgen, die bearbeitet werden, immer im Arbeitsspeicher gespeichert sind, andernfalls PASSIVE_LEVEL

Weitere Informationen

RtlStringCchLength