Но драйвер не стартует и ошибка после попытки запуска — ERROR_FILE_NOT_FOUND. Путь к файлу проверял — файл драйвера на месте. Подскажите, в чем проблема?
Здравствуйте, Glоbus, Вы писали:
G>Но драйвер не стартует и ошибка после попытки запуска — ERROR_FILE_NOT_FOUND. Путь к файлу проверял — файл драйвера на месте. Подскажите, в чем проблема?
Здравствуйте, serg_fork, Вы писали:
_>Здравствуйте, Glоbus, Вы писали:
G>>Но драйвер не стартует и ошибка после попытки запуска — ERROR_FILE_NOT_FOUND. Путь к файлу проверял — файл драйвера на месте. Подскажите, в чем проблема?
_>Как задан driverExec ?
driverExec задается в виде:
#define DRIVERPATH _T("C:\\Windows\\system32\\drivers\\Drv000.sys")
....
//где-то в коде
InstallDriver( scm, DRIVERNAME, DRIVERPATH ); //внутри этой функции непосредственно вызывается CreateService(...)
В реестре путь имеет вид при этом:
ImagePath = System32\Drivers\Drv000.sys
Пробовал устанавливать и из других мест (например путь был D:\\Projects\\Drv000\\Debug\\Drv000.sys, в реестре — '\??\D:\Projects\Drv000\Debug\Drv000.sys') — результат тот же.
G>#define DRIVERPATH _T("C:\\Windows\\system32\\drivers\\Drv000.sys")
G>....
G>//где-то в коде
G>InstallDriver( scm, DRIVERNAME, DRIVERPATH ); //внутри этой функции непосредственно вызывается CreateService(...)
G>
G>>#define DRIVERPATH _T("C:\\Windows\\system32\\drivers\\Drv000.sys")
G>>....
G>>//где-то в коде
G>>InstallDriver( scm, DRIVERNAME, DRIVERPATH ); //внутри этой функции непосредственно вызывается CreateService(...)
G>>
Здравствуйте, ABar, Вы писали:
AB>Здравствуйте, ABar, Вы писали:
AB>А запуск с консоли sc start <имя службы драйвера> проходит нормально или тоже не стартует ?
Подозреваю, что не стартует.
Попробую немного потелепатить и пофантазировать Есть ли в DriverEntry код, подобный этому?
status = SomeDirectoryFileOperation(...) // тут отгребаем ERROR_FILE_NOT_FOUNDif !NT_SUCCESS(status) return status; //ERROR_FILE_NOT_FOUND
Здравствуйте, serg_fork, Вы писали:
_>Здравствуйте, ABar, Вы писали:
Доброго вечерочка
Отвечу по порядкуЖ
AB>>Здравствуйте, ABar, Вы писали:
AB>>А запуск с консоли sc start <имя службы драйвера> проходит нормально или тоже не стартует ?
Не стартует, пишет: [SC] StartService: OpenService FAILED 2:
_>Подозреваю, что не стартует.
_>Попробую немного потелепатить и пофантазировать Есть ли в DriverEntry код, подобный этому?
_>
Не совсем понял, что есть SomeDirectoryFileOperation(), но никаких операций с файлами в DriverEntry нету.
Вообще код DriverEntry такой (взял тестовый пример из Солдатова чтоб просто проверить в чем косяк):
G>Не стартует, пишет: [SC] StartService: OpenService FAILED 2:
Дык фэйлится OpenService? Значит он нифига не зареган. По кр мере под тем именем что открыть пытаетесь.
Здравствуйте, Аноним, Вы писали:
G>>Не стартует, пишет: [SC] StartService: OpenService FAILED 2: А>Дык фэйлится OpenService? Значит он нифига не зареган. По кр мере под тем именем что открыть пытаетесь.
Сорри, опечатка. Фейлится именно StartService (строчка "OpenService" в буфере была — случайно вставил).
G>Но драйвер не стартует и ошибка после попытки запуска — ERROR_FILE_NOT_FOUND. Путь к файлу проверял — файл драйвера на месте. Подскажите, в чем проблема?
Еще вопрос: а не играет ли рояль то, что сборка дебажная (хотя я Депендсом просмотрел — вроде нет никаких левых длл-ин на которые бы бинарник был завязан и которые бы не находились).
Здравствуйте, Glоbus,
G>Еще вопрос: а не играет ли рояль то, что сборка дебажная (хотя я Депендсом просмотрел — вроде нет никаких левых длл-ин на которые бы бинарник был завязан и которые бы не находились).
--
Вообще-то играет. Вряд ли это Ваш случай, но если используется DLL co-installer'a и она написана, например, на основе MFC, то потребуются соответствующие библиотеки, если их не будет — драйвер не загрузиться.
Попробуйте перед запуском драйвера "руками" прописать ImagePath как "system32\Drivers\_your_driver_file_name_.sys" и скопировать файл драйвера в эту директорию.
Попробуйте включить setupapi.log и проанализируйте его.
Здравствуйте, Геннадий Майко, Вы писали:
ГМ>Здравствуйте, Glоbus,
G>>Еще вопрос: а не играет ли рояль то, что сборка дебажная (хотя я Депендсом просмотрел — вроде нет никаких левых длл-ин на которые бы бинарник был завязан и которые бы не находились). ГМ>-- ГМ>Вообще-то играет. Вряд ли это Ваш случай, но если используется DLL co-installer'a и она написана, например, на основе MFC, то потребуются соответствующие библиотеки, если их не будет — драйвер не загрузиться.
Нет, никакие длл-ны не используются. Драйвер простой как угол дома, сделан для тестинга — его задача только загрузиться, запуститься и ответить на пару простейших команд.
ГМ>Попробуйте перед запуском драйвера "руками" прописать ImagePath как "system32\Drivers\_your_driver_file_name_.sys" и скопировать файл драйвера в эту директорию.
Копировал и туда — тот же результат.
ГМ>Попробуйте включить setupapi.log и проанализируйте его.
Спасибо, щас попробую.
ГМ>А Ваш драйвер случайно не PNP?
Нет, самый что нинаесть простой драйвер.
ГМ>C уважением, ГМ>Геннадий Майко.
Можете отловить проблему с помошью filemon'а. Загружаете и включаете его перед попыткой запуска драйвера и ищете в его логах вашу ошибку. По-крайней мере будете знать, какой файл пытаются открыть. Это если дело в файле, а не в каком-нибудь ключе реестра.