Freigeben über


RtlRunOnceExecuteOnce-Funktion (ntddk.h)

Der RtlRunOnceExecuteOnce führt eine einmalige Initialisierung durch.

Syntax

NTSYSAPI NTSTATUS RtlRunOnceExecuteOnce(
  PRTL_RUN_ONCE         RunOnce,
  PRTL_RUN_ONCE_INIT_FN InitFn,
  PVOID                 Parameter,
  PVOID                 *Context
);

Parameter

[in, out] RunOnce

Ein Zeiger auf die RTL_RUN_ONCE einmalige Initialisierungsstruktur.

[in] InitFn

Ein Zeiger auf eine RunOnceInitialization-Routine .

[in, out] Parameter

Der Wert, der als Parameterparameter an die RunOnceInitialization-Routine übergeben werden soll.

[out] Context

Ein Zeiger auf eine PVOID-Variable, die die initialisierten Daten empfängt.

Rückgabewert

RtlRunOnceExecuteOnce gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist, oder den entsprechenden NTSTATUS-Fehlercode, wenn der Vorgang fehlschlägt.

Hinweise

Für den ersten Aufruf von RtlRunOnceExecuteOnce für eine bestimmte RTL_RUN_ONCE-Struktur ruft RtlRunOnceExecuteOnce die RunOnceInitialization-Routine auf, um die Daten zu initialisieren. Jeder nachfolgende Aufruf von RtlRunOnceExecuteOnce für diese Struktur liefert dieselben initialisierten Daten. Die RunOnceInitialization-Routine wird nicht zweimal für dieselbe RTL_RUN_ONCE-Struktur aufgerufen.

RtlRunOnceExecuteOnce wird mit deaktivierten normalen Kernel-APCs ausgeführt. Die Routine sollte nicht innerhalb eines speziellen Kernel-APC aufgerufen werden, es sei denn, alle Aufrufe erfolgen APC_LEVEL.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (siehe Abschnitt Hinweise.)

Weitere Informationen

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization