Freigeben über


RtlStringCchCopyUnicodeString-Funktion (ntstrsafe.h)

Die RtlStringCchCopyUnicodeString--Funktion kopiert den Inhalt einer UNICODE_STRING Struktur in ein angegebenes Ziel.

Syntax

NTSTRSAFEDDI RtlStringCchCopyUnicodeString(
  [out] NTSTRSAFE_PWSTR  pszDest,
  [in]  size_t           cchDest,
  [in]  PCUNICODE_STRING SourceString
);

Parameter

[out] pszDest

Ein Zeiger auf einen Puffer, der die kopierte Zeichenfolge empfängt. Die Zeichenfolge, auf die die UNICODE_STRING Struktur des SourceString Parameters verweist, wird bei pszDest in den Puffer kopiert und mit einem NULL-Zeichen beendet.

[in] cchDest

Die Größe des Zielpuffers in Zeichen. Der Puffer muss groß genug für die Zeichenfolge und das endende Nullzeichen sein. Die maximale Anzahl von Zeichen ist NTSTRSAFE_UNICODE_STRING_MAX_CCH.

[in] SourceString

Ein Zeiger auf eine UNICODE_STRING Struktur, die die zu kopierende Zeichenfolge enthält. Die maximale Anzahl von Zeichen in der Zeichenfolge ist NTSTRSAFE_UNICODE_STRING_MAX_CCH.

Rückgabewert

RtlStringCchCopyUnicodeString 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 Kopiervorgang 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.
 

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

  • Der Inhalt der UNICODE_STRING-Struktur ist ungültig.
  • Der Wert in cbDest- ist größer als die maximale Puffergröße.
  • Der Zielpuffer (auf den pszDest verweist) ist bereits voll.
  • Ein Pufferzeiger ist NULL-.
  • 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 RtlStringCchCopyUnicodeString--Funktion verwendet die Größe des Zielpuffers (die cchDest- angibt), um sicherzustellen, dass der Kopiervorgang nicht über das Ende des Puffers schreibt.

Wenn sich die Quell- und Zielzeichenfolgen überschneiden, wird das Verhalten der Funktion nicht definiert.

Die SourceString-und pszDest Zeiger können nicht NULL-werden. Wenn Sie NULL- Zeigerwerte behandeln müssen, verwenden Sie die funktion RtlStringCchCopyUnicodeStringEx.

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

RtlStringCbCopyUnicodeString

RtlStringCchCopyUnicodeStringEx-

UNICODE_STRING