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 |