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 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 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 von 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 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, NULL-beendete Version des beabsichtigten Ergebnisses. |
|
Dieser Fehler status bedeutet, dass die Funktion einen ungültigen Eingabeparameter erhalten 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 0, aber eine Quellzeichenfolge mit ungleicher Länge ist vorhanden.
- Der Wert des cbToCopy-Parameters ist größer als NTSTRSAFE_UNICODE_STRING_MAX_CCH * sizeof(WCHAR).
Hinweise
Die RtlUnicodeStringCbCopyN-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-Zeichenwert (also mit null).
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 RtlUnicodeStringCbCopyNEx-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 |