Fonction RtlRunOnceExecuteOnce (ntddk.h)
RtlRunOnceExecuteOnce effectue une initialisation unique.
Syntaxe
NTSYSAPI NTSTATUS RtlRunOnceExecuteOnce(
PRTL_RUN_ONCE RunOnce,
PRTL_RUN_ONCE_INIT_FN InitFn,
PVOID Parameter,
PVOID *Context
);
Paramètres
[in, out] RunOnce
Pointeur vers la structure d’initialisation unique RTL_RUN_ONCE .
[in] InitFn
Pointeur vers une routine RunOnceInitialization .
[in, out] Parameter
Valeur à passer en tant que paramètre Parameter à la routine RunOnceInitialization .
[out] Context
Pointeur vers une variable PVOID qui reçoit les données initialisées.
Valeur retournée
RtlRunOnceExecuteOnce retourne STATUS_SUCCESS si l’opération réussit, ou le code d’erreur NTSTATUS approprié en cas d’échec de l’opération.
Remarques
Pour le premier appel à RtlRunOnceExecuteOnce pour une structure de RTL_RUN_ONCE particulière, RtlRunOnceExecuteOnce appelle la routine RunOnceInitialization pour initialiser les données. Chaque appel suivant à RtlRunOnceExecuteOnce pour cette structure fournit les mêmes données initialisées. La routine RunOnceInitialization ne sera pas appelée deux fois pour la même structure RTL_RUN_ONCE .
RtlRunOnceExecuteOnce s’exécute avec les API de noyau normales désactivées. La routine ne doit pas être appelée dans un APC de noyau spécial, sauf si tous les appels se produisent à APC_LEVEL.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows Vista. |
Plateforme cible | Universal |
En-tête | ntddk.h (incluez Ntddk.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL (voir la section Notes.) |