RtlStringCbVPrintfA-Funktion (ntstrsafe.h)
Die Funktionen RtlStringCbVPrintfW und RtlStringCbVPrintfA erstellen eine bytegezählte Textzeichenfolge mit Formatierung, die auf den angegebenen Formatierungsinformationen basiert.
Syntax
NTSTRSAFEDDI RtlStringCbVPrintfA(
[out] NTSTRSAFE_PSTR pszDest,
[in] size_t cbDest,
[in] NTSTRSAFE_PCSTR pszFormat,
[in] va_list argList
);
Parameter
[out] pszDest
Ein Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der eine formatierte NULL-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] cbDest
Die Größe des Zielpuffers in Bytes. Der Puffer muss groß genug sein, um die formatierte Zeichenfolge plus das beendende NULL-Zeichen zu enthalten.
Für Unicode-Zeichenfolgen beträgt die maximale Anzahl von Bytes NTSTRSAFE_MAX_CCH * sizeof (WCHAR).
Für ANSI-Zeichenfolgen beträgt die maximale Anzahl von Bytes NTSTRSAFE_MAX_CCH * sizeof(char).
[in] pszFormat
Ein Zeiger auf eine Textzeichenfolge mit NULL-Beendigung, die Formatierungsdirektiven im Printf-Format 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 des unzureichenden Speicherplatzes im Zielpuffer nicht abgeschlossen wurde. Der Zielpuffer enthält eine gekürzte Version der erstellten Zeichenfolge. |
|
Dieser Fehler status bedeutet, dass die Funktion einen ungültigen Eingabeparameter erhalten hat. Weitere Informationen finden Sie im folgenden Absatz.
Die Funktion gibt den STATUS_INVALID_PARAMETER Wert zurück, wenn:
|
Hinweise
Anstelle der folgenden Funktionen sollten RtlStringCbVPrintfW und RtlStringCbVPrintfA verwendet werden:
- vsprintf
- vswprintf
- _vsnprintf
- _vsnwprintf
Weitere Informationen zu va_list typisierten Argumentlisten finden Sie in der Microsoft Windows SDK-Dokumentation.
Verwenden Sie RtlStringCbVPrintfW zum Behandeln von Unicode-Zeichenfolgen und RtlStringCbVPrintfA zum Verarbeiten von ANSI-Zeichenfolgen. Das von Ihnen verwendete Formular hängt von Ihren Daten ab, wie in der folgenden Tabelle gezeigt.
String-Datentyp | Zeichenfolgenliteral | Funktion |
---|---|---|
WCHAR | L"Zeichenfolge" | RtlStringCbVPrintfW |
char | „String“ | RtlStringCbVPrintfA |
Wenn pszDest und pszFormat auf überlappende Zeichenfolgen verweisen oder sich Argumentzeichenfolgen überschneiden, ist das Verhalten der Funktion nicht definiert..
Weder pszFormat noch pszDest sollte NULL sein. Wenn Sie NULL-Zeichenfolgenzeigerwerte verarbeiten müssen, verwenden Sie RtlStringCbVPrintfEx.
Weitere Informationen zu den Sicheren Zeichenfolgenfunktionen finden Sie unter Verwenden sicherer Zeichenfolgenfunktionen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows XP mit Service Pack 1 (SP1). |
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 |