IOCTL_INTERNAL_SELECT_DEVICE IOCTL (parallel.h)
Запрос IOCTL_INTERNAL_SELECT_DEVICE :
-
Выделяет параллельный порт
Предоставляемый системой драйвер функции для параллельных портов выделяет параллельный порт, если клиент не устанавливает флаг PAR_HAVE_PORT_KEEP_PORT в элементе CommandFlags структуры входных PARALLEL_1284_COMMAND. В противном случае драйвер функции параллельного порта не выделяет параллельный порт.
-
Выбирает параллельное устройство IEEE 1284.3 или устройство конца цепочки, подключенное к параллельному порту.
Хотя клиент может выбрать устройство конца цепочки с помощью запроса на выбор устройства, корпорация Майкрософт рекомендует использовать запрос IOCTL_INTERNAL_PARALLEL_PORT_ALLOCATE . Драйвер функции параллельных портов выбирает устройство конца цепочки перед выделением параллельного порта клиенту.
Дополнительные сведения см. в разделе Выбор и отмена выбора устройства IEEE 1284, подключенного к ParallelPort.
Основной код
IRP_MJ_INTERNAL_DEVICE_CONTROL
Входной буфер
AssociatedIrp.SystemBuffer указывает на структуру PARALLEL_1284_COMMAND, которую клиент выделяет для ввода сведений о выбранном устройстве.
Длина входного буфера
Элемент Parameters.DeviceIoControl.InputBufferLength указывает размер структуры PARALLEL_1284_COMMAND в байтах.
Выходной буфер
Нет.
Длина выходного буфера
Нет.
Блок состояния
Элемент Information имеет нулевое значение.
Элементу Status присваивается одно из универсальных значений состояния, возвращаемых внутренними запросами управления устройствами для параллельных портов, или одно из следующих значений:
STATUS_BUFFER_TOO_SMALL
Значение элемента Parameters.DeviceIoControl.InputBufferLength меньше размера структуры PARALLEL_1284_COMMAND в байтах.
STATUS_INVALID_PARAMETER
Указанное устройство не помечается внутренне как устройство конца цепочки, а значение элемента идентификатора входной структуры больше, чем количество существующих устройств цепочки.
Требования
Требование | Значение |
---|---|
Заголовок | parallel.h (включая Parallel.h) |