Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[Se aplica a KMDF y UMDF]
El método WdfInterruptSynchronize ejecuta una función de devolución de llamada especificada en el DIRQL del dispositivo mientras mantiene el bloqueo de número de un objeto de interrupción.
Para los objetos de interrupción de nivel pasivo, este método ejecuta una función de devolución de llamada especificada en el nivel pasivo mientras mantiene el bloqueo de interrupción de nivel pasivo del objeto de interrupción.
Sintaxis
BOOLEAN WdfInterruptSynchronize(
[in] WDFINTERRUPT Interrupt,
[in] PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
[in] WDFCONTEXT Context
);
Parámetros
[in] Interrupt
Identificador de un objeto de interrupción del marco.
[in] Callback
Puntero a un EvtInterruptSynchronize función de devolución de llamada.
[in] Context
Puntero sin tipo a la información proporcionada por el controlador que el marco pasa al EvtInterruptSynchronize función de devolución de llamada.
Valor devuelto
WdfInterruptSynchronize devuelve el valor de estado booleano que devuelve la función de devolución de llamada EvtInterruptSynchronize.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Observaciones
Si desea que el controlador ejecute código que se debe ejecutar sin que se adelante y con el mantenimiento de interrupciones del dispositivo de forma eficaz, debe colocar ese código en un EvtInterruptSynchronize función de devolución de llamada. Para programar la ejecución de la función de devolución de llamada, el controlador debe llamar a WdfInterruptSynchronize.
El método WdfInterruptSynchronize devuelve después de que el EvtInterruptSynchronize función de devolución de llamada haya terminado de ejecutarse.
En lugar de llamar a WdfInterruptSynchronize, el controlador puede llamar a WdfInterruptAcquireLock y WdfInterruptReleaseLock.
Para obtener más información sobre el método WdfInterruptSynchronize, vea Sincronización de código de interrupción.
Para obtener más información sobre el control de interrupciones en controladores basados en marcos, consulte control de interrupciones de hardware.
Para las interrupciones de nivel pasivo, el controlador debe llamar a WdfInterruptSynchronize en IRQL = PASSIVE_LEVEL.
No llame a WdfInterruptSynchronize desde un contexto de subproceso arbitrario, como un controlador de solicitudes .
Ejemplos
En el ejemplo de código siguiente se muestra cómo llamar a WdfInterruptSynchronize para programar la ejecución de un EvtInterruptSynchronize función de devolución de llamada.
BOOLEAN synchronizeReturnValue;
synchronizeReturnValue = WdfInterruptSynchronize(
WdfInterrupt,
MyEvtInterruptSynchronize,
CallbackContext
);
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado | wdfinterrupt.h (incluya Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
irQL | <=DISPATCH_LEVEL |
reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |