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

Vedi anche

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN