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 in den Puffer bei pszDest 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 abschließende NULL-Zeichen 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 |
---|---|
|
Dieser Erfolg status bedeutet, dass Quelldaten vorhanden waren, die Zeichenfolge ohne Abschneiden kopiert wurde und der resultierende Zielpuffer NULL-beendet ist. |
|
Diese Warnung status bedeutet, dass der Kopiervorgang aufgrund des 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 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 Quellzeichenfolge ungleich null ist vorhanden.
Hinweise
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, ist das Verhalten der Funktion nicht definiert.
Die Zeiger SourceString und pszDest können nicht NULL sein. Wenn Sie NULL-Zeigerwerte verarbeiten müssen, verwenden Sie die RtlStringCchCopyUnicodeStringEx-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 | Alle, wenn Zeichenfolgen, die bearbeitet werden, immer im Arbeitsspeicher gespeichert sind, andernfalls PASSIVE_LEVEL |