Partager via


Extension du cadre SPB (SpbCx)

L'extension du cadre SPB (SpbCx) est une extension fournie par le système au cadre des pilotes en mode noyau (KMDF). SpbCx fonctionne avec un pilote de contrôleur SPB pour effectuer des opérations d'E/S sur des appareils périphériques connectés à un simple bus périphérique (SPB), tel que I2C ou SPI.

Le pilote du contrôleur SPB effectue toutes les opérations spécifiques au matériel. Ces opérations comprennent l'accès aux registres matériels du contrôleur SPB afin de configurer le contrôleur et d'initier des transferts de bus vers et depuis les appareils périphériques connectés au SPB.

SpbCx effectue des tâches de traitement qui sont communes aux appareils du contrôleur SPB. En particulier, SpbCx gère les files d'attente des requêtes d'E/S pour un contrôleur SPB. Ces files d'attente contiennent les requêtes d'E/S pour les appareils périphériques connectés au bus. Le fournisseur de matériel du contrôleur SPB fournit un pilote de contrôleur SPB pour effectuer toutes les opérations spécifiques au matériel qui sont nécessaires pour traiter ces requêtes.

La répartition des responsabilités entre le SpbCx et le pilote du contrôleur SPB est la suivante :

  • SpbCx gère les fonctions génériques communes à tous les membres de la classe d'appareils du contrôleur SPB. SpbCx fournit une grande partie de la gestion des requêtes par défaut et du contrôle de flux pour le pilote du contrôleur. À partir de Windows 8, SpbCx est un composant intégré au système d'exploitation Windows.

  • Le pilote du contrôleur SPB gère les fonctions spécifiques au matériel dans l'appareil du contrôleur SPB. Les vendeurs de matériel fournissent des pilotes de contrôleur pour leurs appareils de contrôle SPB.

SpbCx et le pilote du contrôleur SPB fonctionnent en mode noyau. SpbCx est une extension du cadre de travail et le pilote du contrôleur SPB est un pilote KMDF. Le pilote du contrôleur SPB appelle les méthodes de l'interface pilote-appareil (DDI) de SpbCx pour effectuer les opérations spécifiques au SPB, et appelle les méthodes KMDF pour effectuer d'autres fonctions plus génériques du pilote. Pour plus d'informations sur la création d'un pilote KMDF, reportez-vous à la section Création et chargement d'un pilote basé sur un framework.

Les pilotes de contrôleur SPB sont liés statiquement aux points d'entrée DDI de la bibliothèque stub SpbCx, Spbcx.lib. Au moment de l'exécution, cette bibliothèque effectue la négociation nécessaire entre le pilote et la version pour établir un lien dynamique avec le module d'extension du framework, Spbcx.sys, qui met en œuvre la DDI. Un pilote de contrôleur SPB qui nécessite une version particulière de Spbcx.sys peut se lier en toute sécurité à une version de Spbcx.sys qui a un numéro de version plus élevé. Cependant, ce pilote ne peut pas se lier à une version de Spbcx.sys qui a un numéro de version inférieur. L'interface de requête d'E/S de SpbCx est également rétrocompatible.

Bien qu'un fournisseur de matériel ait la possibilité d'écrire un pilote de contrôleur SPB monolithique qui n'utilise pas SpbCx, un effort important est nécessaire pour le faire. En comparaison, un pilote de contrôleur qui utilise SpbCx est plus facile à développer et est généralement plus fiable.