Delen via


GPIO-Based Onderbreekmiddelen

Stuurprogramma's voor randapparatuur die interrupts verzenden naar general-purpose I/O (GPIO) pinnen behandelen GPIO-interrupts als abstracte Windows-interruptbronnen. Stuurprogramma's voor kernelmodus-stuurprogramma's (KMDF) en gebruikersmodusstuurprogramma's (UMDF) ontvangen deze resources via hun EvtDevicePrepareHardware-gebeurtenis callbackfuncties.

Randapparaatstuurprogramma's die gebruikmaken van op GPIO gebaseerde interrupt-resources kunnen implementatiedetails op laag niveau negeren, zoals of een interrupt wordt gegenereerd door een GPIO-pin in plaats van door een interruptcontroller of door een interruptpin op een processorchip.

Een GPIO-interrupt is een resource van het type CmResourceTypeInterrupt. De configuratieparameters voor deze interrupt zijn opgenomen in het lid u.Interrupt van de CM_PARTIAL_RESOURCE_DESCRIPTOR-structuur die de interruptresource beschrijft. Als u een interruptserviceroutine (ISR) wilt verbinden met een interrupt, levert een UMDF- of KMDF-stuurprogramma zowel de onbewerkte als vertaalde beschrijvingen van de interruptresource aan een methode voor het maken van interrupts.

Het KMDF- of UMDF-stuurprogramma voor een randapparaat roept de WdfInterruptCreate-methode aan om een ISR te verbinden met de interrupt van het apparaat. Een van de invoerparameters voor deze methode is een aanwijzer naar een WDF_INTERRUPT_CONFIG structuur die configuratiegegevens voor de interrupt bevat.

Als een apparaatstuurprogramma voor randapparatuur meer dan één GPIO-interruptresource gebruikt, moet dit stuurprogramma rekening houden met de volgorde waarin deze resources worden weergegeven in de onbewerkte en vertaalde resourcelijsten die worden opgegeven als invoerparameters voor de functie EvtDevicePrepareHardware of de onPrepareHardware-methode . De resources in deze lijsten worden weergegeven in de volgorde waarin ze worden beschreven in de platformfirmware, die moet overeenkomen met de volgorde die door het stuurprogramma wordt verwacht.