Função RtlRunOnceBeginInitialize (ntddk.h)
A rotina RtlRunOnceBeginInitialize inicia uma inicialização única.
Sintaxe
NTSYSAPI NTSTATUS RtlRunOnceBeginInitialize(
[in, out] PRTL_RUN_ONCE RunOnce,
[in] ULONG Flags,
[out] PVOID *Context
);
Parâmetros
[in, out] RunOnce
Ponteiro para o RTL_RUN_ONCE estrutura de inicialização única.
[in] Flags
Opcionalmente, os drivers podem especificar um ou mais dos seguintes sinalizadores:
RTL_RUN_ONCE_ASYNC
Execute a inicialização de forma assíncrona. O driver pode executar várias tentativas de conclusão em paralelo. Se esse sinalizador for usado, as chamadas subsequentes para essa rotina falharão, a menos que esse sinalizador também seja especificado.
RTL_RUN_ONCE_CHECK_ONLY
Não inicie a inicialização, mas marcar para determinar se a inicialização já ocorreu. Se RtlRunOnceBeginInitialize retornar STATUS_SUCCESS, a inicialização terá êxito e *Context conterá os dados inicializados.
[out] Context
Especifica um ponteiro para uma variável PVOID que recebe os dados inicializados. O valor de *Context é válido somente quando a rotina retorna STATUS_SUCCESS.
Retornar valor
RtlRunOnceBeginInitialize retorna um dos seguintes valores NTSTATUS:
Código de retorno | Descrição |
---|---|
|
A inicialização única já foi concluída. Os dados inicializados são armazenados no local de memória para o qual o Contexto aponta. |
|
O chamador iniciou com êxito a inicialização única. O chamador agora executa as etapas de inicialização específicas do driver e, em seguida, chama RtlRunOnceComplete para concluir a inicialização. |
Comentários
Como alternativa, os drivers podem executar a inicialização única chamando RtlRunOnceExecuteOnce e fornecendo uma rotina RunOnceInitialization .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores do Windows. |
Plataforma de Destino | Universal |
Cabeçalho | ntddk.h (inclua Ntddk.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |