Estensione SPB Framework (SpbCx)
L'estensione del framework SPB (SpbCx) è un'estensione fornita dal sistema a Kernel-Mode Driver Framework (KMDF). SpbCx interagisce con un driver del controller SPB per eseguire operazioni di I/O su dispositivi periferici connessi a un semplice bus periferico (SPB), ad esempio I2C o SPI.
Il driver del controller SPB esegue tutte le operazioni specifiche dell'hardware. Queste operazioni includono l'accesso ai registri hardware del controller SPB per configurare il controller e avviare i trasferimenti di bus da e verso dispositivi periferici connessi a SPB.
SpbCx esegue attività di elaborazione comuni ai dispositivi controller SPB. In particolare, SpbCx gestisce le code delle richieste di I/O per un controller SPB. Queste code contengono richieste di I/O per i dispositivi periferici collegati al bus. Il fornitore di hardware per il controller SPB fornisce un driver controller SPB per eseguire tutte le operazioni specifiche dell'hardware necessarie per gestire queste richieste.
La divisione delle responsabilità tra SpbCx e il driver del controller SPB è la seguente:
SpbCx gestisce le funzioni generiche comuni a tutti i membri della classe del dispositivo controller SPB. SpbCx offre gran parte della gestione delle richieste predefinita e del controllo del flusso per il driver del controller. A partire da Windows 8, SpbCx è un componente posta in arrivo del sistema operativo Windows.
Il driver del controller SPB gestisce le funzioni specifiche dell'hardware nel dispositivo controller SPB. I fornitori di hardware forniscono driver controller per i dispositivi controller SPB.
SpbCx e il driver del controller SPB vengono eseguiti in modalità kernel. SpbCx è un'estensione del framework e il driver del controller SPB è un driver KMDF. Il driver del controller SPB chiama i metodi nell'interfaccia DDI (Device Driver Interface) spbCx per eseguire operazioni specifiche di SPB e chiama i metodi KMDF per eseguire altre funzioni driver più generiche. Per informazioni sulla creazione di un driver KMDF, vedere Compilazione e caricamento di un driver basato su framework.
I driver del controller SPB si collegano staticamente ai punti di ingresso DDI nella libreria stub SpbCx, Spbcx.lib. In fase di esecuzione, questa libreria esegue la negoziazione necessaria della versione del driver per collegarsi dinamicamente al modulo di estensione del framework, Spbcx.sys, che implementa l'DDI. Un driver del controller SPB che richiede una versione specifica di Spbcx.sys può essere collegato in modo sicuro a una versione di Spbcx.sys con un numero di versione superiore. Tuttavia, questo driver non può collegarsi a una versione di Spbcx.sys con un numero di versione inferiore. L'interfaccia di richiesta di I/O SpbCx è analogamente compatibile con le versioni precedenti.
Anche se un fornitore di hardware ha la possibilità di scrivere un driver di controller SPB monolitico che non usa SpbCx, è necessario un impegno significativo per farlo. Per confronto, un driver controller che usa SpbCx è più facile da sviluppare ed è in genere più affidabile.