Программа - "Магистраль". Не показывается информация в окне справки, ни дерево навигации, ни текст. Демо-версия: http://www.sigma-soft.ru/download/install.shtml?prog=ata32 Бутылка: rt/11738 Для воспроизведения следует установить "./dosdevices/p\:/Windows/sigma-soft/magistral/Setup.exe", все установочные параметры оставить по умолчанию. Затем запустить "./dosdevices/c\:/Program\ Files/Magistral/ata32.exe". При первом запуске возможно зависание, в этом случае следует нажать Ctrl-C, программа пропустит текущую выполнаемую задачу и будет запускаться дальше. При активации "Справка"->"О программе" ожидание бесконечное. При нажатии "Отмена" не вычисляется идентификационный код компьютера. В следдствие этого становится невозможной регистрация программы.
При установке программы ставится драйвер neosigma.sys, который падает при работе Магистрали с ним: при запуске через wine - на нереализованной функции ExSystemTimeToLocalTime, при запуске через ww - в wine_nt_to_unix_file_name (из-за того, что в NtCreateFile вместо имени файла передаётся какой-то мусор). То, что при запуске через wine не падает в wine_nt_to_unix_file_name, видимо, просто везение. Перед падением драйвер много раз пытается выполнить ioctl с кодом SMART_RCV_DRIVE_DATA.
Написал небольшой тестовый драйвер для SMART_RCV_DRIVE_DATA: wine-etersoft-devel/windrv/drv_4434. Модифицировал WINE так, чтобы возвращалось то же, что и в Windows, но это вроде бы ничего не изменило. Если модифицировать NtCreateFile так, чтобы на нём не происходило падения, то дальше neosigma.sys пытается получать указатели на устройства \Device\ScsiPort0, ..., \Device\ScsiPort7. В WINE эти устройства не создаются. На машине winxp есть \Device\ScsiPort0 и 1, являющиеся симлинками на \Device\Ide\IdePort0 и 1. Если создать устройство \Device\ScsiPort0, то neosigma.sys попытается выполнить для него IOCTL_SCSI_MINIPORT. После обращения к драйверу Магистраль пытается открыть "\\\\.\\Scsi\x1d:". В данном пути смущает символ \x1d. На машине winxp существуют устройства \\.\Scsi0: и \\.\Scsi1: