Função RtlMultiByteToUnicodeN (ntifs.h)

A rotina RtlMultiByteToUnicodeN converte a cadeia de caracteres de origem especificada em uma cadeia de caracteres Unicode, usando a ACP (página de código ANSI) do sistema atual. A cadeia de caracteres de origem não é necessariamente de um conjunto de caracteres multibyte.

Sintaxe

NTSYSAPI NTSTATUS RtlMultiByteToUnicodeN(
  [out]           PWCH       UnicodeString,
  [in]            ULONG      MaxBytesInUnicodeString,
  [out, optional] PULONG     BytesInUnicodeString,
  [in]            const CHAR *MultiByteString,
  [in]            ULONG      BytesInMultiByteString
);

Parâmetros

[out] UnicodeString

Ponteiro para um buffer alocado pelo chamador que recebe a cadeia de caracteres traduzida. O buffer UnicodeString não deve se sobrepor ao buffer MultiByteString.

[in] MaxBytesInUnicodeString

Número máximo de bytes a serem gravados em UnicodeString. Se esse valor fizer com que a cadeia de caracteres traduzida seja truncada, RtlMultiByteToUnicodeN não retornará um erro status.

[out, optional] BytesInUnicodeString

Ponteiro para uma variável alocada pelo chamador que recebe o comprimento, em bytes, da cadeia de caracteres traduzida. Este parâmetro pode ser NULL.

[in] MultiByteString

Ponteiro para a cadeia de caracteres a ser traduzida.

[in] BytesInMultiByteString

Tamanho, em bytes, da cadeia de caracteres em MultiByteString.

Retornar valor

RtlMultiByteToUnicodeN retorna STATUS_SUCCESS.

Comentários

RtlMultiByteToUnicodeN dá suporte apenas a caracteres Unicode pré-compilados mapeados para a página de código ANSI do sistema atual instalada na inicialização do sistema.

Embora BytesInUnicodeString seja opcional e possa ser NULL, os chamadores devem fornecer armazenamento para ele, pois o comprimento recebido pode ser usado para determinar se a conversão foi bem-sucedida.

Se a página de código do sistema atual definir um conjunto de caracteres de byte único, todos os caracteres ANSI no intervalo 0x00 para 0x7f serão simplesmente estendidos por zero na cadeia de caracteres Unicode correspondente para acelerar a operação de conversão. O valor ANSI 0x5c em uma página de código desse tipo é convertido no caractere de barra invertida, mesmo que a página de código de byte único atual defina esse caractere como o sinal de Yen.

RtlMultiByteToUnicodeN não modifica a cadeia de caracteres de origem, a menos que os ponteiros UnicodeString e MultiByteString sejam equivalentes. A cadeia de caracteres Unicode retornada não é terminada em nulo.

Assim como RtlMultiByteToUnicodeSize, RtlMultiByteToUnicodeN dá suporte apenas a caracteres Unicode pré-compilados mapeados para a página de código ANSI do sistema atual instalada na inicialização do sistema.

Para obter informações sobre outras rotinas de manipulação de cadeia de caracteres, consulte Rotinas da RTL (Biblioteca em Tempo de Execução).

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe (modo kernel); Ntdll.dll (modo de usuário)
IRQL < DISPATCH_LEVEL

Confira também

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN