RtlUnicodeStringVPrintf-Funktion (ntstrsafe.h)

Die RtlUnicodeStringVPrintf-Funktion erstellt eine Textzeichenfolge mit Einer Formatierung, die auf den angegebenen Formatierungsinformationen basiert, und speichert die Zeichenfolge in einer UNICODE_STRING-Struktur .

Syntax

NTSTRSAFEDDI RtlUnicodeStringVPrintf(
  [out] PUNICODE_STRING  DestinationString,
  [in]  NTSTRSAFE_PCWSTR pszFormat,
  [in]  va_list          argList
);

Parameter

[out] DestinationString

Ein Zeiger auf eine UNICODE_STRING Struktur, die eine formatierte Zeichenfolge empfängt. RtlUnicodeStringVPrintf erstellt diese Zeichenfolge aus der Formatierungszeichenfolge, die pszFormat angibt, und der Argumentliste der Funktion. Die maximale Anzahl von Zeichen in der Zeichenfolge ist NTSTRSAFE_UNICODE_STRING_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 in dieser Argumentliste werden mithilfe der Formatierungszeichenfolge interpretiert, die pszFormat angibt.

Rückgabewert

RtlUnicodeStringVPrintf gibt einen der folgenden NTSTATUS-Werte zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Dieser Erfolg status bedeutet, dass Quelldaten vorhanden waren, die Zeichenfolge ohne Abschneiden kopiert und der resultierende Zielpuffer NULL-beendet ist.
STATUS_BUFFER_OVERFLOW
Diese Warnung status bedeutet, dass der Kopiervorgang aufgrund des unzureichenden Pufferspeichers nicht abgeschlossen wurde. Der Zielpuffer enthält eine abgeschnittene, NULL-beendete Version des beabsichtigten Ergebnisses.
STATUS_INVALID_PARAMETER
Dieser Fehler status bedeutet, dass die Funktion einen ungültigen Eingabeparameter erhalten hat. Weitere Informationen finden Sie im folgenden Absatz.
 

RtlUnicodeStringVPrintf gibt den STATUS_INVALID_PARAMETER Wert zurück, wenn einer der folgenden Aktionen auftritt:

  • Der Inhalt der UNICODE_STRING Struktur, auf die DestinationString verweist, ist ungültig.
  • Der Zielpuffer ist bereits voll.
  • Ein NULL-Zeiger ist vorhanden.
  • Die Länge des Zielpuffers ist 0, aber eine Quellzeichenfolge mit ungleicher Länge ist vorhanden.
Informationen zum Testen von NTSTATUS-Werten finden Sie unter Verwenden von NTSTATUS-Werten.

Hinweise

Die RtlUnicodeStringVPrintf-Funktion verwendet die Größe des Zielpuffers, um sicherzustellen, dass der Zeichenfolgenformatierungsvorgang nicht über das Ende des Puffers schreibt. Die Funktion beendet die resultierende Zeichenfolge nicht mit einem NULL-Zeichen.

Wenn sich die Formatzeichenfolge und die Zielzeichenfolge überschneiden, ist das Verhalten der Funktion nicht definiert.

Die Zeiger pszFormat und DestinationString dürfen nicht NULL sein. Wenn Sie NULL-Zeigerwerte verarbeiten müssen, verwenden Sie die RtlUnicodeStringVPrintfEx-Funktion.

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

Weitere Informationen

RtlUnicodeStringPrintf

RtlUnicodeStringPrintfEx

RtlUnicodeStringVPrintfEx

UNICODE_STRING