Summary: | Не работает ключ защиты HASP конфигурации 1С Континент-страхование | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Александр Пликус <pav> |
Component: | Ключи защиты ; Системы защиты ; Файл лицензии | Assignee: | Константин Кондратюк <kondratyuk> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | P1 | CC: | amorozov, baraka, ivan, kondratyuk, lav, night |
Version: | 1.0.9 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | 9051 | Связано с: | |
Дата напоминания: | |||
Bug Depends on: | 1879, 3194 | ||
Bug Blocks: | 468, 1217, 3723 |
Description
Александр Пликус
2008-12-04 12:28:16 MSK
Так же ошибка при регистрации regsvr32 Kont.dll Проблема в том, что DLL обращается к драйверам локального ключа, несмотря на то, что используется сетевой ключ. Проверили на Windows удалением драйверов. Ждём реализации загрузки драйверов. Бутылка rt/9051, конфигурация лежит в c:\Conf там же и dll'ка Ключ сетевой, сейчас на lin-test. ------- Комментарий #2 от Александр Морозов 2008-12-30 14:07:03 При выполнении "regsvr32 Kont.dll" при эмуляции Windows XP делаются попытки открыть \\.\NTICE1340, \\.\NTICE, \\.\FEnteDev, при эмуляции Windows 98 - \\.\SIWVID, \\.\HARDLOCK.VXD *** Bug 3176 has been marked as a duplicate of this bug. *** Если загружен драйвер, создающий устройство \\.\FEnteDev, то winexp regsvr32 Kont.dll выводит ошибку "Error 7: HASP HL Key not found" вместо "Error 1009: Cannot open HASP HL drivers" и в логе WINEDEBUG=+file появляется nethasp.ini Добавил драйвер, создающий устройство \\.\FEnteDev, в cvs-репозиторий wine-etersoft. При использовании упомянутого выше драйвера и наличии ключа в lin-test DLL регистрируется успешно: <wine@cellar bottle rt/9051>$ winexp regsvr32 Kont.dll Running in NT environment... fixme:ntoskrnl:IoRegisterDeviceInterface 0x111938 {608225bc-766b-40a8-b8a4-d96bc999ae35} <null> 0x111b38 fixme:ntoskrnl:IoRegisterDeviceInterface 0x111988 {10d60713-fb4c-4bb1-941b-44b79d25af8b} <null> 0x111404 fixme:ntoskrnl:IoSetDeviceInterfaceState (null) 1 Successfully registered DLL Kont.dll Надо протестировать с новой закрытой частью. Сборка 40/17 Всё работает. <wine@cellar bottle rt/9051>$ winexp regsvr32 Kont.dll Running in NT environment... fixme:ntoskrnl:IoRegisterDeviceInterface 0x111938 {608225bc-766b-40a8-b8a4-d96bc999ae35} <null> 0x111b38 fixme:ntoskrnl:IoRegisterDeviceInterface 0x111988 {10d60713-fb4c-4bb1-941b-44b79d25af8b} <null> 0x111404 fixme:ntoskrnl:IoSetDeviceInterfaceState (null) 1 Successfully registered DLL Kont.dll Но при запуске по-прежнему "Не найден ключ защиты Континент:Страхование!!!" На lin-test ключ стоит и работает: HASP Net at host (see NETHASP.INI) (press Ctrl-C to break): ..... -- active logins: 1 -- max logins: 5 -- key type: HASP4 Net 5 licenses -- activations: 65535 [ 4] 1C:Accountancy v7.7 (simple and network) В бутылке rt/9051 в nethasp.ini прописан lin-test (и пингуется) Но всё равно пишет, что ключа нет. Kont.dll регистрируется успешно. Но при попытке запустить конфигурацию вылетает та же ошибка что и была: {МодульПриложения(617)}: Ошибка при вызове конструктора (СОМОбъект): Unknown error 0x800401F3 В этом вся проблема. В исходниках в файле winerror.c нашел такую строчку : #define CO_E_CLASSSTRING _HRESULT_TYPEDEF_(0x800401F3L) Надо разбираться что и как. В этих местах видимо происходит ошибка: trace:reg:NtOpenKey (0x20c,L"WbemScripting.SWbemLocator\\CLSID",f003f,0x32e6c0) trace:reg:NtOpenKey <- (nil) ... trace:reg:NtOpenKey (0x20c,L"winmgmts\\CLSID",f003f,0x32d9f4) trace:reg:NtOpenKey <- (nil) Ошибку по прежнему можно увидеть в бутылке: rt/9051 ПРоверил еще раз. Дело не в ключе. 1.0.10 eter11/eter7 Повышаю приоритет. Нужно сделать. Поведение поменялось, когда, пробуя подставить виндовые библиотеки, зарегистрировал wbemdisp.dll - необходимый ключ хранится в ней. Теперь - ошибка: err:ole:apartment_getclassobject DllGetClassObject returned error 0x80004002 err:ole:create_server class {172bddf8-ceea-11d1-8b05-00600806d9b6} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {172bddf8-ceea-11d1-8b05-00600806d9b6} could be created for context 0x15 Оболочка 1С сообщает о вощникшей ошибке и предлагает закрыть программу. (In reply to comment #16) Предлагаю дальнейшее обсуждение по WBEM вести в # 3707. Добавили в wine библиотеку wbemdisp. Пользы это никакой не принесло. В библеотеке сделаны ISWbemLocator и ISWbemServices. Ещё запрашивается IConnectionPointContainer и несколько других интерфейсов. На данный момент падает в модуле 1С после обращения к IClassFactory_QueryInterface с riid, равным NULL (!) Так не бывает, на этом идеи пока закончились... Добавляемый код выложу куда-нибудь отдельно. Коммитить его на данном этапе - пустое занятие, dll не работоспособна. Да и мусорка в коде функций та ещё... Решаем wbem в другой баге. После реализации wbemdisp.dll нужно проверить. Нет оснований считать, что ключ защиты не работает. Проблема загрузки конфигурации упирается в другие методы защиты конфигурации. |