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.

En el caso de 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 de un 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 de marco.

[in] Callback

Puntero a una función de devolución de llamada EvtInterruptSynchronize .

[in] Context

Puntero sin tipo a la información proporcionada por el controlador que el marco pasa a la función de devolución de llamada EvtInterruptSynchronize .

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.

Comentarios

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 una función de devolución de llamada EvtInterruptSynchronize . 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 una vez finalizada la ejecución de la función de devolución de llamada EvtInterruptSynchronize .

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 Sincronizar 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 una función de devolución de llamada EvtInterruptSynchronize .

BOOLEAN synchronizeReturnValue;

synchronizeReturnValue = WdfInterruptSynchronize(
                                         WdfInterrupt,
                                         MyEvtInterruptSynchronize,
                                         CallbackContext
                                         );

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfinterrupt.h (incluir Wdf.h)
Library 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