Форум программистов, компьютерный форум, киберфорум
Программирование драйверов
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 6

Тестовый деплоймент драйвера

19.03.2016, 15:16. Показов 1457. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я только начал знакомство с системным программированием.

После прочтения этих статей:

http://www.codeproject.com/Art... l-Mode-Dri

https://msdn.microsoft.com/en-... s.85).aspx

и установки необходимого окружения я столкнулся с проблемой - я не могу задеплоить драйвер.

Код драйвера это стандартный сэмпл из Visual Studio 2015:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <ntddk.h>
#include <wdf.h>
DRIVER_INITIALIZE DriverEntry;
EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd;
 
NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT  DriverObject, _In_ PUNICODE_STRING RegistryPath)
{
    NTSTATUS status;
    WDF_DRIVER_CONFIG config;
 
    KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: DriverEntry\n"));
    WDF_DRIVER_CONFIG_INIT(&config, KmdfHelloWorldEvtDeviceAdd);
    status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, WDF_NO_HANDLE);
    return status;
}
 
NTSTATUS KmdfHelloWorldEvtDeviceAdd(_In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit)
{
    NTSTATUS status;
    WDFDEVICE hDevice;
    UNREFERENCED_PARAMETER(Driver);
 
    KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n"));
    status = WdfDeviceCreate(&DeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &hDevice);
    return status;
}
в настройка Visual Studio указано Target OS Version - Windows 7 и Target Platform - Desktop

Хост машина - Windows 10, таргет машина Windows 7

Драйвер пытаюсь установить с помощью OSRLoader'a

Зарегистрировать сервис получается, а запустить нет, сообщением - "The servcie cannot be started either because it is disabled or because it has no enabled devices associated with it".

пытался гуглить, но безуспешно.

Если кто знает в чем может быть проблема пожалуйста помогите!
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2016, 15:16
Ответы с готовыми решениями:

Деплоймент на BES 5.0.2
Народ, подключайтесь. Пролема с BES 5.0.2. Задеплоил бин. Пусть его name -- Project, а local-jndi-name -- ejb/errata/Project: ...

Деплоймент на JBoss - подскажите пожалуйста
Пытаюсь перейти на JBoss. Вопросы: - вендор дескрипторы обязательны, или только если что-то уточнить нужно? Если обязательны, то какие? ...

Деплоймент, docker. Что это и как загрузить сайт?
Сделал сайт на вордпрессе. Сейчас он находится на моем сервере. Я его должен передать клиенту. Обычно мне давли подключения к базе данных и...

9
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
19.03.2016, 16:16
Проблема в том, что если у тебя PnP-драйвер, то запускать его будет
система при подключении соответствующего устройства, а не всякие
там OSRLoader-ы и KMDManager-ы.

Это во-первых. А во-вторых, я не советую пока деплоить драйверы
из VS2012-15, так как поделие это пока глючное, работает не везде и
то и дело всплывают различные баги.

Трушный способ - WDK 7.1 плюс виртуальные машины и подключенный WinDBG.
Деплой делается с помощью .kdfiles или обмена файлами через сетевую папку
(Shared Folders в VMware, например), debug-транспорт через COM-порт в пайп.
Да, может быть оно выглядит немного старомодно, зато никаких проблем и
не нужно даже Visual Studio тащить...
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 6
19.03.2016, 19:43  [ТС]
Убежденный, о, большое спасибо за ответ! не про все я понял, но надеюсь на гугл) про VS согласен, до этого пробовал деплоить с помощью 2013 по msdn-руководствам и это сплошные ошибки и боль.

идея использовать OSRLoader появилась после прочтения статьи http://blogs.microsoft.co.il/s... ld-driver/. я сделал все как там сказано и это сработало, это было видно в DebugView.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
19.03.2016, 20:13
Цитата Сообщение от daniil_a Посмотреть сообщение
не про все я понял, но надеюсь на гугл)
Если что непонятно - спрашивай. Cyberforum - тоже гугл, только маленький

Цитата Сообщение от daniil_a Посмотреть сообщение
идея использовать OSRLoader появилась после прочтения статьи
Для не-PnP драйверов проще sc create/sc delete/net start/net stop.
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 6
19.03.2016, 20:22  [ТС]
ок)
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 6
12.08.2016, 11:18  [ТС]
Прочитал в этой статье https://blogs.msdn.microsoft.c... ick-start/ что можно деплоить драйвера с помощью devcon.exe. Хотелось бы спросить совета хороший ли это способ, плюсы, минусы?
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
12.08.2016, 11:25
Универсального способа, который был бы пригоден и прост в 100% ситуациях, не существует.
Для одних драйверов хорош devcon, для других - SetupCopyOEMInf, для третьих - CreateService.
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 6
12.08.2016, 17:27  [ТС]
Спасибо)

Добавлено через 4 часа 14 минут
А можете посоветовать ресурс или книгу о том что из себя представляет процесс деплоймента драйвера. Какие куда записи вносятся (например в реестр или подобные структуры), куда помещаются исполняемые файлы. Мб я не там ищу, но пока ищу безуспешно. Например нашел инфу про devcon.exe, а у меня при установке в консоле ошибка "Devcon.exe failed", а я даже не могу предположить из-за чего она могла быть так как не представляю процесс установки драйвера.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
12.08.2016, 18:34
Цитата Сообщение от daniil_a Посмотреть сообщение
А можете посоветовать ресурс или книгу о том что из себя представляет процесс деплоймента драйвера.
У Уолтера Они в его книге довольно неплохо написано, что происходит
при установке драйвера. А вот знать, куда какие записи в реестре вносятся,
обычно не нужно. Это детали реализации, которые могут меняться от
версии к версии, и знать их "простым смертным" не полагается.

Цитата Сообщение от daniil_a Посмотреть сообщение
у меня при установке в консоле ошибка "Devcon.exe failed", а я даже не могу предположить из-за чего она могла быть так как не представляю процесс установки драйвера.
В этом минус devcon. Если бы ты писал свою систему установки, то обеспечил
ее подробной системой логов и знал бы сразу, из-за чего ошибка.
А так можно в логах системы посмотреть (setupapi.log и другие .log-файлы в папке Windows).
0
0 / 0 / 0
Регистрация: 19.03.2016
Сообщений: 6
13.08.2016, 03:27  [ТС]
Понял, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.08.2016, 03:27
Помогаю со студенческими работами здесь

Тестовый квест
Если не сложно, киньте пример текстового квеста на php. Или просто код, в котором с клавиатуры вводится какой-либо текст и проверяется...

тестовый бп с плавающими U и I
добрый вечер еще раз предисловие: на днях обнаружил у себя бп от старого компутера, а так как иногда делаю какие нить фенички из...

Тестовый сервер
Здравствуйте подскажите &quot;тестовый сервер&quot; для обучения в создании сайта Dreamweaver cs3 Как настроить соединение. Если что то написал не...

Тестовый пример C++
Как правильно составить тестовый пример для программы, написанной на C++? Что он должен включать в себя и как выглядеть?

тестовый пример!!
здраствуйте форумчани!! помогите написать тестовый пример класса Triangle //triangle.h class Triangle { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru