Partager via


RtlMultiByteToUnicodeN, fonction (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 par l’appelant qui reçoit la chaîne traduite. mémoire tampon unicodeString ne doit pas chevaucher mémoire tampon multioctetString .

[in] MaxBytesInUnicodeString

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

[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 à MultiByteString.

Valeur de retour

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 qu’il peut ê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 à octet unique, 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 monooctet 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 des chaînes, consultez Run-Time Routines de bibliothèque (RTL).

Exigences

Exigence Valeur
plateforme cible Universel
d’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