RtlUnicodeStringCchCopyStringN-Funktion (ntstrsafe.h)

Die RtlUnicodeStringCchCopyStringN-Funktion kopiert eine Zeichenfolge in eine UNICODE_STRING-Struktur , während die Größe der kopierten Zeichenfolge begrenzt wird.

Syntax

NTSTRSAFEDDI RtlUnicodeStringCchCopyStringN(
  [out] PUNICODE_STRING  DestinationString,
  [in]  NTSTRSAFE_PCWSTR pszSrc,
  [in]  size_t           cchToCopy
);

Parameter

[out] DestinationString

Ein Zeiger auf eine UNICODE_STRING-Struktur , die die kopierte Zeichenfolge empfängt. Die Zeichenfolge, auf die der pszSrc-Parameter zeigt (mit Ausnahme des beendenden NULL), wird in den Puffer kopiert, auf den die UNICODE_STRING Struktur des DestinationString-Parameters verweist. Die maximale Anzahl von Zeichen in der Zeichenfolge ist NTSTRSAFE_UNICODE_STRING_MAX_CCH.

[in] pszSrc

Ein Zeiger auf die zu kopierende Zeichenfolge.

[in] cchToCopy

Die Anzahl der Zeichen, die aus der Quelle in das Ziel kopiert werden sollen.

Rückgabewert

RtlUnicodeStringCchCopyStringN gibt einen der folgenden NTSTATUS zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS
Dieser Erfolg status bedeutet, dass Quelldaten vorhanden waren, die Zeichenfolge ohne Abschneiden kopiert wurde 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 in der folgenden Liste.
 

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

  • Der Inhalt der UNICODE_STRING-Struktur ist ungültig.
  • Der Zielpuffer ist bereits voll.
  • Ein Pufferzeiger ist NULL.
  • Die Länge des Zielpuffers ist 0, aber eine Quellzeichenfolge mit ungleicher Länge ist vorhanden.
  • Der Wert des cchToCopy-Parameters ist größer als NTSTRSAFE_UNICODE_STRING_MAX_CCH.
Informationen zum Testen von NTSTATUS-Werten finden Sie unter Verwenden von NTSTATUS-Werten.

Hinweise

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

Wenn sich die Quell- und Zielzeichenfolgen überschneiden, ist das Verhalten der Funktion undefiniert.

Die Zeiger pszSrc und DestinationString dürfen nicht NULL sein. Wenn Sie NULL-Zeigerwerte verarbeiten müssen, verwenden Sie die RtlUnicodeStringCchCopyNEx-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 PASSIVE_LEVEL

Weitere Informationen

RtlUnicodeStringCchCopyN

RtlUnicodeStringCchCopyNEx

UNICODE_STRING