Partager via


RtlRunOnceBeginInitialize, fonction (ntddk.h)

La routine RtlRunOnceBeginInitialize commence une initialisation unique.

Syntaxe

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

Paramètres

[in, out] RunOnce

Pointeur vers la RTL_RUN_ONCE structure d’initialisation unique.

[in] Flags

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

RTL_RUN_ONCE_ASYNC

Effectuez l’initialisation de façon asynchrone. Le pilote peut effectuer plusieurs tentatives d’achèvement en parallèle. Si cet indicateur est utilisé, les appels suivants à cette routine échouent, sauf si cet indicateur est également spécifié.

RTL_RUN_ONCE_CHECK_ONLY

Ne commencez pas l’initialisation, mais vérifiez 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 de retour

RtlRunOnceBeginInitialize retourne l’une des valeurs NTSTATUS suivantes :

Retourner le code Description
STATUS_SUCCESS
L’initialisation ponctuelle est déjà terminée. Les données initialisées sont stockées à l’emplacement de mémoire vers lequel Contexte pointe.
STATUS_PENDING
L’appelant a commencé l’initialisation ponctuelle. L’appelant effectue désormais les étapes d’initialisation spécifiques au pilote, puis appelle RtlRunOnceComplete pour terminer l’initialisation.

Remarques

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

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures de Windows.
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

RTL_RUN_ONCE

RtlRunOnceComplete

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization