IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)
A solicitação IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT conecta uma rotina de serviço de interrupção opcional e uma porta adiada opcional marcar rotina a uma porta paralela. Somente drivers no modo kernel podem usar essa solicitação.
A solicitação de interrupção de conexão retorna informações que o driver pode usar no contexto de um ISR específico do driver. As informações incluem um ponteiro para o objeto de interrupção e ponteiros para rotinas de retorno de chamada que alocam e liberam a porta paralela em IRQL = DIRQL.
Código principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffer de entrada
O membro AssociatedIrp.SystemBuffer aponta para uma estrutura PARALLEL_INTERRUPT_SERVICE_ROUTINE que o cliente aloca para informações de serviço de interrupção de entrada. O driver de função fornecido pelo sistema para portas paralelas usa o mesmo buffer de memória, mas o converte em um tipo de dados diferente para obter informações de saída.
Comprimento do buffer de entrada
O membro Parameters.DeviceIoControl.InputBufferLength é definido como o tamanho, em bytes, de uma estrutura PARALLEL_INTERRUPT_SERVICE_ROUTINE.
Buffer de saída
O membro AssociatedIrp.SystemBuffer aponta para uma estrutura PARALLEL_INTERRUPT_INFORMATION que o driver de função de porta paralela usa para gerar informações de interrupção paralelas.
Comprimento do buffer de saída
O membro Parameters.DeviceIoControl.OutputBufferLength é definido como o tamanho, em bytes, de uma estrutura PARALLEL_INTERRUPT_INFORMATION .
Bloco de status
Se a solicitação for bem-sucedida, o membro Informações será definido como o tamanho, em bytes, de uma estrutura PARALLEL_INTERRUPT_INFORMATION . Caso contrário, o membro Informações será definido como zero.
O membro Status é definido como um dos valores genéricos status retornados por solicitações de controle de dispositivo internas para portas paralelas ou para um dos seguintes valores:
STATUS_BUFFER_TOO_SMALL
Pelo menos um dos seguintes é verdadeiro:
O valor do membro Parameters.DeviceIoControl.InputBufferLength é menor que o tamanho, em bytes, de uma estrutura PARALLEL_INTERRUPT_SERVICE_ROUTINE.
O valor do membro Parameters.DeviceIoControl.OuputBufferLength é menor que o tamanho, em bytes, de uma estrutura PARALLEL_INTERRUPT_INFORMATION.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | parallel.h (inclua Parallel.h) |
Confira também
PARALLEL_INTERRUPT_SERVICE_ROUTINE