Condividi tramite


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).

Vedere anche

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization