Freigeben über


RtlRunOnceBeginInitialize-Funktion (ntddk.h)

Die RtlRunOnceBeginInitialize-Routine beginnt mit einer einmaligen 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 ein oder mehrere der folgenden Flags angeben:

RTL_RUN_ONCE_ASYNC

Führen Sie die Initialisierung asynchron aus. Der Treiber kann mehrere Vervollständigungsversuche parallel durchführen. Wenn dieses Flag verwendet wird, schlagen nachfolgende Aufrufe dieser Routine fehl, es sei denn, dieses Flag wird ebenfalls angegeben.

RTL_RUN_ONCE_CHECK_ONLY

Beginnen Sie nicht mit der Initialisierung, sondern überprüfen Sie, ob die Initialisierung bereits erfolgt ist. Wenn RtlRunOnceBeginInitialize STATUS_SUCCESS zurückgibt, war 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 an dem Speicherort 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.

Hinweise

Treiber können alternativ eine einmalige Initialisierung durchführen, indem sie RtlRunOnceExecuteOnce aufrufen und eine RunOnceInitialization-Routine bereitstellen.

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

RtlRunOnceComplete

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialisierung