Função RtlRunOnceExecuteOnce (ntddk.h)

O RtlRunOnceExecuteOnce executa uma inicialização única.

Sintaxe

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

Parâmetros

[in, out] RunOnce

Um ponteiro para o RTL_RUN_ONCE estrutura de inicialização única.

[in] InitFn

Um ponteiro para uma rotina RunOnceInitialization .

[in, out] Parameter

O valor a ser passado como o parâmetro Parameter para a rotina RunOnceInitialization .

[out] Context

Um ponteiro para uma variável PVOID que recebe os dados inicializados.

Retornar valor

RtlRunOnceExecuteOnce retornará STATUS_SUCCESS se a operação for bem-sucedida ou o código de erro NTSTATUS apropriado se a operação falhar.

Comentários

Para a primeira chamada para RtlRunOnceExecuteOnce para uma estrutura de RTL_RUN_ONCE específica, RtlRunOnceExecuteOnce chama a rotina RunOnceInitialization para inicializar os dados. Cada chamada subsequente para RtlRunOnceExecuteOnce para essa estrutura fornece os mesmos dados inicializados. A rotina RunOnceInitialization não será chamada duas vezes para a mesma estrutura de RTL_RUN_ONCE .

RtlRunOnceExecuteOnce é executado com APCs de kernel normais desabilitadas. A rotina não deve ser chamada em um APC de kernel especial, a menos que todas as chamadas ocorram em APC_LEVEL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows Vista.
Plataforma de Destino Universal
Cabeçalho ntddk.h (inclua Ntddk.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (consulte a seção Comentários.)

Confira também

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization