Partager via


Fonction RtlRunOnceComplete (ntddk.h)

La routine RtlRunOnceComplete termine l’initialisation ponctuelle commencée par RtlRunOnceBeginInitialize.

Syntaxe

NTSYSAPI NTSTATUS RtlRunOnceComplete(
  [in, out]      PRTL_RUN_ONCE RunOnce,
  [in]           ULONG         Flags,
  [in, optional] 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

Fonctionne en mode asynchrone. Ce mode permet à plusieurs tentatives de saisie semi-automatique de s’exécuter en parallèle. Si cet indicateur est utilisé, les appels suivants à la routine RtlRunOnceComplete échouent, sauf si cet indicateur est également spécifié.

RTL_RUN_ONCE_INIT_FAILED

La tentative d’initialisation a échoué.

[in, optional] Context

Spécifie les données initialisées.

Valeur retournée

RtlRunOnceComplete retourne l’une des valeurs NTSTATUS suivantes :

Code de retour Description
STATUS_SUCCESS
L’opération s’est terminée avec succès.
STATUS_UNSUCCESSFUL
L'opération n'a pas pu être terminée. Si l’appelant a spécifié RTL_RUN_ONCE_ASYNC dans le paramètre Flags , cette valeur peut indiquer qu’un autre thread a terminé l’initialisation.

Remarques

Si RtlRunOnceComplete retourne STATUS_SUCCESS, tout appel ultérieur à RtlRunOnceBeginInitialize pour la même structure RTL_RUN_ONCE fournit Context comme données initialisées.

Si l’appelant spécifié RTL_RUN_ONCE_ASYNC dans le paramètre Flags et que RtlRunOnceComplete retourne une valeur autre que STATUS_SUCCESS, l’appelant doit propre toute initialisation qu’il a tentée.

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 (incluez Ntddk.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization