Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La tecnologia della scheda Secure Digital (SD) è iniziata con schede portabili e in miniatura, ma con il rilascio della specifica SDIO (Secure Digital I/O), la Secure Digital Association (SDA) ha ampliato la definizione della tecnologia SD per includere un'ampia gamma di funzioni di scheda, ad esempio dispositivi Bluetooth, videocamere, dispositivi LAN wireless e ricevitori GPS (Global Positioning System). Questo documento illustra in che modo il sistema operativo supporta le estensioni della funzione 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:
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 il supporto per i controller host SD che si connettono direttamente al bus PCI. Quando il sistema enumera un controller host SD, carica un driver sd bus 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 un 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 durante la compilazione. Il diagramma seguente illustra lo stack di driver SD creato dal sistema quando enumera un controller SD e le schede di accompagnamento:
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 di I/O (IRP). I driver di dispositivo SD rilasciano 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 IRP PnP standard e IRP di alimentazione, ma non richiedono o gestiscono risorse hardware, ad esempio porte, memoria o vettori di interrupt. Di conseguenza, i driver di dispositivo SD non sono necessari per eseguire il mapping delle 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 interrupt hardware, la libreria del bus SD intercetta l'interrupt, maschera ulteriori interruzioni e notifica al driver del dispositivo SD tramite una routine di callback che si è verificata un'interruzione hardware. Per una descrizione della routine di callback usata dal driver del bus per notificare a un driver di dispositivo SD interruzioni hardware, vedere PSDBUS_CALLBACK_ROUTINE. Per una spiegazione generale del modo in cui lo stack di driver SD e le librerie gestiscono gli interrupt hardware, vedere Handling Secure Digital (SD) Hardware Interrupts.
Il file di intestazione ntddsd.h, fornito nel Windows Driver Kit (WDK), dichiara i prototipi per le routine esposte dalla libreria del bus SD.