Funzione RtlMultiByteToUnicodeN (ntifs.h)
La routine RtlMultiByteToUnicodeN converte la stringa di origine specificata in una stringa Unicode, utilizzando la tabella codici ANSI (ACP) di sistema corrente. La stringa di origine non è necessariamente da un set di caratteri multibyte.
Sintassi
NTSYSAPI NTSTATUS RtlMultiByteToUnicodeN(
[out] PWCH UnicodeString,
[in] ULONG MaxBytesInUnicodeString,
[out, optional] PULONG BytesInUnicodeString,
[in] const CHAR *MultiByteString,
[in] ULONG BytesInMultiByteString
);
Parametri
[out] UnicodeString
Puntatore a un buffer allocato dal chiamante che riceve la stringa tradotta. Il buffer UnicodeString non deve sovrapporsi al buffer MultiByteString .
[in] MaxBytesInUnicodeString
Numero massimo di byte da scrivere in UnicodeString. Se questo valore causa il troncamento della stringa tradotta, RtlMultiByteToUnicodeN non restituisce uno stato di errore.
[out, optional] BytesInUnicodeString
Puntatore a una variabile allocata dal chiamante che riceve la lunghezza, in byte, della stringa tradotta. Questo parametro può essere NULL.
[in] MultiByteString
Puntatore alla stringa da tradurre.
[in] BytesInMultiByteString
Dimensioni, in byte, della stringa in MultiByteString.
Valore restituito
RtlMultiByteToUnicodeN restituisce STATUS_SUCCESS.
Commenti
RtlMultiByteToUnicodeN supporta solo i caratteri Unicode precompilata mappati alla tabella codici ANSI di sistema corrente installata all'avvio del sistema.
Anche se BytesInUnicodeString è facoltativo e può essere NULL, i chiamanti devono fornire spazio di archiviazione, perché la lunghezza ricevuta può essere usata per determinare se la conversione ha avuto esito positivo.
Se la tabella codici di sistema corrente definisce un set di caratteri a byte singolo, tutti i caratteri ANSI nell'intervallo 0x00 da 0x7f vengono semplicemente estesi zero nella stringa Unicode corrispondente per velocizzare l'operazione di conversione. Il valore ANSI 0x5c in tale tabella codici viene convertito nel carattere barra rovesciata, anche se la tabella codici a byte singolo corrente definisce questo carattere come segno Yen.
RtlMultiByteToUnicodeN non modifica la stringa di origine a meno che i puntatori UnicodeString e MultiByteString siano equivalenti. La stringa Unicode restituita non è con terminazione Null.
Analogamente a RtlMultiByteToUnicodeSize, RtlMultiByteToUnicodeN supporta solo i caratteri Unicode precompilata mappati alla tabella codici ANSI di sistema corrente installata all'avvio del sistema.
Per informazioni su altre routine di gestione delle stringhe, vedere Routine RTL (Run-Time Library).
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe (modalità kernel); Ntdll.dll (modalità utente) |
IRQL | < DISPATCH_LEVEL |