Share via


Extensão do SPB Framework (SpbCx)

Começando com Windows 8, a extensão de estrutura do SPB (SpbCx) é uma extensão fornecida pelo sistema para o KMDF (Kernel-Mode Driver Framework). O SpbCx funciona em conjunto com um driver de controlador SPB para executar operações de E/S em dispositivos periféricos conectados a um SPB ( barramento periférico simples ), como I²C ou SPI.

O driver do controlador SPB executa todas as operações específicas de hardware. Essas operações incluem o acesso aos registros de hardware do controlador SPB para configurar o controlador e iniciar transferências de barramento de e para dispositivos periféricos conectados ao SPB.

O SpbCx executa tarefas de processamento comuns a dispositivos de controlador SPB. Em particular, o SpbCx gerencia as filas de solicitação de E/S para um controlador SPB. Essas filas contêm solicitações de E/S para dispositivos periféricos anexados ao barramento. O fornecedor de hardware para o controlador SPB fornece um driver de controlador SPB para executar todas as operações específicas de hardware necessárias para lidar com essas solicitações.

A divisão de responsabilidades entre o SpbCx e o driver do controlador SPB é a seguinte:

  • O SpbCx gerencia as funções genéricas que são comuns a todos os membros da classe de dispositivo controlador SPB. O SpbCx fornece grande parte do tratamento de solicitação padrão e do controle de fluxo para o driver do controlador. Começando com Windows 8, o SpbCx é um componente de caixa de entrada do sistema operacional Windows.

  • O driver do controlador SPB gerencia as funções específicas de hardware no dispositivo do controlador SPB. Os fornecedores de hardware fornecem drivers de controlador para seus dispositivos de controlador SPB.

O SpbCx e o driver do controlador SPB são executados no modo kernel. O SpbCx é uma extensão de estrutura e o driver do controlador SPB é um driver KMDF. O driver do controlador SPB chama os métodos na DDI (interface do driver de dispositivo) SpbCx para executar operações específicas do SPB e chama métodos KMDF para executar outras funções de driver mais genéricas. Para obter informações sobre como criar um driver KMDF, consulte Criando e carregando um driver de Framework-Based.

Os drivers do controlador SPB vinculam estaticamente aos pontos de entrada DDI na biblioteca stub do SpbCx, Spbcx.lib. Em tempo de execução, essa biblioteca executa a negociação de versão do driver necessária para vincular dinamicamente ao módulo de extensão da estrutura, Spbcx.sys, que implementa a DDI. Um driver de controlador SPB que requer uma versão específica do Spbcx.sys pode vincular com segurança a uma versão de Spbcx.sys que tenha um número de versão mais alto. No entanto, esse driver não pode vincular a uma versão de Spbcx.sys que tenha um número de versão inferior. A interface de solicitação de E/S do SpbCx é igualmente compatível com versões anteriores.

Embora um fornecedor de hardware tenha a opção de escrever um driver de controlador SPB monolítico que não usa o SpbCx, é necessário um esforço significativo para fazer isso. Em comparação, um driver de controlador que usa o SpbCx é mais fácil de desenvolver e normalmente é mais confiável.