Нужна поддержка LPT-ключей. Ключи есть для ИБ.
Для ИБ у нас есть LPT Sentinel, а не Guardant.
Нужна поддержка всех имеющихся LPT-ключей: Guardant Fidus, Guardant Stealth II, Guardant Stealth III
Пока что неясно, откуда в Windows драйвер узнаёт о наличии LPT-ключа.
Драйвер узнаёт о наличии ключа с помощью IoRegisterPlugPlayNotification. Надо, чтобы parport.sys создавал необходимые интерфейсы.
Реализовал создание интерфейсов для параллельных портов.
Реализовал IOCTL_INTERNAL_PARALLEL_PORT_{ALLOCATE,FREE}. Добавил поддержку PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES в IoRegisterPlugPlayNotification. Реализовал KeQueryPerformanceCounter. Изменил INSTR_{in,out}port, чтобы они вызывали экспортируемые parport.sys функции для работы с адресами, относящимися к LPT.
Судя по логам драйвер работает с ключом через регистры LPT-порта, но grddem32.exe ключ по-прежнему не видит. Причина этого пока не ясна.
Внёс небольшие изменения в код в kernel32/instr.c, инициализирующий указатели на экспортируемые parport.sys функции. Отправил то, что сделано на данный момент, в wine-patches@lists.etersoft.ru.
В Guardant говорят, что реализовать поддержку LPT-ключей _очень_ сложно.
Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять.