Compartilhar via


Recursos de drivers de controlador serial SerCx2-Based

O SerCx2 é uma extensão do KMDF (Kernel-Mode Driver Framework) que tem recursos especiais para dar suporte a drivers de controlador serial. Para obter mais informações sobre o KMDF, consulte Usar o WDF para desenvolver um driver de controlador serial baseado em Driver A SerCx2 é um driver KMDF que usa os métodos e retornos de chamada no KMDF para executar operações de driver genéricas e que se comunica com o SerCx2 para executar operações específicas para drivers de controlador serial.

Normalmente, os controladores serial são compatíveis no nível do hardware com dispositivos UART (receptor/transmissor assíncrono universal) de 16550. Os UARTs têm sido usados desde os primeiros dias da computação pessoal para controlar as portas serial localizadas nos casos de computadores desktop. Mais recentemente, os controladores serial estão contidos em circuitos integrados do System on a Chip (SoC) para fornecer comunicação de baixa contagem de pinos com outros circuitos integrados. Em uma plataforma de hardware baseada em SoC, a "porta serial" para a qual um cliente envia solicitações de E/S é simplesmente um conjunto de pinos de interface serial no chip SoC. Para obter mais informações, consulte Visão geral dos drivers do controlador serial.

A Microsoft pode fornecer o driver do controlador serial para uma família de controladores serial que têm recursos de hardware semelhantes. Ou o fornecedor de hardware de um controlador serial que tem recursos especiais pode fornecer um driver de controlador serial personalizado para dar suporte a esses recursos.

Um driver de controlador serial se comunica com o SerCx2 por meio de uma DDI (interface de driver de dispositivo). A DDI do SerCx2 tem duas partes:

  • Um conjunto de métodos de suporte ao driver implementados pelo SerCx2 e que são chamados pelo driver do controlador serial.
  • Um conjunto de funções de retorno de chamada de evento que são implementadas pelo driver do controlador serial e são chamadas pelo SerCx2.

Para obter descrições detalhadas dos métodos e retornos de chamada na DDI do SerCx2, consulte Referência de Extensão da Estrutura Serial da Versão 2 (SerCx2) nos tópicos de cabeçalho sercx.h .

Embora um fornecedor de hardware tenha a opção de escrever um driver de controlador serial autônomo, é necessário um esforço significativo para fazer isso. Em comparação, o desenvolvimento de um driver de controlador serial que usa o SerCx2 é mais fácil e normalmente resulta em um driver muito menor e mais confiável.

O SerCx2 gerencia as seguintes tarefas em nome do driver do controlador:

  • Operações de leitura e gravação
  • Detecção de tempo limite de E/S serial
  • Eventos de hardware
  • Transferências de DMA do sistema (se houver suporte para transações de DMA do sistema)
  • Transições de e para estados de dispositivo de baixa potência
  • Cancelamentos de solicitações de E/S (exceto durante transações de E/S personalizadas)

Para gerenciar operações de leitura e gravação, o SerCx2 transforma IRP_MJ_READ e IRP_MJ_WRITE solicitações de clientes em transações de E/S relativamente simples para o driver do controlador serial processar. Para obter mais informações, consulte Transações de E/S do SerCx2.

O SerCx2 está incluído no Windows como um componente chamado Sercx2.sys. O driver do controlador serial vincula estaticamente à biblioteca SerCx2, Sercxstubs.lib (versão 2.0) e, em tempo de execução, comunica-se com Sercx2.sys. A DDI do SerCx2 é definida no arquivo de cabeçalho 2.0\Sercx.h. Sercxstubs.lib e Sercx.h estão disponíveis no Kit de Driver do Windows para Windows 8.1.