Partager via


Pile de pilotes de carte SD

La technologie de carte Secure Digital (SD) a commencé avec des cartes mémoire portables miniatures, mais avec la publication de la spécification SDIO (Secure Digital I/O), la Secure Digital Association (SDA) a élargi la définition de la technologie SD pour inclure une grande variété de fonctions carte, telles que les appareils Bluetooth, les caméras vidéo, les appareils LAN sans fil et les récepteurs GPS (Global Positioning System). Ce document explique comment le système d’exploitation prend en charge les extensions de fonction carte à la technologie SD.

Les lecteurs de cartes de nombreux premiers périphériques de stockage SD ont été conçus pour se connecter au bus USB. Windows gère ces périphériques avec le pilote de stockage de masse USB (usbstor.sys) et le pilote de classe de stockage natif (disk.sys), comme illustré dans le diagramme suivant :

diagramme illustrant une pile d’appareils pour un périphérique de stockage sd précoce.

Pour obtenir une description plus complète de la pile d’appareils créée par Windows pour un carte de mémoire qui se connecte au bus USB, consultez Exemple d’objet de périphérique pour un périphérique de stockage de masse USB.

Le système d’exploitation prend en charge les contrôleurs hôtes SD qui se connectent directement au bus PCI. Lorsque le système énumère un contrôleur hôte SD, il charge un pilote de bus SD natif (sdbus.sys). Si un utilisateur insère un carte de mémoire SD, Windows charge un pilote de classe de stockage SD natif (sffdisk.sys) et un pilote miniport de stockage (sffp_sd.sys) au-dessus du pilote de bus. Si un utilisateur insère un carte SD avec un autre type de fonction, comme le GPS ou le réseau local sans fil, Windows charge un pilote fourni par le fournisseur pour l’appareil.

Tous les pilotes de périphérique de la pile SD, qu’ils soient natifs ou fournis par le fournisseur, doivent communiquer avec le pilote de bus SD en appelant des routines dans la bibliothèque de bus SD statique (sdbus.lib). Les pilotes SD doivent être liés à cette bibliothèque lorsqu’ils sont compilés. Le diagramme suivant illustre la pile de pilotes SD que le système crée lorsqu’il énumère un contrôleur SD et les cartes associées :

diagramme illustrant la relation entre le logiciel sd et les composants matériels.

Les pilotes de périphérique SD ne peuvent pas accéder directement au jeu de registres du contrôleur d’hôte, ni incorporer des commandes directes pour le contrôleur hôte dans des paquets de demandes d’E/S (IRP). Les pilotes de périphérique SD émettent des commandes au contrôleur hôte en appelant les routines de bibliothèque de bus SD, puis la bibliothèque génère les commandes SD appropriées pour le contrôleur hôte.

Les pilotes de périphérique SD doivent gérer le PnP standard et les IRP d’alimentation, mais ils ne demandent ni ne gèrent les ressources matérielles, telles que les ports, la mémoire ou les vecteurs d’interruption. Par conséquent, les pilotes de périphérique SD ne sont pas tenus de mapper les ressources matérielles lors de la gestion d’une demande de IRP_MN_START_DEVICE . Toutefois, lorsqu’un pilote de périphérique SD reçoit une demande de IRP_MN_STOP_DEVICE , il doit arrêter toutes les opérations d’E/S. En outre, le pilote doit fermer son interface au pilote de bus SD en réponse à une demande de IRP_MN_QUERY_REMOVE_DEVICE .

Lorsqu’une interruption matérielle se produit, la bibliothèque de bus SD intercepte l’interruption, masque les interruptions supplémentaires et avertit le pilote de périphérique SD au moyen d’une routine de rappel qu’une interruption matérielle s’est produite. Pour obtenir une description de la routine de rappel que le pilote de bus utilise pour notifier un pilote de périphérique SD d’interruptions matérielles, consultez PSDBUS_CALLBACK_ROUTINE. Pour obtenir une explication générale de la façon dont la pile de pilotes SD et les bibliothèques gèrent les interruptions matérielles, consultez Gestion des interruptions matérielles numériques sécurisées (SD).

Le fichier d’en-tête ntddsdsd.h , fourni dans le Kit de pilotes Windows (WDK), déclare les prototypes des routines exposées par la bibliothèque de bus SD.