IOCTL_SERIAL_SET_MODEM_CONTROL IOCTL (ntddser.h)
A solicitação IOCTL_SERIAL_SET_MODEM_CONTROL define o MCR (registro de controle de modem) no UART. Nenhuma verificação de parâmetro é feita nas configurações de registro fornecidas pelo cliente.
Para obter o valor do MCR, um cliente pode usar uma solicitação IOCTL_SERIAL_GET_MODEM_CONTROL .
Código principal
Buffer de entrada
O membro AssociatedIrp.SystemBuffer aponta para um ULONG alocado pelo cliente que é usado para inserir informações de controle de modem.
Comprimento do buffer de entrada
O membro Parameters.DeviceIoControl.InputBufferLength é definido como o tamanho, em bytes, de um ULONG.
Buffer de saída
Nenhum.
Comprimento do buffer de saída
Nenhum.
Bloco de status
O membro Informações está definido como zero.
O membro Status é definido como um dos Valores de Status Genérico para Solicitações de Controle de Dispositivo Serial.
Comentários
A implementação dessa IOCTL (solicitação de controle de E/S) é específica do hardware porque nenhum layout padrão é definido para o MCR (registro de controle de modem) em dispositivos UART compatíveis com 16550. Os drivers para dispositivos periféricos que se conectam a portas seriais devem evitar o uso desse IOCTL, que pode funcionar com alguns UARTs, mas não com outros. Esse IOCTL é usado principalmente para configurar o UART no modo de loopback para teste, mas somente se o UART tiver um MCR que dê suporte ao modo de loopback.
Para obter um layout de exemplo de um MCR, consulte a definição dos bits MCR (SERIAL_MCR_DTR por meio de SERIAL_MCR_LOOP) no arquivo de cabeçalho Serial.h no exemplo de driver serial no GitHub.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddser.h (inclua Ntddser.h) |