Fonction RtlInitString (wdm.h)
La routine RtlInitString initialise une chaîne comptée de caractères 8 bits.
Syntaxe
NTSYSAPI VOID RtlInitString(
[out] PSTRING DestinationString,
[in, optional] __drv_aliasesMem PCSZ SourceString
);
Paramètres
[out] DestinationString
Pointeur vers la structure STRING à initialiser. Le fichier d’en-tête Ntdef.h définit cette structure comme identique à la structure ANSI_STRING .
[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.
Remarques
Cette routine initialise une chaîne de caractères comptée.
La routine copie la valeur du pointeur SourceString vers le membre Buffer de la structure 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.
RtlInitString ne modifie pas la chaîne source pointée par SourceString.
Si la chaîne source est plus longue que MAXUSHORT - 1 octet, RtlInitString définit le membre Length de la structure 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 RtlInitString peuvent s’exécuter 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 | Consultez la section Notes. |