Fonction RtlUnicodeToMultiByteN (ntifs.h)

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

Syntaxe

NTSYSAPI NTSTATUS RtlUnicodeToMultiByteN(
  [out]           PCHAR  MultiByteString,
  [in]            ULONG  MaxBytesInMultiByteString,
  [out, optional] PULONG BytesInMultiByteString,
  [in]            PCWCH  UnicodeString,
  [in]            ULONG  BytesInUnicodeString
);

Paramètres

[out] MultiByteString

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

[in] MaxBytesInMultiByteString

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

[out, optional] BytesInMultiByteString

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

[in] UnicodeString

Pointeur vers la chaîne source Unicode à traduire.

[in] BytesInUnicodeString

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

Valeur retournée

RtlUnicodeToMultiByteN retourne STATUS_SUCCESS.

Remarques

RtlUnicodeToMultiByteN traduit la chaîne Unicode donnée à l’aide de la page de codes ANSI système actuelle qui a été installée au moment du démarrage du système.

Bien que BytesInMultiByteString 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.

Cette routine ne modifie pas la chaîne source. Elle retourne une chaîne multioctet terminée par null si l’objet BytesInUnicodeString donné incluait un terminateur NULL et si la valeur MaxBytesInMultiByteString donnée n’a pas causé de troncation.

Comme RtlUnicodeToMultiByteSize, RtlUnicodeToMultiByteN prend uniquement en charge 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 Fltkernel.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Voir aussi

RtlMultiByteToUnicodeN

RtlUnicodeToMultiByteSize

RtlUpcaseUnicodeToMultiByteN