HW_TIMER función de devolución de llamada (storport.h)
Se llama a la rutina HwStorTimer después del intervalo especificado cuando el controlador de minipuerto llamó a StorPortNotification con RequestTimerCall especificado para el parámetro NotificationType .
Sintaxis
HW_TIMER HwTimer;
void HwTimer(
PVOID DeviceExtension
)
{...}
Parámetros
DeviceExtension
Puntero al área de almacenamiento del controlador de minipuerto por HBA.
Valor devuelto
None
Observaciones
El nombre HwStorTimer es solo un marcador de posición. El prototipo real de esta rutina se define en Srb.h de la siguiente manera:
typedef
VOID
HW_TIMER (
_In_ PVOID DeviceExtension
);
Si la minipuerta opta por la compatibilidad con varios canales, todavía se toma el bloqueo de giro StartIo. Sin embargo, si el miniporte ha solicitado compatibilidad con varios canales a través de PERF_CONFIGURATION_DATA, el bloqueo de número StartIo no se toma o comprueba antes de la llamada a HwStorStartIo en la miniporte. Esto significa que la devolución de llamada HwStorStartIo no se sincroniza con la devolución de llamada a la rutina HwStorTimer cuando se usa la compatibilidad con varios canales. El minipuerto debe hacerlo por sí mismo mediante un intrínseco interbloqueado del compilador, por ejemplo, mediante InterlockedCompareExchange.
Una rutina HwStorTimer es opcional.
Para definir una función de devolución de llamada HwStorTimer , 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 Análisis de código para controladores, Comprobador de controladores estáticos (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 HwStorTimer denominada MyHwTimer, use el siguiente tipo de HW_TIMER e implemente la rutina de devolución de llamada de la siguiente manera:
HW_TIMER MyHwTimer;
_Use_decl_annotations_
VOID
MyHwTimer (
_In_ PVOID DeviceExtension
);
{
...
}
El tipo de función HW_TIMER 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_TIMER 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 rol de función para controladores de 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 | DISPATCH_LEVEL |