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. |