Fonction RtlMultiByteToUnicodeN (ntifs.h)

La routine RtlMultiByteToUnicodeN traduit la chaîne source spécifiée en chaîne Unicode, à l’aide de la page de codes ANSI (ACP) système actuelle. La chaîne source ne provient pas nécessairement d’un jeu de caractères multioctets.

Syntaxe

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

Paramètres

[out] UnicodeString

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit la chaîne traduite. La mémoire tampon UnicodeString ne doit pas chevaucher la mémoire tampon MultiByteString.

[in] MaxBytesInUnicodeString

Nombre maximal d’octets à écrire dans UnicodeString. Si cette valeur entraîne la troncation de la chaîne traduite, RtlMultiByteToUnicodeN ne retourne pas d’erreur status.

[out, optional] BytesInUnicodeString

Pointeur vers une variable allouée par l’appelant qui reçoit la longueur, en octets, de la chaîne traduite. Ce paramètre peut être NULL.

[in] MultiByteString

Pointeur vers la chaîne à traduire.

[in] BytesInMultiByteString

Taille, en octets, de la chaîne dans MultiByteString.

Valeur retournée

RtlMultiByteToUnicodeN retourne STATUS_SUCCESS.

Remarques

RtlMultiByteToUnicodeN prend en charge uniquement les caractères Unicode précomposés mappés à la page de codes ANSI système actuelle installée au démarrage du système.

Bien que BytesInUnicodeString soit facultatif et puisse être NULL, les appelants doivent fournir un stockage pour celui-ci, car la longueur reçue peut être utilisée pour déterminer si la conversion a réussi.

Si la page de codes système actuelle définit un jeu de caractères codés sur un octet, tous les caractères ANSI de la plage 0x00 à 0x7f sont simplement étendus à zéro dans la chaîne Unicode correspondante pour accélérer l’opération de conversion. La valeur ANSI 0x5c dans une telle page de codes est traduite en barre oblique inverse, même si la page de codes codée sur un octet actuelle définit ce caractère comme signe Yen.

RtlMultiByteToUnicodeN ne modifie pas la chaîne source, sauf si les pointeurs UnicodeString et MultiByteString sont équivalents. La chaîne Unicode retournée n’est pas terminée par null.

Comme RtlMultiByteToUnicodeSize, RtlMultiByteToUnicodeN prend en charge uniquement les caractères Unicode précomposés mappés à la page de codes ANSI système actuelle installée au démarrage du système.

Pour plus d’informations sur les autres routines de gestion de chaînes, consultez Routines de la bibliothèque d’exécution (RTL).

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ntifs.h (include Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe (mode noyau) ; Ntdll.dll (mode utilisateur)
IRQL < DISPATCH_LEVEL

Voir aussi

RtlMultiByteToUnicodeSize

RtlUnicodeToMultiByteN