HW_INTERRUPT función de devolución de llamada (storport.h)

El controlador storport llama a la rutina HwStorInterrupt después de que el HBA genere una solicitud de interrupción.

Sintaxis

HW_INTERRUPT HwInterrupt;

BOOLEAN HwInterrupt(
  PVOID DeviceExtension
)
{...}

Parámetros

DeviceExtension

Puntero al área de almacenamiento del controlador de minipuerto por HBA.

Valor devuelto

Si el controlador de miniporte encuentra que su HBA no ha generar la interrupción, HwStorInterrupt debe devolver FALSE lo antes posible. La rutina HwStorInterrupt debe devolverse dentro de 50 microsegundos.

Comentarios

El nombre HwStorInterrupt es simplemente un marcador de posición. El prototipo real de esta rutina se define en Storport.h de la siguiente manera:

typedef
BOOLEAN
HW_INTERRUPT (
  IN PVOID  DeviceExtension
  );

La rutina HwStorInterrupt debe devolver dentro de 50 microsegundos, idealmente lo más breve posible. Por lo tanto, no es necesario que todas las actividades se produzcan en IRQL elevadas se deben aplazar a [HwStorDpcRoutine](nc-storport-hw_dpc_routine.md que se define en el controlador de miniport y se emite mediante StorPortIssueDpc. La latencia del DPC es muy baja y se llamará inmediatamente después de la devolución de IRQL alta.

El controlador de puerto llama a la rutina HwStorInterrupt en DIRQL.

Ejemplos

Para definir una función de devolución de llamada HwStorInterrupt , primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una rutina de devolución de llamada HwStorInterrupt denominada MyHwInterrupt, use el tipo de HW_INTERRUPT como se muestra en este ejemplo de código:

HW_INTERRUPT MyHwInterrupt;

A continuación, implemente la rutina de devolución de llamada de la siguiente manera:

_Use_decl_annotations_
BOOLEAN
MyHwInterrupt (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

El tipo de función HW_INTERRUPT se define en el archivo de encabezado Storport.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función HW_INTERRUPT en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de roles de función para controladores storport. Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado storport.h (incluya Storport.h)
IRQL DIRQL

Consulte también

[HwStorDpcRoutine] (nc-storport-hw_dpc_routine.md

StorPortIssueDpc