Compartir a través de


Función RtlRunOnceComplete (ntddk.h)

La rutina de RtlRunOnceComplete completa la inicialización única iniciada por RtlRunOnceBeginInitialize.

Sintaxis

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

Parámetros

[in, out] RunOnce

Puntero a la RTL_RUN_ONCE estructura de inicialización única.

[in] Flags

Opcionalmente, los controladores pueden especificar una o varias de las marcas siguientes:

RTL_RUN_ONCE_ASYNC

Operar en modo asincrónico. Este modo permite que varios intentos de finalización se ejecuten en paralelo. Si se usa esta marca, las llamadas posteriores a la rutina de RtlRunOnceComplete producirán un error a menos que también se especifique esta marca.

RTL_RUN_ONCE_INIT_FAILED

Error en el intento de inicialización.

[in, optional] Context

Especifica los datos inicializados.

Valor devuelto

rtlRunOnceComplete devuelve uno de los siguientes valores NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS
La operación se completó correctamente.
STATUS_UNSUCCESSFUL
No se pudo completar la operación. Si el autor de la llamada especificó RTL_RUN_ONCE_ASYNC en el parámetro Flags, este valor puede indicar que otro subproceso completó la inicialización.

Observaciones

Si RtlRunOnceComplete devuelve STATUS_SUCCESS, cualquier llamada posterior a RtlRunOnceBeginInitialize para la misma estructura de RTL_RUN_ONCE proporciona context que los datos inicializados.

Si el autor de la llamada especificado RTL_RUN_ONCE_ASYNC en el parámetro Flags y RtlRunOnceComplete devuelve cualquier valor distinto de STATUS_SUCCESS, el autor de la llamada debe limpiar cualquier inicialización que haya intentado.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows Vista y versiones posteriores de Windows.
de la plataforma de destino de Universal
encabezado de ntddk.h (incluya Ntddk.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= APC_LEVEL

Consulte también

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization