Compartir a través de


Función RtlRunOnceBeginInitialize (ntddk.h)

La rutina RtlRunOnceBeginInitialize comienza una inicialización única.

Sintaxis

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

Realizar la inicialización de forma asincrónica. El controlador puede realizar varios intentos de finalización en paralelo. Si se usa esta marca, se producirá un error en las llamadas posteriores a esta rutina a menos que también se especifique esta marca.

RTL_RUN_ONCE_CHECK_ONLY

No comience la inicialización, pero compruebe si ya se ha producido la inicialización. Si rtlRunOnceBeginInitialize devuelve STATUS_SUCCESS, la inicialización se realizó correctamente y *Context contiene los datos inicializados.

[out] Context

Especifica un puntero a una variable PVOID que recibe los datos inicializados. El valor de *Context solo es válido cuando la rutina devuelve STATUS_SUCCESS.

Valor devuelto

rtlRunOnceBeginInitialize devuelve uno de los siguientes valores NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS
La inicialización única ya se ha completado. Los datos inicializados se almacenan en la ubicación de memoria a la que apunta Contexto.
STATUS_PENDING
El autor de la llamada ha comenzado correctamente la inicialización única. El autor de la llamada realiza ahora los pasos de inicialización específicos del controlador y, a continuación, llama a RtlRunOnceComplete para completar la inicialización.

Observaciones

Los controladores pueden realizar una inicialización única llamando a RtlRunOnceExecuteOnce y proporcionando una rutina de RunOnceInitialization.

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

RtlRunOnceComplete

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization