RtlStringCchVPrintfW-Funktion (ntstrsafe.h)
Die RtlStringCchVPrintfW und RtlStringCchVPrintfA Funktionen erstellen eine Zeichenfolge mit Zeichenanzahl und formatierung, die auf den bereitgestellten Formatierungsinformationen basiert.
Syntax
NTSTRSAFEDDI RtlStringCchVPrintfW(
[out] NTSTRSAFE_PWSTR pszDest,
[in] size_t cchDest,
[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] cchDest
Die Größe des Zielpuffers in Zeichen. Der Puffer muss groß genug sein, um die formatierte Zeichenfolge und das endende Nullzeichen zu enthalten. Die maximale Anzahl zulässiger Zeichen ist NTSTRSAFE_MAX_CCH.
[in] pszFormat
Ein Zeiger auf eine mit Null beendete Textzeichenfolge, die printf--styled-formatierungsdirektiven enthä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
RtlStringCchVPrintfW und RtlStringCchVPrintfA 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 RtlStringCchVPrintfW- zum Behandeln von Unicode-Zeichenfolgen und RtlStringCchVPrintfA- 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" | RtlStringCchVPrintfW |
Zeichen- | "string" | RtlStringCchVPrintfA |
Wenn pszDest und pszFormat auf überlappende Zeichenfolgen zeigen oder Argumentzeichenfolgen überlappen, ist das Verhalten der Funktion nicht definiert.
Weder pszFormat noch pszDest kann NULLsein. Wenn Sie NULL- Zeichenfolgenzeigerwerte behandeln müssen, verwenden Sie RtlStringCchVPrintfEx.
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 |