RtlStringCbLengthW-Funktion (ntstrsafe.h)
Die Funktionen RtlStringCbLengthW und RtlStringCbLengthA bestimmen die Länge einer angegebenen Zeichenfolge in Bytes.
Syntax
NTSTRSAFEDDI RtlStringCbLengthW(
[in] STRSAFE_PCNZWCH psz,
[in] size_t cbMax,
size_t *pcbLength
);
Parameter
[in] psz
Ein Zeiger auf einen Puffer, der eine null-beendete 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 beendenden NULL-Zeichens.
Für 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 Nicht-NULL-Adresszeiger bereitstellt, lädt die Funktion die Adresse mit der Länge (in Bytes) der Zeichenfolge, die im Puffer enthalten ist. Die Länge enthält nicht das endende 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 |
---|---|
|
Dieser Erfolg status bedeutet, dass die Zeichenfolge bei psz nicht NULL war und die Länge der Zeichenfolge (einschließlich des beendenden NULL-Zeichens) kleiner oder gleich cbMax-Zeichen ist. |
|
Dieser Fehler status bedeutet, dass der Wert in pszNULL ist, cbMax größer als NTSTRSAFE_MAX_CCH * sizeof(TCHAR) oder psz länger als cbMax ist. |
Hinweise
Anstelle von strlen sollten RtlStringCbLengthW und RtlStringCbLengthA 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 Bytes zurück, ohne die Bytes, die für das beendende NULL-Zeichen verwendet werden.
Verwenden Sie RtlStringCbLengthW zum Behandeln von Unicode-Zeichenfolgen und RtlStringCbLengthA zum Behandeln von ANSI-Zeichenfolgen. Das von Ihnen verwendete Formular hängt von Ihren Daten ab, wie in der folgenden Tabelle gezeigt.
String-Datentyp | Zeichenfolgenliteral | Funktion |
---|---|---|
WCHAR | L"Zeichenfolge" | 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 |