Freigeben über


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 mit Null beendete Zeichenfolge enthält, deren Länge überprüft wird.

[in] cbMax

Die maximale Anzahl der in dem Puffer zulässigen Bytes, auf die durch pszverwiesen wird, einschließlich des endenden Nullzeichens.

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

Bei ANSI-Zeichenfolgen ist 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 Nullzeichen 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 Nullzeichens) 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 länger als cbMaxist.

Bemerkungen

RtlStringCbLengthW und RtlStringCbLengthA sollten anstelle strlenverwendet werden. Verwenden Sie diese Funktionen, um sicherzustellen, dass eine Zeichenfolge in Bytes nicht größer als eine bestimmte Länge ist. Wenn diese Bedingung erfüllt ist, geben RtlStringCbLengthW und RtlStringCbLengthA die aktuelle Länge der Zeichenfolge in Byte zurück, nicht einschließlich der Bytes, die für das endende Nullzeichen 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 dargestellt.

Zeichenfolgendatentyp Zeichenfolgenliteral Funktion
WCHAR L"string" RtlStringCbLengthW-
Zeichen- "string" RtlStringCbLengthA
 

Weitere Informationen zu den sicheren Zeichenfolgenfunktionen finden Sie unter Verwenden von Funktionen für sichere Zeichenfolgen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows XP mit Service Pack 1 (SP1) und höheren Versionen von Windows.
Zielplattform- Desktop
Header- ntstrsafe.h (include Ntstrsafe.h)
Library Ntstrsafe.lib
IRQL- Wenn Zeichenfolgen, die bearbeitet werden, immer im Arbeitsspeicher vorhanden sind, andernfalls PASSIVE_LEVEL

Siehe auch

RtlStringCchLength