RtlRunOnceComplete-Funktion (ntddk.h)

Die RtlRunOnceComplete-Routine schließt die einmalige Initialisierung ab, die mit RtlRunOnceBeginInitialize begonnen wurde.

Syntax

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

Parameter

[in, out] RunOnce

Zeiger auf die RTL_RUN_ONCE einmalige Initialisierungsstruktur.

[in] Flags

Treiber können optional ein oder mehrere der folgenden Flags angeben:

RTL_RUN_ONCE_ASYNC

Arbeiten Sie im asynchronen Modus. Dieser Modus ermöglicht die parallele Ausführung mehrerer Vervollständigungsversuche. Wenn dieses Flag verwendet wird, schlagen nachfolgende Aufrufe der RtlRunOnceComplete-Routine fehl, es sei denn, dieses Flag ist ebenfalls angegeben.

RTL_RUN_ONCE_INIT_FAILED

Fehler beim Initialisierungsversuch.

[in, optional] Context

Gibt die initialisierten Daten an.

Rückgabewert

RtlRunOnceComplete gibt einen der folgenden NTSTATUS-Werte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_UNSUCCESSFUL
Der Vorgang konnte nicht abgeschlossen werden. Wenn der Aufrufer RTL_RUN_ONCE_ASYNC im Flags-Parameter angegeben hat, kann dieser Wert angeben, dass die Initialisierung von einem anderen Thread abgeschlossen wurde.

Hinweise

Wenn RtlRunOnceComplete STATUS_SUCCESS zurückgibt, wird bei jedem nachfolgenden Aufruf von RtlRunOnceBeginInitialize für dieselbe RTL_RUN_ONCE-StrukturContext wie die initialisierten Daten angegeben.

Wenn der im Flags-Parameter angegebene Aufrufer RTL_RUN_ONCE_ASYNC und RtlRunOnceComplete einen anderen Wert als STATUS_SUCCESS zurückgibt, muss der Aufrufer alle versuchten Initialisierungen sauber.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und späteren Windows-Versionen.
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialisierung