Funzione RtlRunOnceExecuteOnce (ntddk.h)
Il 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 struttura di inizializzazione monouso RTL_RUN_ONCE.
[in] InitFn
Puntatore a una routine di 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.
Osservazioni
Per la prima chiamata a RtlRunOnceExecuteOnce per una particolare struttura 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 di RTL_RUN_ONCE.
RtlRunOnceExecuteOnce viene eseguito con le 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.
Fabbisogno
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). |