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 |