Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[S’applique uniquement à KMDF]
Le WdfInterruptReportActive informe le système que l’interruption est active et que le pilote est prêt à traiter les demandes d’interruption sur les lignes associées.
Syntaxe
VOID WdfInterruptReportActive(
[in] WDFINTERRUPT Interrupt
);
Paramètres
[in] Interrupt
Handle vers un objet d’interruption de framework.
Valeur de retour
Aucun
Remarques
Seuls les pilotes qui implémentent l’appel de gestion de l’alimentation d’état fonctionnel WdfInterruptReportActive.
Un pilote n’a pas besoin d’appeler WdfInterruptReportActive immédiatement après la création d’une interruption. Le pilote ne doit appeler WdfInterruptReportActive après avoir appelé WdfInterruptReportInactive.
En règle générale, un pilote appelle WdfInterruptReportActive à partir de sa routine ComponentActiveConditionCallback ou de ComponentIdleStateCallback lorsque 'état est égal à 0 (indiquant l’état complet sur F0).
Si votre pilote appelle cette méthode sur un système d’exploitation antérieur à Windows 8, le vérificateur du framework signale une erreur.
Pour plus d’informations, consultez Prise en charge des états fonctionnels.
Exemples
L’exemple suivant montre comment un pilote peut appeler WdfInterruptReportActive à partir de la routine ComponentIdleStateCallback d’un pilote KMDF. Le pilote inscrit un composant unique en appelant WdfDeviceWdmAssignPowerFrameworkSettings.
VOID
MyComponentIdleStateCallback(
_In_ PVOID Context,
_In_ ULONG Component,
_In_ ULONG State
)
{
PFDO_DEVICE_DATA deviceData;
PINTERRUPT_CONTEXT interruptContext;
deviceData = FdoGetData((WDFDEVICE)Context);
interruptContext = InterruptGetData(deviceData->Interrupt);
switch (State) {
case 0:
if (interruptContext->ReportedInactive) {
//
// the interrupt was reported inactive earlier. We need to report active now.
//
WdfInterruptReportActive(deviceData->Interrupt);
interruptContext->ReportedInactive = FALSE;
//
// Enable interrupt generation at hardware.
//
WdfInterruptAcquireLock(deviceData->Interrupt);
EnableInterruptInHardware();
WdfInterruptReleaseLock(deviceData->Interrupt);
}
break;
…
}
Spécifications
| Besoin | Valeur |
|---|---|
| client minimum pris en charge | Windows 8 |
| plateforme cible | Universel |
| version minimale de KMDF | 1.11 |
| En-tête | wdfinterrupt.h (include Wdf.h) |
| Bibliothèque | Wdf01000.sys (voir Versioning de la bibliothèque Framework.) |
| IRQL | <=DISPATCH_LEVEL |
| règles de conformité DDI | DriverCreate(kmdf) |