zubr
Гость
|
|
« : 30-03-2010 09:47 » |
|
Можно ли инсталлировать 64-битный драйвер (OpenSCManager, CreateService, StartService) из 32-битного приложения?
|
|
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #1 : 30-03-2010 11:21 » |
|
А почему бы и нет
|
|
|
Записан
|
|
|
|
Ochkarik
|
|
« Ответ #2 : 30-03-2010 12:39 » |
|
только не знаю как там с подписью драйвера... требуется ли обязательно или нет? вопрос)
|
|
|
Записан
|
RTFM уже хоть раз наконец! :[ ну или хотя бы STFW...
|
|
|
zubr
Гость
|
|
« Ответ #3 : 30-03-2010 14:35 » |
|
Хмм.. Странно, почему то у меня в 32-битной винде соответственно 32-битный драйвер ставится без проблем, а тем же приложением в 64-битной винде соответственно 64-битный драйвер не ставится - StartService выдает ошибку.
|
|
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #4 : 30-03-2010 15:20 » |
|
Ну черт его знает на самом деле. Может где-то действительно флаги не те получаются или что еще. Я бы взял отладчик и посмотрел бы что программа передает в АПИ (OpenSCManager, CreateService, StartService). Но это уже скорее конечный этап. Изначально рекомендую попробовать установить через SCManager вручную. Консоль -> комманда "sc". А там уже можно будет делать какие-то выводы. Отпишись, что получилось.
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #5 : 31-03-2010 06:46 » |
|
Как выяснилось - проблема в самом драйвере, только пока не знаю какая. Код ошибки на GetLastError - 1275 This driver has been blocked from loading. Драйвер собирал в DDK XP под 64 бита. Есть ли какие нибудь особенности для 64-битных драйверов (кроме типов данных), может надо какой нибудь макрос в заголовок ставить, чтобы система понимала, что это 64-битный драйвер? Может ли быть проблема в том, что драйвер скомпилирован в DDK XP, а запустить его пытаюсь в Win7 x64?
|
|
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #6 : 31-03-2010 07:07 » |
|
Однозначно понять это можно, собрав его под Win7. Но тут, кстати,может иметь место, то о чем говорил Ochkarik, т.е. в 7ке возможно нужна подпись для драйвера. Странно правда, что система не выдает никаких сообщений по этому поводу. Ну собственно, подпись я не делал ни разу, про это наверное Ochkarik расскажет.
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #7 : 31-03-2010 09:31 » |
|
С подписью понятно. Чтобы уйти от подписи можно загрузить систему через F8, выбрав пункт загрузочного меню - загружать драйвера без проверки подписи, что я и делал. Также сейчас в инете появилась куча утилит, которые автоматизируют данную процедуру (отключение подписи).
|
|
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #8 : 31-03-2010 09:44 » |
|
Ну тогда у меня лично 2 варианта.
1. Собрать драйвер под 7ку и посмотреть, будет ли тоже самое. Если будет тоже самое, то вариант2. 2. Собрать chk версию драйвера, предварительно поставив DbgBreakPoint в DriverEntry, и смотреть отладчиком, что там происходит
|
|
|
Записан
|
|
|
|
|
zubr
Гость
|
|
« Ответ #10 : 01-04-2010 06:22 » |
|
Да, сборка под 7 помогла. Но теперь стоит вопрос - будет ли оно работать , к примеру в WinXp x64 и не придется ли под весь зоопарк 64-битных Win-систем городить свой драйвер.
|
|
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #11 : 01-04-2010 09:52 » |
|
Моё личное мнение - раз есть варианты сборки под разные ОСи, значит надо собирать под конкретную ОС, а не делать драйвер один для всего. Но это если уж совсем строго подходить. В противном случае, кого потом винить?
Что же касается реальности, то ты просто попробуй и узнаешь, и нам заодно расскажешь, работает или нет.
|
|
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #12 : 01-04-2010 10:11 » |
|
Немного в другую степь повесть.
Мне вот дали задание драйвер написать, так чтоб он был совместим от 2K до висты (чего-то про 7ку постеснялись или просто забыли упомянуть). От XP до висты проблем явных пока не знаю, если не считать мелочи типа проверок на отключенные APC. Но вот с 2K конечно бред полнейший. Тут уже реально несовместимость на уровне АПИ, это во-первых, и нужно динамически выбирать какие АПИ юзать. А во-вторых несовместимость на уровне внутрисистемных процессов, т.е. в 2K приходится пользоваться Worker Thread'ом там где в XP и выше это совсем ни к чему. Я уже опускаю вопрос о том, зачем вообще поддерживать 2K. Где эти 3 человека во всём мире которые просто забыли снести ее с компа, пылящегося в чулане? И даже если ее поддерживать, ну почему бы не сделать для нее отдельный драйвер. Зачем всё сваливать в кучу. Ну к сожалению, я не сам себе задачи ставлю.
ЗЫ пока что решил просто проигнорировать 2K, но в дальнейшем видимо придется реализовывать
|
|
|
Записан
|
|
|
|
zubr
Гость
|
|
« Ответ #13 : 01-04-2010 10:21 » |
|
resource, рано ты 2K списываешь, есть еще динозавры, которые Win98 юзают...
|
|
« Последнее редактирование: 01-04-2010 10:26 от Алексей1153++ »
|
Записан
|
|
|
|
resource
Молодой специалист
Offline
Пол:
|
|
« Ответ #14 : 01-04-2010 10:25 » |
|
Чтоб им всем пусто было Мучайся теперь из-за них
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #15 : 01-04-2010 10:26 » |
|
resource, рано ты 2K списываешь, есть еще динозавры, которые Win98 юзают...
а делают это из-за не менее доисторического железа (ps случайно залез в правку сообщения Зубра)
|
|
|
Записан
|
|
|
|
|