Condividi tramite


Funzione RtlRunOnceExecuteOnce (ntddk.h)

RtlRunOnceExecuteOnce esegue un'inizializzazione una tantum.

Sintassi

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

Parametri

[in, out] RunOnce

Puntatore alla RTL_RUN_ONCE struttura di inizializzazione una tantum.

[in] InitFn

Puntatore a una routine RunOnceInitialization .

[in, out] Parameter

Valore da passare come parametro Parameter alla routine RunOnceInitialization .

[out] Context

Puntatore a una variabile PVOID che riceve i dati inizializzati.

Valore restituito

RtlRunOnceExecuteOnce restituisce STATUS_SUCCESS se l'operazione ha esito positivo o il codice di errore NTSTATUS appropriato se l'operazione ha esito negativo.

Commenti

Per la prima chiamata a RtlRunOnceExecuteOnce per una particolare struttura di RTL_RUN_ONCE , RtlRunOnceExecuteOnce chiama la routine RunOnceInitialization per inizializzare i dati. Ogni chiamata successiva a RtlRunOnceExecuteOnce per tale struttura fornisce gli stessi dati inizializzati. La routine RunOnceInitialization non verrà chiamata due volte per la stessa struttura RTL_RUN_ONCE .

RtlRunOnceExecuteOnce viene eseguito con normali API del kernel disabilitate. La routine non deve essere chiamata all'interno di un APC del kernel speciale, a meno che non si verifichino tutte le chiamate in APC_LEVEL.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows Vista.
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (vedere la sezione Osservazioni).

Vedi anche

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization