Freigeben über


RtlRunOnceExecuteOnce-Funktion (ntddk.h)

Die 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 Parameter Parameter 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.

Bemerkungen

Für den ersten Aufruf von RtlRunOnceExecuteOnce für eine bestimmte RTL_RUN_ONCE Struktur ruft RtlRunOnceExecuteOnce die RunOnceInitialization Routine zum Initialisieren der Daten auf. Jeder nachfolgende Aufruf von RtlRunOnceExecuteOnce für diese Struktur liefert die gleichen 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 bei APC_LEVEL.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows Vista.
Zielplattform- Universal
Header- ntddk.h (include Ntddk.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL (Siehe Abschnitt "Hinweise").)

Siehe auch

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization-