Função RtlRunOnceComplete (ntddk.h)

A rotina RtlRunOnceComplete conclui a inicialização única iniciada por RtlRunOnceBeginInitialize.

Sintaxe

NTSYSAPI NTSTATUS RtlRunOnceComplete(
  [in, out]      PRTL_RUN_ONCE RunOnce,
  [in]           ULONG         Flags,
  [in, optional] 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

Operar no modo assíncrono. Esse modo permite que várias tentativas de conclusão sejam executadas em paralelo. Se esse sinalizador for usado, as chamadas subsequentes para a rotina RtlRunOnceComplete falharão, a menos que esse sinalizador também seja especificado.

RTL_RUN_ONCE_INIT_FAILED

Falha na tentativa de inicialização.

[in, optional] Context

Especifica os dados inicializados.

Retornar valor

RtlRunOnceComplete retorna um dos seguintes valores NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS
A operação foi concluída com sucesso.
STATUS_UNSUCCESSFUL
Não foi possível concluir a operação. Se o chamador especificado RTL_RUN_ONCE_ASYNC no parâmetro Flags , esse valor poderá indicar que outro thread concluiu a inicialização.

Comentários

Se RtlRunOnceComplete retornar STATUS_SUCCESS, qualquer chamada subsequente para RtlRunOnceBeginInitialize para o mesmo RTL_RUN_ONCE estrutura fornecerá Contexto que os dados inicializados.

Se o chamador especificado RTL_RUN_ONCE_ASYNC no parâmetro Flags e RtlRunOnceComplete retornar qualquer valor diferente de STATUS_SUCCESS, o chamador deverá limpo qualquer inicialização que tenha tentado.

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

Confira também

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization