RtlStringCbCopyW-Funktion (ntstrsafe.h)
Die Funktionen RtlStringCbCopyW und RtlStringCbCopyA kopieren eine bytegezählte Zeichenfolge in einen Puffer.
Syntax
NTSTRSAFEDDI RtlStringCbCopyW(
[out] NTSTRSAFE_PWSTR pszDest,
[in] size_t cbDest,
[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 in den Puffer unter pszDest kopiert und mit einem NULL-Zeichen beendet.
[in] cbDest
Die Größe des Zielpuffers in Bytes. Der Puffer muss groß genug für die Zeichenfolge und das abschließende NULL-Zeichen sein.
Bei Unicode-Zeichenfolgen beträgt die maximale Anzahl von Bytes NTSTRSAFE_MAX_CCH * sizeof(WCHAR).
Für ANSI-Zeichenfolgen beträgt die maximale Anzahl von Bytes NTSTRSAFE_MAX_CCH * sizeof(char).
[in] pszSrc
Ein Zeiger auf eine vom Aufrufer bereitgestellte, null-endende 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 |
---|---|
|
Dieser Erfolg status bedeutet, dass Quelldaten vorhanden waren, die Zeichenfolge ohne Abschneiden kopiert und der resultierende Zielpuffer NULL-beendet ist. |
|
Diese Warnung status bedeutet, dass der Kopiervorgang aufgrund unzureichenden Pufferspeichers nicht abgeschlossen wurde. Der Zielpuffer enthält eine abgeschnittene, mit NULL beendete Version des beabsichtigten Ergebnisses. |
|
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:
|
Hinweise
RtlStringCbCopyA und RtlStringCbCopyW sollten anstelle der folgenden Funktionen verwendet werden:
- strcpy
- wcscpy
Die Größe des Zielpuffers wird für die Funktion bereitgestellt, um sicherzustellen, dass RtlStringCbCopy nicht über das Ende des Puffers schreibt.
Verwenden Sie RtlStringCbCopyW zum Verarbeiten von Unicode-Zeichenfolgen und RtlStringCbCopyA zum Verarbeiten von ANSI-Zeichenfolgen. Das verwendete Formular hängt von Ihren Daten ab, wie in der folgenden Tabelle dargestellt.
String-Datentyp | Zeichenfolgenliteral | Funktion |
---|---|---|
WCHAR | L"string" | RtlStringCbCopyW |
char | „String“ | RtlStringCbCopyA |
Wenn pszSrc und pszDest auf überlappende Zeichenfolgen verweisen, ist das Verhalten der Funktion nicht definiert.
Weder pszSrc noch pszDest können NULL sein. Wenn Sie NULL-Zeichenfolgenzeigerwerte verarbeiten müssen, verwenden Sie RtlStringCbCopyEx.
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 | Alle, wenn Zeichenfolgen, die bearbeitet werden, immer im Arbeitsspeicher gespeichert sind, andernfalls PASSIVE_LEVEL |