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

IRP_MJ_DEVICE_CONTROL

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 de 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 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 exemplo de driver serial no GitHub.

Requisitos

   
Cabeçalho ntddser.h (include Ntddser.h)

Confira também

IOCTL_SERIAL_GET_MODEM_CONTROL