RtlStringCbVPrintfW-Funktion (ntstrsafe.h)
Die RtlStringCbVPrintfW und RtlStringCbVPrintfA Funktionen erstellen eine byte-gezählte Textzeichenfolge mit Formatierung, die auf den bereitgestellten Formatierungsinformationen basiert.
Syntax
NTSTRSAFEDDI RtlStringCbVPrintfW(
[out] NTSTRSAFE_PWSTR pszDest,
[in] size_t cbDest,
[in] NTSTRSAFE_PCWSTR pszFormat,
[in] va_list argList
);
Parameter
[out] pszDest
Ein Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der eine formatierte, null-beendete Zeichenfolge empfängt. Die Funktion erstellt diese Zeichenfolge sowohl aus der Formatierungszeichenfolge, die von pszFormat bereitgestellt wird, als auch aus den Argumenten, die von argList-bereitgestellt werden.
[in] cbDest
Die Größe des Zielpuffers in Byte. Der Puffer muss groß genug sein, um die formatierte Zeichenfolge und das endende Nullzeichen zu enthalten.
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).
[in] pszFormat
Ein Zeiger auf eine mit Null beendete Textzeichenfolge, die printf--styled Formatierungsdirektivenenthält.
[in] argList
Eine va_list-typed argument list. In der Argumentliste enthaltene Argumente werden mithilfe der Formatierungszeichenfolge interpretiert, die von pszFormatangegeben wird.
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 Quelldaten vorhanden waren, die Ausgabezeichenfolge ohne Abkürzung erstellt wurde und der resultierende Zielpuffer null-beendet ist. |
|
Diese Warnung Status bedeutet, dass der Vorgang aufgrund des unzureichenden Speicherplatzes im Zielpuffer nicht abgeschlossen wurde. Der Zielpuffer enthält eine abgeschnittene Version der erstellten Zeichenfolge. |
|
Dieser Fehler Status bedeutet, dass die Funktion einen ungültigen Eingabeparameter empfangen hat. Weitere Informationen finden Sie im folgenden Absatz.
Die Funktion gibt den STATUS_INVALID_PARAMETER Wert zurück, wenn:
|
Bemerkungen
RtlStringCbVPrintfW und RtlStringCbVPrintfA sollten anstelle der folgenden Funktionen verwendet werden:
- vsprintf-
- vswprintf
- _vsnprintf
- _vsnwprintf
Weitere Informationen zu va_list-typed-argument lists finden Sie in der Microsoft Windows SDK-Dokumentation.
Verwenden Sie RtlStringCbVPrintfW- zum Behandeln von Unicode-Zeichenfolgen und RtlStringCbVPrintfA- 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" | RtlStringCbVPrintfW |
Zeichen- | "string" | RtlStringCbVPrintfA |
Wenn pszDest und pszFormat auf überlappende Zeichenfolgen zeigen oder Argumentzeichenfolgen überlappen, ist das Verhalten der Funktion nicht definiert.
Weder pszFormat noch pszDest sollte NULLsein. Wenn Sie NULL- Zeichenfolgenzeigerwerte behandeln müssen, verwenden Sie RtlStringCbVPrintfEx.
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 ab Windows XP mit Service Pack 1 (SP1). |
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 |