RtlUnicodeStringCbCopyStringN-Funktion (ntstrsafe.h)
Die RtlUnicodeStringCbCopyStringN--Funktion kopiert eine Zeichenfolge in eine UNICODE_STRING Struktur, während die Größe der kopierten Zeichenfolge begrenzt wird.
Syntax
NTSTRSAFEDDI RtlUnicodeStringCbCopyStringN(
[out] PUNICODE_STRING DestinationString,
[in] NTSTRSAFE_PCWSTR pszSrc,
[in] size_t cbToCopy
);
Parameter
[out] DestinationString
Ein Zeiger auf eine UNICODE_STRING Struktur, die die kopierte Zeichenfolge empfängt. Die Zeichenfolge, auf die der pszSrc Parameter verweist (mit Ausnahme des endierenden Null), wird in den Puffer kopiert, auf den der DestinationString Parameter UNICODE_STRING Struktur verweist. Die maximale Anzahl von Bytes in der Zeichenfolge ist NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
[in] pszSrc
Ein Zeiger auf die zu kopierende Zeichenfolge.
[in] cbToCopy
Die Anzahl der Bytes, die aus der Quelle in das Ziel kopiert werden sollen.
Rückgabewert
RtlUnicodeStringCbCopyN gibt einen der folgenden NTSTATUS-Werte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Dieser Erfolg Status bedeutet, dass Quelldaten vorhanden waren, die Zeichenfolge ohne Abkürzung kopiert wurde und der resultierende Zielpuffer null beendet ist. |
|
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. |
|
Dieser Fehler Status bedeutet, dass die Funktion einen ungültigen Eingabeparameter empfangen hat. Weitere Informationen finden Sie in der folgenden Liste. |
RtlUnicodeStringCbCopyN 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 null, aber eine Zeichenfolge mit nicht nuller Länge ist vorhanden.
- Der Wert des cbToCopy- Parameters ist größer als NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
Bemerkungen
Die RtlUnicodeStringCbCopyN--Funktion verwendet die Größe des Zielpuffers, um sicherzustellen, dass der Kopiervorgang nicht über das Ende des Puffers schreibt. Die Funktion nicht die resultierende Zeichenfolge mit einem Nullzeichenwert (d. v. 0) beenden.
Wenn sich die Quell- und Zielzeichenfolgen überschneiden, wird das Verhalten der Funktion nicht definiert.
Die pszSrc und DestinationString Zeiger können nicht NULL-werden. Wenn Sie NULL- Zeigerwerte behandeln müssen, verwenden Sie die funktion RtlUnicodeStringCbCopyNEx.
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 |