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 informações de controle de modem de entrada.
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 de Informações do está definido como zero.
O membro status de é definido como um dos valores de status genérico para solicitações de controle de dispositivo serial.
Observações
A implementação dessa solicitação de controle de E/S (IOCTL) é específica de 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 serial devem evitar o uso desse IOCTL, que pode funcionar com alguns UARTs, mas não com outras. 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 de exemplo do driver serial no GitHub.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ntddser.h (inclua Ntddser.h) |