Delen via


SPB Framework-extensie (SpbCx)

De SPB Framework-extensie (SpbCx) is een door het systeem geleverde extensie voor het Kernel-Mode Driver Framework (KMDF). SpbCx werkt samen met een SPB-controllerstuurprogramma om I/O-bewerkingen uit te voeren op randapparatuur die zijn verbonden met een eenvoudige randapparatuurbus (SPB), zoals I2C of SPI.

Het SPB-controllerstuurprogramma voert alle hardwarespecifieke bewerkingen uit. Deze bewerkingen omvatten toegang tot de hardwareregisters van de SPB-controller voor het configureren van de controller en het initiëren van busoverdrachten naar en van met SPB verbonden randapparatuur.

SpbCx voert verwerkingstaken uit die gebruikelijk zijn voor SPB-controllerapparaten. SpbCx beheert met name de I/O-aanvraagwachtrijen voor een SPB-controller. Deze wachtrijen bevatten I/O-aanvragen voor randapparatuur die zijn gekoppeld aan de bus. De hardwareleverancier voor de SPB-controller levert een SPB-controllerstuurprogramma om alle hardwarespecifieke bewerkingen uit te voeren die nodig zijn om deze aanvragen af te handelen.

De verdeling van verantwoordelijkheden tussen SpbCx en het stuurprogramma van de SPB-controller is als volgt:

  • SpbCx beheert de algemene functies die gebruikelijk zijn voor alle leden van de apparaatklasse spB-controller. SpbCx biedt veel van de standaard aanvraagafhandeling en stroombesturing voor het controllerstuurprogramma. Vanaf Windows 8 is SpbCx een ingebouwd onderdeel van het Windows-besturingssysteem.

  • Het stuurprogramma van de SPB-controller beheert de hardwarespecifieke functies in de SPB-controller. Hardwareleveranciers leveren controllerstuurprogramma's voor hun SPB-controllerapparaten.

SpbCx en het stuurprogramma van de SPB-controller worden uitgevoerd in de kernelmodus. SpbCx is een frameworkextensie en de SPB-controllerstuurprogramma is een KMDF-stuurprogramma. Het STUURPROGRAMMA van de SPB-controller roept de methoden aan in de SpbCx-interface (DDI) voor het uitvoeren van SPB-specifieke bewerkingen en roept KMDF-methoden aan om andere, algemenere stuurprogrammafuncties uit te voeren. Zie Een Framework-Based-stuurprogramma bouwen en laden voor meer informatie over het bouwen van een KMDF-stuurprogramma.

SPB-controllerstuurprogramma's statisch koppelen aan de DDI-toegangspunten in de SpbCx stub-bibliotheek, Spbcx.lib. Tijdens runtime voert deze bibliotheek de benodigde onderhandelingsfase voor stuurprogrammaversies uit om dynamisch te koppelen aan de frameworkextensiemodule, Spbcx.sys, waarmee de DDI wordt geïmplementeerd. Een SPB-controllerstuurprogramma dat een specifieke versie van Spbcx.sys vereist, kan veilig worden gekoppeld aan een versie van Spbcx.sys met een hoger versienummer. Dit stuurprogramma kan echter geen koppeling maken naar een versie van Spbcx.sys met een lager versienummer. De SpbCx I/O-aanvraaginterface is vergelijkbaar achterwaarts compatibel.

Hoewel een hardwareleverancier de mogelijkheid heeft om een monolithisch SPB-controllerstuurprogramma te schrijven dat geen SpbCx gebruikt, is een aanzienlijke inspanning vereist om dit te doen. Ter vergelijking: een controllerstuurprogramma dat gebruikmaakt van SpbCx is eenvoudiger te ontwikkelen en is doorgaans betrouwbaarder.