Función RtlMultiByteToUnicodeN (ntifs.h)

La rutina RtlMultiByteToUnicodeN convierte la cadena de origen especificada en una cadena Unicode mediante la página de códigos ANSI (ACP) del sistema actual. La cadena de origen no es necesariamente de un juego de caracteres multibyte.

Sintaxis

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

Parámetros

[out] UnicodeString

Puntero a un búfer asignado por el autor de la llamada que recibe la cadena traducida. El búfer UnicodeString no debe superponerse con el búfer MultiByteString.

[in] MaxBytesInUnicodeString

Número máximo de bytes que se escribirán en UnicodeString. Si este valor hace que la cadena traducida se trunque, RtlMultiByteToUnicodeN no devuelve un estado de error.

[out, optional] BytesInUnicodeString

Puntero a una variable asignada por el autor de la llamada que recibe la longitud, en bytes, de la cadena traducida. Este parámetro puede ser NULL.

[in] MultiByteString

Puntero a la cadena que se va a traducir.

[in] BytesInMultiByteString

Tamaño, en bytes, de la cadena en MultiByteString.

Valor devuelto

RtlMultiByteToUnicodeN devuelve STATUS_SUCCESS.

Comentarios

RtlMultiByteToUnicodeN solo admite caracteres Unicode precomponidos asignados a la página de códigos ANSI del sistema actual instalada en el arranque del sistema.

Aunque BytesInUnicodeString es opcional y puede ser NULL, los autores de llamadas deben proporcionar almacenamiento para él, ya que la longitud recibida se puede usar para determinar si la conversión se realizó correctamente.

Si la página de códigos del sistema actual define un juego de caracteres de un solo byte, todos los caracteres ANSI del intervalo 0x00 a 0x7f simplemente se extienden sin cero en la cadena Unicode correspondiente para acelerar la operación de conversión. El valor ANSI 0x5c en dicha página de códigos se traduce en el carácter de barra diagonal inversa, incluso si la página de códigos de un solo byte actual define este carácter como el signo Yen.

RtlMultiByteToUnicodeN no modifica la cadena de origen a menos que los punteros UnicodeString y MultiByteString sean equivalentes. La cadena Unicode devuelta no está terminada en null.

Al igual que RtlMultiByteToUnicodeSize, RtlMultiByteToUnicodeN solo admite caracteres Unicode precomponidos asignados a la página de códigos ANSI del sistema actual instalada en el arranque del sistema.

Para obtener información sobre otras rutinas de control de cadenas, vea Rutinas de la biblioteca en tiempo de ejecución (RTL).

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe (modo kernel); Ntdll.dll (modo de usuario)
IRQL < DISPATCH_LEVEL

Consulte también

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN