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 |
---|---|
|
Die einmalige Initialisierung wurde bereits abgeschlossen. Die initialisierten Daten werden an dem Speicherort gespeichert, auf den Context verweist. |
|
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 |