Поделиться через


IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)

Запрос IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT подключает необязательную подпрограмму службы прерываний и необязательный отложенный порт проверка к параллельному порту. Использовать этот запрос могут только драйверы в режиме ядра.

Запрос на прерывание подключения возвращает сведения, которые драйвер может использовать в контексте конкретного драйвера ISR. Эти сведения включают указатель на объект прерывания и указатели на подпрограммы обратного вызова, которые выделяют и освобождают параллельный порт в IRQL = DIRQL.

Примечание Корпорация Майкрософт не рекомендует использовать процедуру прерывания, предоставляемую клиентом. Использование прерываний может привести к нестабильной работе системы. По умолчанию запрос на прерывание подключения отключен. Дополнительные сведения см. в разделе Подключение подпрограммы службы прерываний к ParallelPort.
 

Основной код

IRP_MJ_INTERNAL_DEVICE_CONTROL

Входной буфер

Элемент AssociatedIrp.SystemBuffer указывает на структуру PARALLEL_INTERRUPT_SERVICE_ROUTINE , которую клиент выделяет для ввода сведений о службе прерываний. Предоставляемый системой драйвер функции для параллельных портов использует тот же буфер памяти, но приводит его к другому типу данных для вывода информации.

Длина входного буфера

Член Parameters.DeviceIoControl.InputBufferLength имеет размер структуры PARALLEL_INTERRUPT_SERVICE_ROUTINE в байтах.

Выходной буфер

Элемент AssociatedIrp.SystemBuffer указывает на структуру PARALLEL_INTERRUPT_INFORMATION, которую драйвер функции параллельного порта использует для вывода сведений о параллельных прерываниях.

Длина выходного буфера

Член Parameters.DeviceIoControl.OutputBufferLength имеет размер структуры PARALLEL_INTERRUPT_INFORMATION в байтах.

Блок состояния

Если запрос выполнен успешно, элементу Information присваивается размер структуры PARALLEL_INTERRUPT_INFORMATION в байтах. В противном случае элементу Information присваивается нулевое значение.

Элементу Status присваивается одно из универсальных значений состояния, возвращаемых внутренними запросами управления устройствами для параллельных портов, или одно из следующих значений:

STATUS_BUFFER_TOO_SMALL

Хотя бы одно из следующих утверждений верно:

Значение элемента Parameters.DeviceIoControl.InputBufferLength меньше размера структуры PARALLEL_INTERRUPT_SERVICE_ROUTINE в байтах.

Значение элемента Parameters.DeviceIoControl.OuputBufferLength меньше размера структуры PARALLEL_INTERRUPT_INFORMATION в байтах.

Требования

Требование Значение
Заголовок parallel.h (включая Parallel.h)

См. также раздел

PARALLEL_INTERRUPT_SERVICE_ROUTINE

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION