RtlStringCchVPrintfW-Funktion (ntstrsafe.h)
Die Funktionen RtlStringCchVPrintfW und RtlStringCchVPrintfA erstellen eine zeichenzählige Textzeichenfolge mit Formatierung, die auf den angegebenen 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-endende Zeichenfolge empfängt. Die Funktion erstellt diese Zeichenfolge sowohl aus der formatierungszeichenfolge, die von pszFormat bereitgestellt wird, als auch aus den von argList bereitgestellten Argumenten.
[in] cchDest
Die Größe des Zielpuffers in Zeichen. Der Puffer muss groß genug sein, um die formatierte Zeichenfolge plus das abschließende NULL-Zeichen zu enthalten. Die maximale Anzahl zulässiger Zeichen ist NTSTRSAFE_MAX_CCH.
[in] pszFormat
Ein Zeiger auf eine mit NULL endende Textzeichenfolge, die Formatierungsdirektiven im Printf-Stil enthält.
[in] argList
Eine va_list typisierte Argumentliste. Argumente, die in der Argumentliste enthalten sind, werden mithilfe der formatierungszeichenfolge interpretiert, die von pszFormat bereitgestellt 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 Abschneiden erstellt wurde und der resultierende Zielpuffer NULL-beendet ist. |
|
Diese Warnung status bedeutet, dass der Vorgang aufgrund 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:
|
Hinweise
RtlStringCchVPrintfW und RtlStringCchVPrintfA sollten anstelle der folgenden Funktionen verwendet werden:
- vsprintf
- vswprintf
- _vsnprintf
- _vsnwprintf
Weitere Informationen zu va_list typisierten Argumentlisten finden Sie in der Microsoft Windows SDK-Dokumentation.
Verwenden Sie RtlStringCchVPrintfW zum Verarbeiten von Unicode-Zeichenfolgen und RtlStringCchVPrintfA 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" | RtlStringCchVPrintfW |
char | „String“ | RtlStringCchVPrintfA |
Wenn pszDest und pszFormat auf überlappende Zeichenfolgen verweisen oder sich Argumentzeichenfolgen überlappen, ist das Verhalten der Funktion undefiniert.
Weder pszFormat noch pszDest kann NULL sein. Wenn Sie NULL-Zeichenfolgenzeigerwerte verarbeiten müssen, verwenden Sie RtlStringCchVPrintfEx.
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 |