Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een SPB-controller is een apparaat dat een eenvoudige randapparatuurbus (SPB) beheert en die gegevens overdraagt naar en van de randapparatuur die zijn verbonden met de SPB. De hardwareleverancier voor een SPB-controller biedt een SPB-controllerstuurprogramma voor het beheren van de hardwarefuncties in de controller.
Vanaf Windows 8 vereenvoudigt de SPB Framework-extensie (SpbCx) de ontwikkeling van controllerstuurprogramma's voor eenvoudige randapparatuurbussen (SPBs). SpbCx is een door het systeem geleverde extensie voor het Kernel-Mode Driver Framework (KMDF). De hardwareleverancier voor het SPB-controllerapparaat levert een controllerstuurprogramma om alle hardwarespecifieke stuurprogrammabewerkingen uit te voeren. Dit stuurprogramma communiceert met SpbCx om bewerkingen uit te voeren die specifiek zijn voor SPB-controllers en communiceert rechtstreeks met KMDF om algemene stuurprogrammabewerkingen uit te voeren.
Een SPB-controllerstuurprogramma roept bijvoorbeeld doorgaans de WdfDeviceInitSetPnpPowerEventCallbacks-methode in KMDF aan om te registreren voor het ontvangen van callbacks van energie-gebeurtenissen en roept de methode WdfInterruptCreate aan om de interruptserviceroutine (ISR) van het stuurprogramma te verbinden met de interrupt van de SPB-controller. Om SPB-specifieke bewerkingen uit te voeren, communiceert de SPB-controller met SpbCx via de SpbCx-interface voor apparaatstuurprogramma's (DDI).
SpbCx werkt samen met het SBP-controllerstuurprogramma voor het afhandelen van I/O-aanvragen voor randapparatuur die zijn verbonden met de SPB. SpbCx voert verwerkingstaken uit die gebruikelijk zijn voor SPB-controllerstuurprogramma's. Deze taken omvatten het beheren van de I/O-aanvraagwachtrijen voor de SPB-controller. Deze wachtrijen bevatten I/O-aanvragen van stuurprogramma's die de randapparatuur beheren die aan de bus is verbonden. Het SPB-controllerstuurprogramma voert alle hardwarespecifieke bewerkingen uit die nodig zijn om deze aanvragen te verwerken.
In het volgende diagram ziet u het stuurprogramma van de SPB-controller en SpbCx.
Het SPB-controllerstuurprogramma en SpbCx worden beide uitgevoerd in de kernelmodus en communiceren met elkaar via de SpbCx DDI. Het SPB-controllerstuurprogramma roept stuurprogramma-ondersteuningsmethoden aan die zijn geïmplementeerd door SpbCx. SpbCx roept callbackfuncties voor gebeurtenissen aan die zijn geïmplementeerd door het stuurprogramma van de SPB-controller.
De stuurprogramma's die I/O-aanvragen verzenden naar de SPB-controller zijn kernelmodusstuurprogramma's die gebruikmaken van het Kernel-Mode Driver Framework (KMDF) of stuurprogramma's in de gebruikersmodus die gebruikmaken van het User-Mode Driver Framework (UMDF). Deze stuurprogramma's kunnen lees- en schrijfaanvragen verzenden om gegevens over te dragen naar en van met SPB verbonden randapparatuur. Bovendien kunnen de stuurprogramma's I/O-besturingsaanvragen (IOCTL) verzenden om SPB-specifieke bewerkingen uit te voeren.
Het stuurprogramma van de SPB-controller heeft rechtstreeks toegang tot de hardwareregisters van het SPB-controllerapparaat om gegevensoverdrachten naar en van randapparaten die zijn verbonden met de SPB te initiëren. Voor een SPB zoals I2C vinden deze gegevensoverdrachten plaats met relatief trage snelheden. Hoewel de hardwareregisters van de SPB-controller waarschijnlijk worden toegewezen aan geheugen, moeten de registers van de randapparatuur serieel worden geopend via de SPB.
Als reactie op een I/O-aanvraag om gegevens over te dragen naar of van een met SPB verbonden randapparaat, start het SPB-controllerstuurprogramma de busoverdracht, markeert de I/O-aanvraag als in behandeling en retourneert zonder te wachten tot de overdracht is voltooid. Later, wanneer de SPB-controllerhardware de overdracht voltooit, geeft de controller een interruptsignaal en voltooit de ISR in het SPB-controllerstuurprogramma de in behandeling zijnde I/O-aanvraag of start de volgende overdracht in de aangevraagde I/O-bewerking.
Alleen stuurprogramma's kunnen I/O-aanvragen rechtstreeks verzenden naar een SPB-controller. Wanneer een toepassing in de gebruikersmodus gegevens overdraagt naar of van een met SPB verbonden randapparaat, moet de toepassing afhankelijk zijn van het stuurprogramma van het SPB-randapparaat om de bijbehorende lees- of schrijfaanvragen naar de SPB-controller te verzenden.