Bug 3116

Summary: Не загружается VXD-драйвер для Консультанта
Product: WINE@Etersoft Reporter: Глеб Кордюков <sonner>
Component: ОбщееAssignee: Денис Баранов <baraka>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P4 CC: amorozov, kondratyuk, lav
Version: 1.0.10   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 1217    

Description Глеб Кордюков 2008-12-12 19:49:30 MSK
Ошибка при запуске W23 #87
Comment 1 Глеб Кордюков 2008-12-12 19:50:50 MSK
Добавил зависимости.
Comment 2 Vitaly Lipatov 2008-12-16 16:37:05 MSK
Начиная с версии 1.0.10, не грузится драйвер consult.vxd с ошибкой
ERROR_INVALID_PARAMETER   87 (0x57) The parameter is incorrect.
Comment 3 Александр Морозов 2008-12-16 18:13:22 MSK
Проблема вызвана вот этим коммитом:
commit 7c6302b7ff5571a5119a7dea2f946e043b956156
Author: Alexandre Julliard <julliard@winehq.org>
Date:   Thu Oct 30 10:33:45 2008 +0100

    kernel32: Only try to open a VxD if opening a normal device failed.

Вызов VXD_Open теперь находится после проверки

if (creation < CREATE_NEW || creation > TRUNCATE_EXISTING)
{
    SetLastError( ERROR_INVALID_PARAMETER );
    return INVALID_HANDLE_VALUE;
}

Надо также не забывать о том, что установленный wine берёт consult.vxd.so из /usr/lib/wine, а собранный из wine/dlls/consult.vxd
Comment 4 Vitaly Lipatov 2008-12-17 15:17:19 MSK
А у нас CreateFile для открытия драйвера вызывается с параметром creation == 0
Comment 5 Александр Морозов 2009-01-20 15:34:57 MSK
В WinXP CreateFile("test.txt", 0, 0, NULL, 0, 0, NULL) возвращает ошибку ERROR_INVALID_PARAMETER, как и в Wine. Возможно, в Win98 по-другому.

Сделал хак, делающий равный нулю 5-й параметр CreateFile эквивалентным использованию OPEN_EXISTING.

Патч: kernel32: Fix eterbug #3116.
Comment 6 Глеб Кордюков 2009-01-22 12:41:13 MSK
нужно проверить.
Comment 7 Глеб Кордюков 2010-10-06 15:31:39 MSD
На 1.0.12 все работает.
Comment 8 Александр Морозов 2012-03-16 15:25:54 MSK
> Патч: kernel32: Fix eterbug #3116.
Откатил этот патч, т.к. в апстрим приняли коммит "kernel32: Make CreateFile called with creation == 0 work when opening a vxd in win9x mode."