Funzione RtlStringCchCopyUnicodeString (ntstrsafe.h)
La funzione RtlStringCchCopyUnicodeString copia il contenuto di una struttura UNICODE_STRING in una destinazione specificata.
Sintassi
NTSTRSAFEDDI RtlStringCchCopyUnicodeString(
[out] NTSTRSAFE_PWSTR pszDest,
[in] size_t cchDest,
[in] PCUNICODE_STRING SourceString
);
Parametri
[out] pszDest
Puntatore a un buffer che riceve la stringa copiata. La stringa a cui punta la struttura UNICODE_STRING del parametro SourceString viene copiata nel buffer in corrispondenza di pszDest e terminata con un carattere Null.
[in] cchDest
Dimensione, in caratteri, del buffer di destinazione. Il buffer deve essere sufficientemente grande per la stringa e il carattere null di terminazione. Il numero massimo di caratteri è NTSTRSAFE_UNICODE_STRING_MAX_CCH.
[in] SourceString
Puntatore a una struttura UNICODE_STRING contenente la stringa da copiare. Il numero massimo di caratteri nella stringa è NTSTRSAFE_UNICODE_STRING_MAX_CCH.
Valore restituito
RtlStringCchCopyUnicodeString restituisce uno dei valori NTSTATUS seguenti.
Codice restituito | Descrizione |
---|---|
|
Questo stato di esito positivo indica che i dati di origine erano presenti, la stringa è stata copiata senza troncamento e il buffer di destinazione risultante è con terminazione Null. |
|
Questo stato di avviso indica che l'operazione di copia non è stata completata a causa di spazio del buffer insufficiente. Il buffer di destinazione contiene una versione con terminazione Null troncata del risultato previsto. |
|
Questo stato di errore indica che la funzione ha ricevuto un parametro di input non valido. Per altre informazioni, vedere l'elenco seguente. |
RtlStringCchCopyUnicodeString restituisce il valore STATUS_INVALID_PARAMETER quando si verifica una delle condizioni seguenti:
- Il contenuto della struttura UNICODE_STRING non è valido.
- Il valore in cbDest è maggiore della dimensione massima del buffer.
- Il buffer di destinazione (a cui pszDest punta) è già pieno.
- Un puntatore al buffer è NULL.
- La lunghezza del buffer di destinazione è zero, ma è presente una stringa di origine di lunghezza diversa da zero.
Commenti
La funzione RtlStringCchCopyUnicodeString usa le dimensioni del buffer di destinazione (specificate da cchDest ) per garantire che l'operazione di copia non scriva oltre la fine del buffer.
Se le stringhe di origine e di destinazione si sovrappongono, il comportamento della funzione non è definito.
I puntatori SourceString e pszDest non possono essere NULL. Se è necessario gestire i valori del puntatore NULL , usare la funzione RtlStringCchCopyUnicodeStringEx .
Per altre informazioni sulle funzioni di stringa sicura, vedere Using Safe String Functions.For more information about the safe string functions, see Using Safe String Functions.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows XP con Service Pack 1 (SP1) e versioni successive di Windows. |
Piattaforma di destinazione | Desktop |
Intestazione | ntstrsafe.h (include Ntstrsafe.h) |
Libreria | Ntstrsafe.lib |
IRQL | Se le stringhe modificate sono sempre residenti in memoria, in caso contrario PASSIVE_LEVEL |