Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A tecnologia de cartão Secure Digital (SD) começou com cartões de memória portáteis em miniatura, mas com o lançamento da especificação Secure Digital I/O (SDIO), a Secure Digital Association (SDA) ampliou a definição de tecnologia SD para incluir uma grande variedade de funções de cartão, como dispositivos Bluetooth, câmeras de vídeo, dispositivos de LAN sem fio e recetores GPS (Global Positioning System). Este documento explica como o sistema operacional suporta as extensões de função do cartão para a tecnologia SD.
Os leitores de cartões para muitos dos primeiros dispositivos de armazenamento SD foram projetados para se conectar ao barramento USB. O Windows gerencia esses dispositivos com o driver de armazenamento em massa USB (usbstor.sys) e o driver de classe de armazenamento nativo (disk.sys), conforme descrito no diagrama a seguir:
Para obter uma descrição mais completa da pilha de dispositivos que o Windows cria para um cartão de memória que se conecta ao barramento USB, consulte Device Object Example for a USB Mass Storage Device.
O sistema operacional fornece suporte para controladores host SD que se conectam diretamente ao barramento PCI. Quando o sistema enumera um controlador de host SD, ele carrega um driver de barramento SD nativo (sdbus.sys). Se um utilizador inserir um cartão de memória SD, o Windows carrega um driver de classe de armazenamento SD nativo (sffdisk.sys) e um driver de miniporta de armazenamento (sffp_sd.sys) no topo do driver de barramento. Se um usuário insere um cartão SD com um tipo diferente de função, como GPS ou LAN sem fio, o Windows carrega um driver fornecido pelo fornecedor para o dispositivo.
Todos os drivers de dispositivo na pilha SD, sejam nativos ou fornecidos pelo fornecedor, devem se comunicar com o driver de barramento SD chamando rotinas na biblioteca de barramento SD estática (sdbus.lib). Os drivers SD devem ser vinculados a essa biblioteca quando forem compilados. O diagrama a seguir mostra a pilha de driver SD que o sistema cria quando enumera um controlador SD e cartões que o acompanham:
Os drivers de dispositivo SD não podem acessar diretamente o conjunto de registros do controlador host, nem podem incorporar comandos de passagem para o controlador host em pacotes de solicitação de E/S (IRPs). Os drivers de dispositivo SD emitem comandos para o controlador anfitrião ao chamar as rotinas da biblioteca de barramento SD, e, em seguida, a biblioteca gera os comandos SD apropriados para o controlador anfitrião.
Os drivers de dispositivo SD devem lidar com PnP padrão e IRPs de energia, mas não solicitam nem gerenciam recursos de hardware, como portas, memória ou vetores de interrupção. Consequentemente, os drivers de dispositivo SD não são necessários para mapear quaisquer recursos de hardware ao lidar com uma solicitação de IRP_MN_START_DEVICE. No entanto, quando um driver de dispositivo SD recebe uma solicitação de IRP_MN_STOP_DEVICE, ele deve parar todas as operações de E/S. Além disso, o driver deve fechar sua interface para o driver de barramento SD em resposta a uma solicitação de IRP_MN_QUERY_REMOVE_DEVICE.
Quando ocorre uma interrupção de hardware, a biblioteca de barramento SD interceta a interrupção, mascara novas interrupções e notifica o driver de dispositivo SD por meio de uma rotina de retorno de chamada de que ocorreu uma interrupção de hardware. Para obter uma descrição da rotina de retorno de chamada que o driver de barramento usa para notificar um driver de dispositivo SD sobre interrupções de hardware, consulte PSDBUS_CALLBACK_ROUTINE. Para obter uma explicação geral de como a pilha de drivers SD e as bibliotecas gerenciam interrupções de hardware, consulte Handling Secure Digital (SD) Hardware Interrupts.
O arquivo de cabeçalho ntddsd.h, que é fornecido no Kit de Driver do Windows (WDK), declara os protótipos para as rotinas expostas pela biblioteca de barramento SD.