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) |