Freigeben über


RtlUnicodeStringPrintf-Funktion (ntstrsafe.h)

Die RtlUnicodeStringPrintf--Funktion erstellt eine Textzeichenfolge mit Formatierungen, die auf bereitgestellten Formatierungsinformationen basieren, und speichert die Zeichenfolge in einer UNICODE_STRING Struktur.

Syntax

NTSTRSAFEDDI RtlUnicodeStringPrintf(
  [out] PUNICODE_STRING  DestinationString,
  [in]  NTSTRSAFE_PCWSTR pszFormat,
        ...              
);

Parameter

[out] DestinationString

Ein Zeiger auf eine UNICODE_STRING Struktur, die eine formatierte Zeichenfolge empfängt. RtlUnicodeStringPrintf erstellt diese Zeichenfolge aus der Formatierungszeichenfolge, die pszFormat angibt, und die Argumentliste der Funktion. Die maximale Anzahl von Zeichen in der Zeichenfolge ist NTSTRSAFE_UNICODE_STRING_MAX_CCH.

[in] pszFormat

Ein Zeiger auf eine mit Null beendete Textzeichenfolge, die printf--styled-formatierungsdirektiven enthält.

...

Wahlfrei. Eine Liste von Argumenten, die die Funktion interpretiert, basierend auf Formatierungsdirektiven, die die pszFormat- Zeichenfolge enthält.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS
Dieser Erfolg Status bedeutet, dass Quelldaten vorhanden waren, die Zeichenfolge ohne Abkürzung kopiert wurde und der resultierende Zielpuffer null beendet ist.
STATUS_BUFFER_OVERFLOW
Diese Warnung Status bedeutet, dass der Vorgang aufgrund unzureichender Pufferspeicher 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 empfangen hat. Weitere Informationen finden Sie in der folgenden Liste.
 

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

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

Bemerkungen

Die RtlUnicodeStringPrintf--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 überlappen, ist das Verhalten der Funktion nicht definiert.

Die pszFormat und DestinationString Zeiger können nicht NULL-werden. Wenn Sie NULL- Zeigerwerte behandeln müssen, verwenden Sie die funktion RtlUnicodeStringPrintfEx.

Weitere Informationen zu den sicheren Zeichenfolgenfunktionen finden Sie unter Verwenden von Funktionen für sichere Zeichenfolgen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows XP mit Service Pack 1 (SP1) und höheren Versionen von Windows.
Zielplattform- Desktop
Header- ntstrsafe.h (include Ntstrsafe.h)
Library Ntstrsafe.lib
IRQL- Wenn Zeichenfolgen, die bearbeitet werden, immer im Arbeitsspeicher vorhanden sind, andernfalls PASSIVE_LEVEL

Siehe auch

RtlUnicodeStringPrintfEx

RtlUnicodeStringVPrintf

RtlUnicodeStringVPrintfEx

UNICODE_STRING