Condividi tramite


Funzione RtlRunOnceBeginInitialize (ntddk.h)

La routine RtlRunOnceBeginInitialize avvia un'inizializzazione monouso.

Sintassi

NTSYSAPI NTSTATUS RtlRunOnceBeginInitialize(
  [in, out] PRTL_RUN_ONCE RunOnce,
  [in]      ULONG         Flags,
  [out]     PVOID         *Context
);

Parametri

[in, out] RunOnce

Puntatore alla struttura di inizializzazione monouso RTL_RUN_ONCE.

[in] Flags

I driver possono facoltativamente specificare uno o più dei flag seguenti:

RTL_RUN_ONCE_ASYNC

Eseguire l'inizializzazione in modo asincrono. Il driver può eseguire più tentativi di completamento in parallelo. Se questo flag viene utilizzato, le chiamate successive a questa routine avranno esito negativo a meno che non venga specificato anche questo flag.

RTL_RUN_ONCE_CHECK_ONLY

Non iniziare l'inizializzazione, ma verificare se l'inizializzazione è già stata eseguita. Se RtlRunOnceBeginInitialize restituisce STATUS_SUCCESS, l'inizializzazione è riuscita e *Contesto contiene i dati inizializzati.

[out] Context

Specifica un puntatore a una variabile PVOID che riceve i dati inizializzati. Il valore di *Context è valido solo quando la routine restituisce STATUS_SUCCESS.

Valore restituito

RtlRunOnceBeginInitialize restituisce uno dei valori NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
L'inizializzazione una tantum è già stata completata. I dati inizializzati vengono archiviati nella posizione di memoria a cui context punta.
STATUS_PENDING
Il chiamante ha iniziato correttamente l'inizializzazione una tantum. Il chiamante esegue ora i passaggi di inizializzazione specifici del driver e quindi chiama RtlRunOnceComplete per completare l'inizializzazione.

Osservazioni

I driver possono in alternativa eseguire l'inizializzazione una tantum chiamando RtlRunOnceExecuteOnce e fornendo una routine di RunOnceInitialization.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Vista e versioni successive di Windows.
piattaforma di destinazione Universale
intestazione ntddk.h (include Ntddk.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL <= APC_LEVEL

Vedere anche

RTL_RUN_ONCE

RtlRunOnceComplete

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization