Compartir a través de


Función WdfInterruptSynchronize (wdfinterrupt.h)

[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)

Consulte también

EvtInterruptSynchronize

WdfInterruptAcquireLock

WdfInterruptReleaseLock