Share via


Método IInterruptSync::CallSynchronizedRoutine (portcls.h)

El CallSynchronizedRoutine método llama a una rutina que no es una rutina de servicio de interrupción (ISR), pero cuya ejecución debe sincronizarse con isr.

Sintaxis

NTSTATUS CallSynchronizedRoutine(
  [in] PINTERRUPTSYNCROUTINE Routine,
  [in] PVOID                 DynamicContext
);

Parámetros

[in] Routine

Puntero a la rutina a la que se va a llamar. Esta rutina se ejecutará exclusivamente del ISR del objeto y de todas las demás rutinas que se sincronizan a través del objeto . Incluso en máquinas de varios procesadores, las rutinas sincronizadas por un objeto determinado no se ejecutarán simultáneamente. Este parámetro es un puntero de función de tipo PINTERRUPTSYNCROUTINE (consulte IInterruptSync).

[in] DynamicContext

Valor de contexto que se va a pasar a la rutina.

Valor devuelto

CallSynchronizedRoutine devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, el método devuelve un código de error adecuado.

Comentarios

Se garantiza que la ejecución de cualquier ISR registrado se mantenga desactivada hasta que se haya completado la llamada a la rutina a la que se pasa CallSynchronizedRoutine .

Los autores de llamadas de CallSynchronizedRoutine deben ejecutarse en un IRQL que sea menor o igual que el nivel de la interrupción asociada al objeto de sincronización. Esta interrupción se especificó mediante los parámetros ResourceList y ResourceIndex de la función PcNewInterruptSync.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado portcls.h (incluir Portcls.h)
IRQL vea la sección Comentarios.

Consulte también

IInterruptSync

KeSynchronizeExecution

PcNewInterruptSync