Windows - статьи


         

Код IOCTL_PAR_SET_INFORMATION применяется для сброса


Код IOCTL_PAR_SET_INFORMATION применяется для сброса драйвера.
const IOCTL_PAR_SET_INFORMATION = $160008;
type PAR_SET_INFORMATION = record Init: byte; end; PPAR_SET_INFORMATION = ^PAR_SET_INFORMATION;
var ParControl: PAR_SET_INFORMATION;
ParControl.Init := PARALLEL_INIT; DeviceIoControl(hLpt, IOCTL_PAR_SET_INFORMATION, @ParControl, sizeof(PAR_SET_INFORMATION), nil, 0, ret, lpOverlapped);
Обратите внимание на значение, которое присваивается переменной ParControl.Init. Других вариантов не существует. При таком запросе драйвер сбрасывает nSelectIn (1284 Active) в ноль, а на линию nInitialize (Address Strobe) выдает отрицательный строб. При этом сигнал nStrobe (Write) сохраняет высокий уровень. Такая последовательность чем-то похожа на цикл чтения адреса EPP, которая на практике редко используется. Поэтому по условию
  • nStrobe (конт. 1) - высокий;

  • nInitialize (конт. 16) - низкий;

  • nSelectIn (конт. 17) - низкий;

  • можно сформировать сигнал сброса устройства.
    Запрос IOCTL_SERIAL_SET_TIMEOUTS устанавливает значение таймаута, которое драйвер использует в операциях записи в режимах SPP и ECP_SW. Прочитать установленное значение можно с помощью IOCTL_SERIAL_GET_TIMEOUTS.

    Содержание  Назад  Вперед