Partager via


Fonction RtlInitAnsiString (wdm.h)

La routine RtlInitAnsiString initialise une chaîne comptée de caractères ANSI.

Syntaxe

NTSYSAPI VOID RtlInitAnsiString(
  [out]          PANSI_STRING          DestinationString,
  [in, optional] __drv_aliasesMem PCSZ SourceString
);

Paramètres

[out] DestinationString

Pointeur vers la structure ANSI_STRING à initialiser.

[in, optional] SourceString

Pointeur vers une chaîne de caractères terminée par null. Cette chaîne est utilisée pour initialiser la chaîne comptée pointée par DestinationString.

Valeur de retour

None

Remarques

Cette routine initialise une chaîne de caractères comptée.

La routine copie la valeur du pointeur SourceString dans le membre Buffer de la structure ANSI_STRING pointée par DestinationString. Le membre Length de cette structure est défini sur la longueur, en octets, de la chaîne source, à l’exclusion de la valeur null de fin. Le membre MaximumLength de la structure est défini sur la longueur, en octets, de la chaîne source, y compris la valeur null de fin. Si SourceString a la valeur NULL, Length et MaximumLength sont tous deux définis sur zéro.

RtlInitAnsiString ne modifie pas la chaîne source pointée par SourceString.

Si la chaîne source est plus longue que MAXUSHORT - 1 octet, RtlInitAnsiString définit le membre Length de la structure ANSI_STRING pointée par DestinationString sur MAXUSHORT - 1, et définit le membre MaximumLength de cette structure sur MAXUSHORT. Dans ce cas, les valeurs Length et MaximumLength faussent la longueur de la chaîne source terminée par null, et se fier à la précision de ces valeurs est potentiellement dangereux.

Les appelants de RtlInitAnsiString peuvent être en cours d’exécution sur IRQL <= DISPATCH_LEVEL si la mémoire tampon DestinationString n’est pas modifiable. En règle générale, les appelants s’exécutent à IRQL = PASSIVE_LEVEL, car la plupart des autres routines rtlXxxString ne peuvent pas être appelées au PASSIVE_LEVEL IRQL > .

La macro RTL_CONSTANT_STRING crée une chaîne ou une structure de chaîne Unicode pour contenir une chaîne comptée.

STRING RTL_CONSTANT_STRING(
  [in]  PCSZ SourceString
);

UNICODE_STRING RTL_CONSTANT_STRING(
  [in]  PCWSTR SourceString
);

RTL_CONSTANT_STRING retourne une structure de chaîne ou une structure de chaîne Unicode.

La macro RTL_CONSTANT_STRING remplace les routines RtlInitAnsiString, RtlInitString et RtlInitUnicodeString lors du passage d’une chaîne constante.

Vous pouvez utiliser RTL_CONSTANT_STRING pour initialiser des variables globales.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau (voir la section Remarques)

Voir aussi

ANSI_STRING