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 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)

Confira também

IOCTL_SERIAL_GET_MODEM_CONTROL