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 |