Freigeben über


RtlRunOnceBeginInitialize-Funktion (ntddk.h)

Die RtlRunOnceBeginInitialize Routine beginnt eine einmalige Initialisierung.

Syntax

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

Parameter

[in, out] RunOnce

Zeiger auf die RTL_RUN_ONCE einmalige Initialisierungsstruktur.

[in] Flags

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

RTL_RUN_ONCE_ASYNC

Asynchrone Initialisierung durchführen. Der Treiber kann mehrere Abschlussversuche parallel ausführen. Wenn dieses Flag verwendet wird, treten nachfolgende Aufrufe dieser Routine fehl, es sei denn, dieses Flag ist ebenfalls angegeben.

RTL_RUN_ONCE_CHECK_ONLY

Beginnen Sie nicht mit der Initialisierung, überprüfen Sie jedoch, ob die Initialisierung bereits erfolgt ist. Wenn RtlRunOnceBeginInitialize STATUS_SUCCESS zurückgibt, ist die Initialisierung erfolgreich, und *Context- enthält die initialisierten Daten.

[out] Context

Gibt einen Zeiger auf eine PVOID-Variable an, die die initialisierten Daten empfängt. Der Wert von *Context ist nur gültig, wenn die Routine STATUS_SUCCESS zurückgibt.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS
Die einmalige Initialisierung wurde bereits abgeschlossen. Die initialisierten Daten werden im Speicherspeicherort gespeichert, auf den Context verweist.
STATUS_PENDING
Der Aufrufer hat erfolgreich mit der einmaligen Initialisierung begonnen. Der Aufrufer führt nun die treiberspezifischen Initialisierungsschritte aus und ruft dann RtlRunOnceComplete- auf, um die Initialisierung abzuschließen.

Bemerkungen

Treiber können alternativ eine einmalige Initialisierung durchführen, indem RtlRunOnceExecuteOnce- aufgerufen und eine RunOnceInitialization- Routine bereitgestellt wird.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows Vista und höheren Versionen von Windows.
Zielplattform- Universal
Header- ntddk.h (include Ntddk.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL

Siehe auch

RTL_RUN_ONCE

RtlRunOnceComplete

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization-