Fonction RtlRunOnceBeginInitialize (ntddk.h)

La routine RtlRunOnceBeginInitialize commence une initialisation ponctuelle.

Syntaxe

NTSYSAPI NTSTATUS RtlRunOnceBeginInitialize(
  [in, out] PRTL_RUN_ONCE RunOnce,
  [in]      ULONG         Flags,
  [out]     PVOID         *Context
);

Paramètres

[in, out] RunOnce

Pointeur vers la structure d’initialisation unique RTL_RUN_ONCE .

[in] Flags

Les pilotes peuvent éventuellement spécifier un ou plusieurs des indicateurs suivants :

RTL_RUN_ONCE_ASYNC

Effectuez l’initialisation de manière asynchrone. Le pilote peut effectuer plusieurs tentatives de saisie semi-automatique en parallèle. Si cet indicateur est utilisé, les appels ultérieurs à cette routine échouent, sauf si cet indicateur est également spécifié.

RTL_RUN_ONCE_CHECK_ONLY

Ne commencez pas l’initialisation, mais case activée pour déterminer si l’initialisation s’est déjà produite. Si RtlRunOnceBeginInitialize retourne STATUS_SUCCESS, l’initialisation a réussi et *Context contient les données initialisées.

[out] Context

Spécifie un pointeur vers une variable PVOID qui reçoit les données initialisées. La valeur de *Context est valide uniquement lorsque la routine retourne STATUS_SUCCESS.

Valeur retournée

RtlRunOnceBeginInitialize retourne l’une des valeurs NTSTATUS suivantes :

Code de retour Description
STATUS_SUCCESS
L’initialisation ponctuelle est déjà terminée. Les données initialisées sont stockées dans l’emplacement de mémoire vers lequel Context pointe.
STATUS_PENDING
L’appelant a démarré avec succès l’initialisation ponctuelle. L’appelant effectue maintenant les étapes d’initialisation spécifiques au pilote, puis appelle RtlRunOnceComplete pour terminer l’initialisation.

Remarques

Les pilotes peuvent également effectuer une initialisation ponctuelle en appelant RtlRunOnceExecuteOnce et en fournissant une routine RunOnceInitialization .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions plus récentes de Windows.
Plateforme cible Universal
En-tête ntddk.h (inclure Ntddk.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

RTL_RUN_ONCE

RtlRunOnceComplete

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization