RtlStringCbVPrintfW-Funktion (ntstrsafe.h)

Die Funktionen RtlStringCbVPrintfW und RtlStringCbVPrintfA erstellen eine byte-gezählte Textzeichenfolge mit Formatierungen, die auf den bereitgestellten Formatierungsinformationen basieren.

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 Bytes. Der Puffer muss groß genug sein, um die formatierte Zeichenfolge sowie 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 null-beendete Textzeichenfolge, die druckf-formatierteFormatierungsdirektiven enthält.

[in] argList

Eine va_list-Typ-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
STATUS_SUCCESS
Dieser Erfolgsstatus bedeutet, dass Quelldaten vorhanden waren, die Ausgabezeichenfolge ohne Abschneiden erstellt wurde und der resultierende Zielpuffer null beendet ist.
STATUS_BUFFER_OVERFLOW
Dieser Warnungsstatus bedeutet, dass der Vorgang aufgrund unzureichenden Speicherplatzes im Zielpuffer nicht abgeschlossen wurde. Der Zielpuffer enthält eine abgeschnittene Version der erstellten Zeichenfolge.
STATUS_INVALID_PARAMETER
Dieser Fehlerstatus 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:

  • Der Wert in cbDest ist größer als die maximale Puffergröße.
  • Der Zielpuffer war bereits voll.
  • Ein NULL-Zeiger war vorhanden.
  • Die Zielpufferlänge war null, aber eine nichtzero lange Quellzeichenfolge war vorhanden.

Bemerkungen

RtlStringCbVPrintfW und RtlStringCbVPrintfA sollten anstelle der folgenden Funktionen verwendet werden:

  • vsprintf
  • vswprintf
  • _vsnprintf
  • _vsnwprintf
Alle diese Funktionen akzeptieren eine Formatzeichenfolge sowie eine Reihe von Argumenten in einer va_list-Typ-Argumentliste und geben eine formatierte Zeichenfolge zurück. Die Größe des Zielpuffers in Bytes wird für RtlStringCbVPrintfW und RtlStringCbVPrintfA bereitgestellt, um sicherzustellen, dass sie nicht über das Ende des Puffers schreiben.

Weitere Informationen zu va_list-typierten Argumentlisten finden Sie in der Microsoft Windows SDK Dokumentation.

Verwenden Sie RtlStringCbVPrintfW , um Unicode-Zeichenfolgen und RtlStringCbVPrintfA zu behandeln, um ANSI-Zeichenfolgen zu behandeln. Das von Ihnen verwendete Formular hängt von Ihren Daten ab, wie in der folgenden Tabelle dargestellt.

String-Datentyp Zeichenfolgenliteral Funktion
WCHAR L"string" RtlStringCbVPrintfW
char „String“ RtlStringCbVPrintfA
 

Wenn pszDest und pszFormat auf überlappende Zeichenfolgen zeigen oder wenn sich Argumentzeichenfolgen überlappen, ist das Verhalten der Funktion nicht definiert..

Weder pszFormat noch pszDest sollten NULL sein. Wenn Sie NULL-Zeichenfolgenzeigerwerte behandeln müssen, verwenden Sie RtlStringCbVPrintfEx.

Weitere Informationen zu den sicheren Zeichenfolgenfunktionen finden Sie unter Verwenden sicherer Zeichenfolgenfunktionen.

Anforderungen

   
Unterstützte Mindestversion (Client) Ab Windows XP mit Service Pack 1 (SP1) verfügbar.
Zielplattform Power BI Desktop
Header ntstrsafe.h (include Ntstrsafe.h)
Bibliothek Ntstrsafe.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

RtlStringCbPrintf

RtlStringCbVPrintfEx

RtlStringCchVPrintf