Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A tecnologia de cartão SD (Secure Digital) começou com cartões de memória portáteis em miniatura, mas com a versão da especificação SDIO (Secure Digital I/O), a Associação Digital Segura (SDA) ampliou a definição da tecnologia SD para incluir uma grande variedade de funções de cartão, como dispositivos Bluetooth, câmeras de vídeo, dispositivos LAN sem fio e receptores GPS (Global Positioning System). Este documento explica como o sistema operacional dá suporte às extensões de função de cartão para a tecnologia SD.
Leitores de cartão para muitos dispositivos de armazenamento SD iniciais 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 Exemplo de objeto de dispositivo para um dispositivo de armazenamento em massa USB.
O sistema operacional fornece suporte para controladores de host SD que se conectam diretamente ao barramento PCI. Quando o sistema enumera um controlador host SD, ele carrega um driver de barramento SD nativo (sdbus.sys). Se um usuário inserir um cartão de memória SD, o Windows carregará um driver de classe de armazenamento SD nativo (sffdisk.sys) e um driver de miniporto de armazenamento (sffp_sd.sys) na parte superior do driver de ônibus. Se um usuário inserir um cartão SD com um tipo diferente de função, como GPS ou LAN sem fio, o Windows carregará um driver fornecido pelo fornecedor para o dispositivo.
Todos os drivers de dispositivo na pilha SD, sejam eles nativos ou fornecidos por terceiros, devem se comunicar com o driver do barramento SD chamando rotinas na biblioteca estática do barramento SD (sdbus.lib). Os drivers SD devem vincular a essa biblioteca quando eles são compilados. O diagrama a seguir ilustra a pilha de drivers SD que o sistema cria ao enumerar um controlador SD e os cartões associados:
Os drivers de dispositivo SD não podem acessar diretamente o conjunto de registros do controlador de host, nem podem inserir comandos de passagem para o controlador de host em IRPs (pacotes de solicitação de E/S). Os drivers de dispositivos SD emitem comandos para o controlador anfitrião chamando 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 eles não solicitam ou 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 nenhum recurso 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 IRP_MN_STOP_DEVICE , ele deve interromper todas as operações de E/S. Além disso, o driver deve fechar sua interface com o driver de barramento SD em resposta a uma solicitação IRP_MN_QUERY_REMOVE_DEVICE.
Quando uma interrupção de hardware ocorre, a biblioteca de barramento SD intercepta a interrupção, mascara interrupções adicionais e notifica o driver do dispositivo SD por meio de uma rotina de retorno de chamada de que uma interrupção de hardware ocorreu. Para obter uma descrição da rotina de retorno de chamada que o motorista do ônibus usa para notificar um driver de dispositivo SD de interrupções de hardware, consulte PSDBUS_CALLBACK_ROUTINE. Para obter uma explicação geral de como a pilha de driver SD e as bibliotecas gerenciam interrupções de hardware, consulte Lidar com interrupções de hardware SD (Secure Digital).
O arquivo de cabeçalho ntddsd.h , fornecido no WDK (Windows Driver Kit), declara os protótipos para as rotinas expostas pela biblioteca de barramento SD.