Funzione RtlStringCbCopyA (ntstrsafe.h)
Le funzioni RtlStringCbCopyW e RtlStringCbCopyA copiano una stringa con conteggio byte in un buffer.
Sintassi
NTSTRSAFEDDI RtlStringCbCopyA(
[out] NTSTRSAFE_PSTR pszDest,
[in] size_t cbDest,
[in] NTSTRSAFE_PCSTR 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] cbDest
Dimensione, in byte, del buffer di destinazione. Il buffer deve essere sufficientemente grande per la stringa e il carattere null di terminazione.
Per le stringhe Unicode, il numero massimo di byte è NTSTRSAFE_MAX_CCH * sizeof(WCHAR).
Per le stringhe ANSI, il numero massimo di byte è NTSTRSAFE_MAX_CCH * sizeof(char).
[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 Utilizzo 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 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 il paragrafo seguente.
La funzione restituisce il valore STATUS_INVALID_PARAMETER quando:
|
Commenti
È consigliabile usare RtlStringCbCopyA e RtlStringCbCopyW anziché le funzioni seguenti:
- strcpy
- wcscpy
Le dimensioni del buffer di destinazione vengono fornite alla funzione per garantire che RtlStringCbCopy non scriva oltre la fine del buffer.
Usare RtlStringCbCopyW per gestire stringhe Unicode e RtlStringCbCopyA 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" | RtlStringCbCopyW |
char | "stringa" | RtlStringCbCopyA |
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 di stringa NULL , usare RtlStringCbCopyEx.
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 |