Función KeSynchronizeExecution (wdm.h)
La rutina KeSynchronizeExecution sincroniza la ejecución de la rutina especificada con la rutina de servicio de interrupción (ISR) asignada a un conjunto de uno o varios objetos de interrupción.
Sintaxis
BOOLEAN KeSynchronizeExecution(
[in, out] PKINTERRUPT Interrupt,
[in] PKSYNCHRONIZE_ROUTINE SynchronizeRoutine,
[in, optional] __drv_aliasesMem PVOID SynchronizeContext
);
Parámetros
[in, out] Interrupt
Puntero a un conjunto de objetos de interrupción. El autor de la llamada obtuvo este puntero de la rutina IoConnectInterrupt o IoConnectInterruptEx .
[in] SynchronizeRoutine
Especifica una rutina SynchCritSection proporcionada por el autor de la llamada cuya ejecución se va a sincronizar con la ejecución del ISR asignado a los objetos de interrupción.
[in, optional] SynchronizeContext
Puntero a un valor de contexto proporcionado por el autor de la llamada que se va a pasar a la rutina SynchCritSection cuando se llama a .
Valor devuelto
KeSynchronizeExecution devuelve TRUE si la operación se realiza correctamente. De lo contrario, devuelve FALSE.
Comentarios
Cuando se llama a esta rutina, se produce lo siguiente:
- IrQL se genera al valor SynchronizeIrql especificado en la llamada a IoConnectInterrupt o IoConnectInterruptEx.
- El acceso a SynchronizeContext se sincroniza con el ISR asignado mediante la adquisición del bloqueo de número del objeto de interrupción asociado (o objeto de evento del sistema, en el caso de un ISR que se ejecuta en PASSIVE_LEVEL).
- Se llama a la rutina SynchCritSection especificada con el valor SynchronizeContext como parámetro.
Los autores de llamadas de KeSynchronizeExecution deben ejecutarse en IRQL <= DIRQL; es decir, en un IRQL menor o igual que el valor del valor SynchronizeIrql especificado al registrar su ISR con IoConnectInterrupt o IoConnectInterruptEx.
A partir de Windows 8, un controlador puede llamar a KeSynchronizeExecution para sincronizar la ejecución de una rutina SynchCritSection con un ISR que se ejecuta en IRQL = PASSIVE_LEVEL. En versiones anteriores de Windows, KeSynchronizeExecution solo puede sincronizar la ejecución con un ISR que se ejecuta en IRQL >= DISPATCH_LEVEL. Para obtener más información, vea Uso de rutinas de servicio de interrupción de Passive-Level.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | <= DIRQL (consulte la sección Comentarios) |