IOCTL_PAR_IS_PORT_FREE IOCTL (ntddpar.h)
A solicitação IOCTL_PAR_IS_PORT_FREE determina se a porta paralela pai de um dispositivo paralelo é gratuita no momento em que o driver de barramento fornecido pelo sistema para portas paralelas processa a solicitação. Essa solicitação é fornecida principalmente para clientes do modo de usuário.
Essa solicitação é processada imediatamente após o gerente de E/S chamar a rotina de expedição do driver de barramento de porta paralela para solicitações de controle de dispositivo. Observe, no entanto, que o status da porta paralela pode mudar entre a hora em que o motorista do barramento de porta paralela conclui a solicitação e o tempo que o controle retorna a um cliente no modo de usuário.
Os clientes no modo kernel podem determinar diretamente se uma porta paralela é gratuita chamando o retorno de chamada PPARALLEL_TRY_ALLOCATE_ROUTINE fornecido pelo sistema.
Para obter mais informações, consulte Bloqueio e desbloqueio de um ParallelPort para uso por um dispositivo paralelo.
Código principal
Buffer de entrada
Nenhum.
Comprimento do buffer de entrada
Nenhum.
Buffer de saída
O membro AssociatedIrp.SystemBuffer aponta para um buffer BOOLEAN que o cliente aloca para gerar a status da porta paralela. Se a porta paralela for gratuita, o driver de função fornecido pelo sistema para portas paralelas definirá o buffer como TRUE, caso contrário, definirá o buffer como FALSE.
Comprimento do buffer de saída
O comprimento de um BOOLEAN.
Bloco de status
O membro Information é definido como o tamanho, em bytes, de um BOOLEAN.
O membro Status é definido como um dos valores genéricos de status retornados por solicitações de controle de dispositivo para dispositivos paralelos ou para o seguinte valor:
STATUS_BUFFER_TOO_SMALL
O membro Parameters.DeviceIoControl.OutputBufferLength é menor que o tamanho, em bytes, de um BOOLEAN.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddpar.h (inclua Ntddpar.h) |
Confira também
IOCTL_INTERNAL_PARALLEL_PORT_FREE