IDs de conexão para dispositivos periféricos serialmente conectados
O SerCx2 gerencia portas seriais às quais os dispositivos periféricos estão permanentemente conectados. Como essas conexões físicas são corrigidas, elas podem ser descritas no firmware ACPI para a plataforma de hardware. Se você escrever um driver para um dispositivo periférico conectado a uma porta serial gerenciada pelo SerCx2, a lista de recursos de hardware que o driver recebe incluirá uma ID de conexão que encapsula as informações de conexão do dispositivo do firmware da plataforma.
Na inicialização do sistema, o gerenciador de Plug and Play (PnP) enumera dispositivos PnP e dispositivos não PnP. Para um dispositivo periférico não PnP que tem uma conexão fixa com uma porta serial, o gerenciador PnP consulta o firmware ACPI da plataforma de hardware para obter um conjunto de parâmetros de conexão que descrevem como acessar o dispositivo. Esses parâmetros de conexão identificam o controlador serial da porta à qual o dispositivo está conectado e incluem outras informações, como a taxa de conexão e as configurações de controle de fluxo, que o controlador serial exige para se comunicar com o dispositivo.
O gerenciador PnP atribui uma ID de conexão para representar os parâmetros de conexão para esse dispositivo periférico. O gerenciador PnP armazena essa ID e os parâmetros de conexão juntos em um armazenamento de dados do sistema chamado hub de recursos. (O hub de recursos é um armazenamento de dados interno no qual o gerenciador PnP armazena informações de configuração sobre um dispositivo periférico serialmente conectado.) A ID de conexão encapsula esses parâmetros para que o driver periférico possa tratá-los como opacos.
O driver periférico recebe a ID de conexão para o dispositivo periférico serialmente conectado como parte dos recursos de hardware atribuídos ao driver. Quando o driver periférico chama uma função do sistema para abrir uma conexão com o dispositivo periférico, o driver fornece a ID de conexão, que a função do sistema usa para recuperar os parâmetros de conexão do dispositivo do hub de recursos.
Para obter exemplos de código de drivers UMDF e KMDF que usam IDs de conexão para abrir conexões lógicas para dispositivos periféricos serialmente conectados, consulte os seguintes tópicos:
Conectando um driver periférico UMDF a uma porta serial
Conectando um driver periférico KMDF a uma porta serial
Um cliente que abre uma conexão com um dispositivo periférico em uma porta serial tem acesso exclusivo à porta até que a conexão seja fechada. Falha na tentativa de outro cliente de abrir uma segunda conexão com a mesma porta.
Imediatamente após abrir uma porta serial, um cliente deve assumir que a porta está em um estado desconhecido ou indefinido. O cliente é responsável por configurar a porta para que ela esteja pronta para uso.
Para configurar uma porta serial para operação, o cliente envia solicitações de IOCTL (controle de E/S) para o controlador serial. Normalmente, o cliente envia uma solicitação IOCTL_SERIAL_APPLY_DEFAULT_CONFIGURATION ao controlador para definir a porta como sua configuração padrão. Se necessário, o cliente pode enviar IOCTLs seriais adicionais para substituir uma ou mais definições de configuração padrão. Por exemplo, o Windows define IOCTLs seriais para alterar a taxa de baud, os parâmetros de controle de fluxo, as configurações de controle de linha e os valores de tempo limite para solicitações de leitura e gravação. Para obter uma lista de IOCTLs seriais compatíveis com o SerCx2, consulte Interface de solicitação de E/S serial.