Freigeben über


RtlStringCchCopyW-Funktion (ntstrsafe.h)

Die funktionen RtlStringCchCopyW und RtlStringCchCopyA funktionen kopieren eine null-beendete Quellzeichenfolge in einen Zielpuffer der angegebenen Länge.

Syntax

NTSTRSAFEDDI RtlStringCchCopyW(
  [out] NTSTRSAFE_PWSTR  pszDest,
  [in]  size_t           cchDest,
  [in]  NTSTRSAFE_PCWSTR pszSrc
);

Parameter

[out] pszDest

Ein Zeiger auf einen vom Aufrufer bereitgestellten Puffer, der die kopierte Zeichenfolge empfängt. Die Zeichenfolge bei pszSrc wird bei pszDest- in den Puffer kopiert und mit einem Nullzeichen beendet.

[in] cchDest

Die Größe des Zielpuffers in Zeichen. Die maximale Anzahl zulässiger Zeichen ist NTSTRSAFE_MAX_CCH.

[in] pszSrc

Ein Zeiger auf eine vom Aufrufer bereitgestellte, null-beendete Zeichenfolge.

Rückgabewert

Die Funktion gibt einen der NTSTATUS-Werte zurück, die in der folgenden Tabelle aufgeführt sind. Informationen zum Testen von NTSTATUS-Werten finden Sie unter Verwenden von NTSTATUS-Werten.

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 im folgenden Absatz.

Die Funktion gibt den STATUS_INVALID_PARAMETER Wert zurück, wenn:

  • Der Wert in cchDest- ist größer als die maximale Puffergröße.
  • Ein NULL- Zeiger vorhanden war.
  • Die Zielpufferlänge war bei der Eingabe null.

Bemerkungen

RtlStringCchCopyW und RtlStringCchCopyA- sollten anstelle der folgenden Funktionen verwendet werden:

  • strcpy-
  • wcscpy-
Diese Funktionen sind keine Ersetzungen für strncpy. Verwenden Sie RtlStringCchCopyN oder RtlStringCchCopyNEx-, um strncpyzu ersetzen.

Die Größe des Zielpuffers wird in Zeichen für RtlStringCchCopyW und RtlStringCchCopyA- bereitgestellt, um sicherzustellen, dass sie nicht über das Ende des Puffers schreiben.

Verwenden Sie RtlStringCchCopyW- zum Behandeln von Unicode-Zeichenfolgen und RtlStringCchCopyA- zum Behandeln von ANSI-Zeichenfolgen. Das von Ihnen verwendete Formular hängt von Ihren Daten ab, wie in der folgenden Tabelle dargestellt.

Zeichenfolgendatentyp Zeichenfolgenliteral Funktion
WCHAR L"string" RtlStringCchCopyW
Zeichen- "string" RtlStringCchCopyA
 

Wenn pszSrc und pszDest auf überlappende Zeichenfolgen zeigen, ist das Verhalten der Funktion nicht definiert.

Weder pszSrc noch pszDest kann NULLsein. Wenn Sie NULL- Zeichenfolgenzeigerwerte behandeln müssen, verwenden Sie RtlStringCchCopyEx.

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

RtlStringCbCopy-

RtlStringCchCopyEx