IOCTL_PAR_IS_PORT_FREE IOCTL (ntddpar.h)
Запрос IOCTL_PAR_IS_PORT_FREE определяет, является ли родительский порт родительского устройства бесплатным в то время, когда драйвер шины, предоставленный системой, для параллельных портов обрабатывает запрос. Этот запрос предоставляется в основном для клиентов в пользовательском режиме.
Этот запрос обрабатывается сразу после вызова диспетчера операций ввода-вывода параллельной подпрограммы диспетчера шины портов для запросов управления устройствами. Обратите внимание, что состояние параллельного порта может измениться между временем, когда драйвер параллельной шины портов завершает запрос и время, которое элемент управления возвращается клиенту пользовательского режима.
Клиенты в режиме ядра могут напрямую определить, является ли параллельный порт бесплатным, вызвав системный PPARALLEL_TRY_ALLOCATE_ROUTINE обратный вызов.
Дополнительные сведения см. в разделе блокировка и разблокировка ParallelPort для использования параллельным устройством.
Основной код
Входной буфер
Никакой.
Длина входного буфера
Никакой.
Выходной буфер
Элемент AssociatedIrp.SystemBuffer указывает на буфер BOOLEAN, который клиент выделяет для вывода состояния параллельного порта. Если параллельный порт свободен, драйвер функции, предоставленный системой для параллельных портов, устанавливает буфер для TRUE, в противном случае буфер задает значение FALSE.
Длина выходного буфера
Длина boOLEAN.
Блок состояния
Элемент Information имеет размер в байтах boOLEAN.
Элемент состояния имеет одно из универсальных значений состояния, возвращаемых запросами управления устройствами для параллельных устройств или следующим значением:
STATUS_BUFFER_TOO_SMALL
Элемент Parameters.DeviceIoControl.OutputBufferLength меньше размера в байтах boOLEAN.
Требования
Требование | Ценность |
---|---|
заголовка | ntddpar.h (include Ntddpar.h) |
См. также
IOCTL_INTERNAL_PARALLEL_PORT_FREE