RtlStringCchVPrintfA-Funktion (ntstrsafe.h)
Die Funktionen RtlStringCchVPrintfW und RtlStringCchVPrintfA erstellen eine zeichengezählte Textzeichenfolge mit Formatierung, die auf den angegebenen Formatierungsinformationen basiert.
Syntax
NTSTRSAFEDDI RtlStringCchVPrintfA(
[out] NTSTRSAFE_PSTR pszDest,
[in] size_t cchDest,
[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] cchDest
Die Größe des Zielpuffers in Zeichen. Der Puffer muss groß genug sein, um die formatierte Zeichenfolge plus das beendende NULL-Zeichen zu enthalten. Die maximal zulässige Anzahl von Zeichen ist NTSTRSAFE_MAX_CCH.
[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
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 Behandeln von Unicode-Zeichenfolgen und RtlStringCchVPrintfA 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" | RtlStringCchVPrintfW |
char | „String“ | RtlStringCchVPrintfA |
Wenn pszDest und pszFormat auf überlappende Zeichenfolgen verweisen oder sich Argumentzeichenfolgen überlappen, ist das Verhalten der Funktion nicht definiert.
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 |