Funzione RtlStringCchCopyW (ntstrsafe.h)
Le funzioni RtlStringCchCopyW e RtlStringCchCopyA copiano una stringa di origine con terminazione null in un buffer di destinazione di lunghezza specificata.
Sintassi
NTSTRSAFEDDI RtlStringCchCopyW(
[out] NTSTRSAFE_PWSTR pszDest,
[in] size_t cchDest,
[in] NTSTRSAFE_PCWSTR pszSrc
);
Parametri
[out] pszDest
Puntatore a un buffer fornito dal chiamante che riceve la stringa copiata. La stringa in pszSrc viene copiata nel buffer in pszDest e terminata con un carattere Null.
[in] cchDest
Dimensioni, in caratteri, del buffer di destinazione. Il numero massimo di caratteri consentiti è NTSTRSAFE_MAX_CCH.
[in] pszSrc
Puntatore a una stringa con terminazione Null fornita dal chiamante.
Valore restituito
La funzione restituisce uno dei valori NTSTATUS elencati nella tabella seguente. Per informazioni su come testare i valori NTSTATUS, vedere Uso di valori NTSTATUS.
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 viene terminato con valori Null. |
|
Questo stato di avviso indica che l'operazione di copia non è stata completata a causa di spazio buffer insufficiente. Il buffer di destinazione contiene una versione troncata e terminata null del risultato previsto. |
|
Questo stato di errore indica che la funzione ha ricevuto un parametro di input non valido. Per altre informazioni, vedere il paragrafo seguente.
La funzione restituisce il valore di STATUS_INVALID_PARAMETER quando:
|
Commenti
RtlStringCchCopyW e RtlStringCchCopyA devono essere usati anziché le funzioni seguenti:
- strcpy
- wcscpy
Le dimensioni, in caratteri, del buffer di destinazione vengono fornite a RtlStringCchCopyW e RtlStringCchCopyA per assicurarsi di non scrivere oltre la fine del buffer.
Usare RtlStringCchCopyW per gestire stringhe Unicode e RtlStringCchCopyA per gestire le stringhe ANSI. Il modulo usato dipende dai dati, come illustrato nella tabella seguente.
Dati di tipo stringa | Valore letterale stringa | Funzione |
---|---|---|
WCHAR | L"string" | RtlStringCchCopyW |
char | "stringa" | RtlStringCchCopyA |
Se pszSrc e pszDest puntano a stringhe sovrapposte, il comportamento della funzione non è definito.
Né pszSrc né pszDest possono essere NULL. Se è necessario gestire i valori del puntatore stringa NULL , usare RtlStringCchCopyEx.
Per altre informazioni sulle funzioni di stringa sicura, vedere Uso di funzioni stringhe sicure.
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 | Qualsiasi se le stringhe modificate sono sempre residenti in memoria, in caso contrario PASSIVE_LEVEL |