Freigeben über


RtlStringCbCopyUnicodeString-Funktion (ntstrsafe.h)

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

Syntax

NTSTRSAFEDDI RtlStringCbCopyUnicodeString(
  [out] NTSTRSAFE_PWSTR  pszDest,
  [in]  size_t           cbDest,
  [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] cbDest

Die Größe des Zielpuffers in Bytes, auf den pszDest verweist. Der Puffer muss groß genug sein, um die Zeichenfolge und das endende Nullzeichen zu enthalten. Die maximale Anzahl von Bytes im Puffer ist NTSTRSAFE_UNICODE_STRING_MAX_CCH * Größe des(WCHAR).

[in] SourceString

Ein Zeiger auf eine UNICODE_STRING Struktur, die die zu kopierende Zeichenfolge enthält. Die maximale Anzahl von Bytes in der Zeichenfolge ist NTSTRSAFE_UNICODE_STRING_MAX_CCH * Größe des(WCHAR).

Rückgabewert

RtlStringCbCopyUnicodeString 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.
 

RtlStringCbCopyUnicodeString 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 RtlStringCbCopyUnicodeString--Funktion verwendet die Größe des Zielpuffers (die der cbDest-Parameter 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 RtlStringCbCopyUnicodeStringEx.

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 ab Windows XP mit Service Pack 1 (SP1).
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

RtlStringCbCopyUnicodeStringEx-

RtlStringCchCopyUnicodeString

UNICODE_STRING