Fonction RtlRunOnceExecuteOnce (ntddk.h)
La 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 à transmettre en tant que paramètre Paramètre à la routine RunOnceInitialization.
[out] Context
Pointeur vers une variable PVOID qui reçoit les données initialisées.
Valeur de retour
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 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 des 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows Vista. |
plateforme cible | Universel |
d’en-tête | ntddk.h (include Ntddk.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL (voir la section Remarques.) |