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 verifique se a inicialização já ocorreu. Se RtlRunOnceBeginInitialize retornar STATUS_SUCCESS, a inicialização foi bem-sucedida e *Context contém 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.
Valor de retorno
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 chama RtlRunOnceComplete para concluir a inicialização. |
Observações
Os drivers podem, como alternativa, executar a inicialização única chamando RtlRunOnceExecuteOnce e fornecendo uma rotina de RunOnceInitialization.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Windows Vista e versões posteriores do Windows. |
da Plataforma de Destino | Universal |
cabeçalho | ntddk.h (inclua Ntddk.h) |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |