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]
La méthode WdfInterruptReportInactive informe le système que l’interruption n’est plus active et que le pilote ne s’attend pas à recevoir des demandes d’interruption sur les lignes associées.
Syntaxe
VOID WdfInterruptReportInactive(
[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 WdfInterruptReportInactive.
Lorsqu’un pilote appelle WdfInterruptReportInactive, l’infrastructure de gestion de l’alimentation (PoFx) peut ensuite effectuer des tâches de gestion de l’alimentation associées.
En règle générale, un pilote appelle WdfInterruptReportInactive à partir de sa routine ComponentIdleConditionCallback, ou de ComponentIdleStateCallback lorsque State est supérieur à zéro (indiquant un état Fx à faible alimentation).
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.
Exemples
L’exemple suivant montre comment un pilote peut appeler WdfInterruptReportInactive à 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;
PFDO_INTERRUPT_CONTEXT interruptContext;
deviceData = FdoGetData((WDFDEVICE)Context);
interruptContext = InterruptGetData(deviceData->Interrupt);
switch (State) {
case 0:
…
break;
//
// PoFx may make us go to any of the F-states directly, hence we execute
// F0Exit code for all of the Fx states. Note that transition to any Fx
// state happens from F0 (and not another Fx state).
//
default:
//
// Disable interrupt generation at hardware if needed.
//
WdfInterruptAcquireLock(deviceData->Interrupt);
DisableInterruptInHardware();
WdfInterruptReleaseLock(deviceData->Interrupt);
//
// Report that interrupt is now inactive.
//
WdfInterruptReportInactive(deviceData->Interrupt);
interruptContext->ReportedInactive = TRUE;
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) |