HW_INTERRUPT funzione di callback (storport.h)
Il driver Storport chiama la routine HwStorInterrupt dopo che l'HBA genera una richiesta di interruzione.
Sintassi
HW_INTERRUPT HwInterrupt;
BOOLEAN HwInterrupt(
PVOID DeviceExtension
)
{...}
Parametri
DeviceExtension
Puntatore all'area di archiviazione del driver miniport per ogni area di archiviazione HBA.
Valore restituito
Se il driver miniport rileva che l'HBA non ha generato l'interrupt, HwStorInterrupt dovrebbe restituire FALSE il prima possibile. La routine HwStorInterrupt deve restituire entro 50 microsecondi.
Commenti
Il nome HwStorInterrupt è solo un segnaposto. Il prototipo effettivo di questa routine viene definito in Storport.h come indicato di seguito:
typedef
BOOLEAN
HW_INTERRUPT (
IN PVOID DeviceExtension
);
La routine HwStorInterrupt deve restituire entro 50 microsecondi, idealmente il più breve possibile. Pertanto, non è necessario che tutte le attività si verifichino con un valore IRQL elevato devono essere posticipate a [HwStorDpcRoutine](nc-storport-hw_dpc_routine.md definito nel driver miniport ed emesso tramite StorPortIssueDpc. La latenza del DPC è molto bassa e verrà chiamata immediatamente dopo il ritorno da irQL elevato.
Il driver della porta chiama la routine HwStorInterrupt in DIRQL.
Esempio
Per definire una funzione di callback HwStorInterrupt , è innanzitutto necessario fornire una dichiarazione di funzione che identifica il tipo di funzione di callback che si sta definendo. Windows fornisce un set di tipi di funzione di callback per i driver. La dichiarazione di una funzione tramite i tipi di funzione di callback consente di analizzare il codice per i driver, l'SDV ( Static Driver Verifier ) e altri strumenti di verifica di trovare errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.
Ad esempio, per definire una routine di callback HwStorInterrupt denominata MyHwInterrupt, usare il tipo HW_INTERRUPT come illustrato nell'esempio di codice seguente:
HW_INTERRUPT MyHwInterrupt;
Implementare quindi la routine di callback come indicato di seguito:
_Use_decl_annotations_
BOOLEAN
MyHwInterrupt (
_In_ PVOID DeviceExtension
);
{
...
}
Il tipo di funzione HW_INTERRUPT è definito nel file di intestazione Storport.h. Per identificare in modo più accurato gli errori quando si eseguono gli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations garantisce che vengano utilizzate le annotazioni applicate al tipo di funzione HW_INTERRUPT nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver Storport. Per informazioni sulle Use_decl_annotations, vedere Annotazione del comportamento della funzione.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | storport.h (include Storport.h) |
IRQL | DIRQL |
Vedi anche
[HwStorDpcRoutine] (nc-storport-hw_dpc_routine.md