Condividi tramite


Stack di driver della scheda SD

La tecnologia della scheda Secure Digital (SD) ha iniziato con schede di memoria in miniatura portabili, ma con la versione della specifica I/O (Secure Digital I/O) (SDA), la Secure Digital Association (SDA) ha ampliato la definizione della tecnologia SD per includere una vasta gamma di funzioni della scheda, ad esempio dispositivi Bluetooth, telecamere video, dispositivi LAN wireless e ricevitori GPS (Global Positioning System). Questo documento illustra come il sistema operativo supporta le estensioni per le funzioni della scheda alla tecnologia SD.

I lettori di schede per molti dispositivi di archiviazione SD iniziali sono stati progettati per connettersi al bus USB. Windows gestisce questi dispositivi con il driver di archiviazione di massa USB (usbstor.sys) e il driver della classe di archiviazione nativa (disk.sys), come illustrato nel diagramma seguente:

diagramma che illustra uno stack di dispositivi per un dispositivo di archiviazione sd iniziale.

Per una descrizione più completa dello stack di dispositivi creato da Windows per una scheda di memoria che si connette al bus USB, vedere Esempio di oggetto dispositivo per un dispositivo di archiviazione di massa USB.

Il sistema operativo fornisce supporto per i controller host SD che si connettono direttamente al bus PCI. Quando il sistema enumera un controller host SD, carica un driver del bus SD nativo (sdbus.sys). Se un utente inserisce una scheda di memoria SD, Windows carica un driver di classe di archiviazione SD nativo (sffdisk.sys) e il driver miniport di archiviazione (sffp_sd.sys) sopra il driver del bus. Se un utente inserisce una scheda SD con un tipo di funzione diverso, ad esempio GPS o LAN wireless, Windows carica un driver fornito dal fornitore per il dispositivo.

Tutti i driver di dispositivo nello stack SD, sia nativi che forniti dal fornitore, devono comunicare con il driver del bus SD chiamando routine nella libreria del bus SD statico (sdbus.lib). I driver SD devono collegarsi a questa libreria quando vengono compilati. Il diagramma seguente illustra lo stack di driver SD creato dal sistema quando enumera un controller SD e le schede di accompagnamento:

diagramma che illustra la relazione tra il software sd e i componenti hardware.

I driver di dispositivo SD non possono accedere direttamente al set di registrazione del controller host, né possono incorporare comandi pass-through per il controller host nei pacchetti di richiesta I/O (IRP). I driver di dispositivo SD generano comandi al controller host chiamando le routine della libreria del bus SD e quindi la libreria genera i comandi SD appropriati per il controller host.

I driver di dispositivo SD devono gestire i provider di sicurezza di rete standard e power IRP, ma non richiedono o gestiscono risorse hardware, ad esempio porte, memoria o vettori di interruzione. Di conseguenza, i driver di dispositivo SD non sono necessari per eseguire il mapping di risorse hardware durante la gestione di una richiesta di IRP_MN_START_DEVICE . Tuttavia, quando un driver di dispositivo SD riceve una richiesta di IRP_MN_STOP_DEVICE , deve arrestare tutte le operazioni di I/O. Inoltre, il driver deve chiudere l'interfaccia al driver del bus SD in risposta a una richiesta di IRP_MN_QUERY_REMOVE_DEVICE .

Quando si verifica un interruzione hardware, la libreria del bus SD intercetta l'interruzione, maschera ulteriori interruzioni e notifica al driver del dispositivo SD tramite una routine di callback che si è verificato un interruzione hardware. Per una descrizione della routine di callback usata dal driver del bus per inviare una notifica a un driver di dispositivo SD di interruzioni hardware, vedere PSDBUS_CALLBACK_ROUTINE. Per una spiegazione generale del modo in cui lo stack di driver SD e le librerie gestiscono gli interruzioni hardware, vedere Gestione degli interruzioni hardware (SD).

Il file di intestazione ntddsd.h , fornito in Windows Driver Kit (WDK), dichiara i prototipi per le routine esposte dalla libreria del bus SD.