|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
Свой драйвер COM порта для USB устройства19.12.2016, 19:22. Показов 26580. Ответов 128
Метки нет (Все метки)
Всем здрасте...
Хотелось бы услышать мнения профессионалов. В частности Убежденного видел много сообщений от него..Итак. Есть устройство usb, в данный момент используется виндовый usbser, но говорят работает плохо. Мне поставили задачу(я на первом своём испытательном сроке) написать драйвер для данного устройства. Драйвер должен эмулировать COM порт(основной приоритет), а также возможно как сетевое устройство или сырой обмен, можно все вместе. Знания драйверов у меня на уровне хелловорлд. Английский очень плохо. Читаю Уолтер Они, Комиссарова, Агуров, USB in Nutshell. Вопрос первый - реально ли с моими знаниями хорошо сделать это за 2 месяца? Вопрос второй - направьте меня на путь истинный)) дельные советы дайте
0
|
|
| 19.12.2016, 19:22 | |
|
Ответы с готовыми решениями:
128
Возможно ли создать драйвер для usb-устройства на шарпе? Драйвер USB устройства |
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 28.03.2017, 13:28 [ТС] | |
|
0
|
|
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 29.03.2017, 14:08 [ТС] | |
|
Я тут по вашему совету проверяю inf файл с помощью Inf2Cat.
Выдаёт это: Кликните здесь для просмотра всего текста
Signability test failed.
Errors: No installation INF found in the root path of the driver. For the driver to be digitally signed, and for it to install properly the installation inf must be in the root of each driver path you have provided. If you have separate folders with different driver packages for different languages, operating systems or device categories then specify each driver set as a separate driver. Each driver package must be selected separately and must contain an installation INF. Это надо подписать пакет с драйвером?
0
|
|
|
Ушел с форума
|
|
| 29.03.2017, 14:11 | |
|
0
|
|
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 29.03.2017, 14:14 [ТС] | |
|
Вот полный вывод, вроде нашел...
Кликните здесь для просмотра всего текста
C:\Users\mrx\Desktop>C:\WinDDK\7600.1638 5.1\bin\selfsign\Inf2Cat.exe /verbose /driver:C:\Users\mrx\Desktop\disk1 /OS:7_X64
Processing directory (C:\Users\mrx\Desktop\disk1\) file (submission-8.cab) Processing cabinet (submission-8.cab) file (func.sys) Processing cabinet (submission-8.cab) file (usb_cdc.inf) Finished parsing INFs Finished processing INFs Testing driver package... Testing driver package... Testing driver package... Testing driver package... Testing driver package... Testing driver package... Signability test failed. Errors: No installation INF found in the root path of the driver. For the driver to be digitally signed, and for it to install properly the installation inf must be in the root of each driver path you have provided. If you have separate folders with different driver packages for different languages, operating systems or device categories then specify each driver set as a separate driver. Each driver package must be selected separately and must contain an installation INF. Warnings: None
0
|
|
|
Ушел с форума
|
|
| 29.03.2017, 14:19 | |
|
1
|
|
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
||
| 30.03.2017, 12:57 [ТС] | ||
|
Ни как не соображу, ругается на это, что ему не хватает
[SourceDisksNames] [SourceDisksFiles] Кликните здесь для просмотра всего текста
Errors:
22.9.1: func.sys in [drivercopyfiles] of \usb_cdc.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf. 22.9.1: func.sys in [drivercopyfiles.ntamd64] of \usb_cdc.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf. Добавлено через 12 минут О вот это помогло: http://stackoverflow.com/quest... 9-10-error Добавлено через 21 час 29 минут Что бы пройти проверку целостности кода в Driver Verifier необходимо соответствовать эти требованиям, я правильно понимаю?
0
|
||
|
Ушел с форума
|
|||
| 30.03.2017, 13:05 | |||
|
Больше ни для чего.
1
|
|||
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 30.03.2017, 16:14 [ТС] | |
|
Что то не дает эффекта dumpbin показывает 80
!IF "$(DDK_TARGET_OS)"=="WinXP" DRIVER_ALIGNMENT=4096 !ELSE LINKER_FLAGS = $(LINKER_FLAGS) /ALIGN:4096 !ENDIF
0
|
|
|
Ушел с форума
|
||
| 30.03.2017, 16:22 | ||
|
Какая у тебя версия WDK? Куда ты вставлял эти строчки? Файл sources? Тогда покажи его полностью. Какой выбирал Build Environment?
0
|
||
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 30.03.2017, 16:27 [ТС] | |
|
Версия WDK 7.1
Windows 7 x64 Checked Build Environment Файл sourses Кликните здесь для просмотра всего текста
TARGETNAME=func
TARGETTYPE=DRIVER DRIVERTYPE=WDM TARGETPATH=obj !IF "$(DDK_TARGET_OS)"=="WinXP" DRIVER_ALIGNMENT=4096 !ELSE LINKER_FLAGS = $(LINKER_FLAGS) /ALIGN:4096 !ENDIF TARGETLIBS=$(DDK_LIB_PATH)\usbd.lib USE_MAPSYM=1 #C_DEFINES=-DUSE_SMARTNIC=1 #C_DEFINES=-DDBG=1 -DDEBUG=1 MSC_WARNING_LEVEL = /W4 /WX SOURCES=init.c \ pnp.c \ driver.c \ dbg.c \ ioctl.c \ device.c \ read.c \ write.c \ pwr.c И если можно есть ссылка как с этим файлом правильно работать?
0
|
|
|
Ушел с форума
|
|||
| 30.03.2017, 16:31 | |||
|
выравнивание секций 80 байт? Не верю! Там же по дефолту стоит 4096. Скорее всего, ты или драйвер не пересобрал, или старый .sys не удалил, или смотришь не в той папке.
0
|
|||
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 30.03.2017, 16:39 [ТС] | |
|
Да я несколько раз удалял папку со сборкой и снова смотрел, да и папка одна с драйвером.
80 section alignment 80 file alignment
1
|
|
|
Ушел с форума
|
|
| 30.03.2017, 17:05 | |
|
Откуда берется 80? Компоновщик для 64-битных сборок ставит 4096 по дефолту.
В коде выше тоже ставится 4096. 80 там просто не может быть. Ну никак ![]() Может, покажешь сам .sys-файл? Никогда не видел 64-битный sys с выравниванием 80 байт...
0
|
|
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 31.03.2017, 08:19 [ТС] | |
|
Вот sys
1
|
|
|
Ушел с форума
|
||||||
| 31.03.2017, 10:21 | ||||||
|
Спасибо, VD, помог найти еще один мелкий, но любопытный баг в WDK:
сборки драйвера не требуется (и портит настройки выравнивания).
1
|
||||||
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 31.03.2017, 14:11 [ТС] | |
|
При обращении к DispatchCreate в которой я оставил только успешное завершение запроса, bsod.
Выравнивание в норме, executable+writable только у INIT секции, параметры в функции ExAllocatePoolWithTag заменил везде. И дамп не генерится почему то, ни малый не полный, может из за того что Windows10 не активирована? На другой было все нормально с дампом при тех же настройках(Полный дамп, авто размер файла подкачки)
0
|
|
|
Ушел с форума
|
|||
| 31.03.2017, 16:03 | |||
|
Показывай стек падения и т.д. настроить снятие полного дампа. Плюс поставить нормальный размер файла подкачки (>= размеру ОЗУ, либо на выбор системы). Должно быть место на диске еще. Кстати, дамп после падения пишется сначала в файл подкачки, а уже потом, когда система снова загружается, перемещается из него в "обычный" файл. Это надо учитывать (например, если сразу после BSOD-а загрузиться с загрузочного диска или с livecd, то файла дампа еще не будет). Связи с активацией Windows никакой нет, насколько я знаю.
0
|
|||
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 31.03.2017, 16:45 [ТС] | |
|
Ничего не понимаю
Arg1: 0000000000002004, Code Integrity Issue: The image contains a section that is not page aligned. Вроде как с не выровненными секциями не загрузится? Но он загружается и падает на DispatchCreate :/ Кликните здесь для просмотра всего текста
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [E:\_Work\MEMORY.DMP] Kernel Bitmap Dump File: Full address space is available Symbol search path is: srv* Executable search path is: Windows 10 Kernel Version 14393 MP (2 procs) Free x64 Product: WinNt, suite: TerminalServer SingleUserTS Built by: 14393.729.amd64fre.rs1_release_inmarket_ rim.170123-1753 Machine Name: Kernel base = 0xfffff801`5a408000 PsLoadedModuleList = 0xfffff801`5a707000 Debug session time: Wed Mar 22 08:25:24.288 2017 (UTC + 3:00) System Uptime: 0 days 0:03:38.658 Loading Kernel Symbols ........................................ ....................... .................................... Press ctrl-c (cdb, kd, ntsd) or ctrl-break (windbg) to abort symbol loads that take too long. Run !sym noisy before .reload to track down problems loading symbols. ............................ ........................ Loading User Symbols Loading unloaded module list ...... **************************************** *************************************** * * * Bugcheck Analysis * * * **************************************** *************************************** Use !analyze -v to get detailed debugging information. BugCheck C4, {2004, ffffd68cdb858e98, fffff807878601e8, ffffe681a579f0f8} CompressedPageDataReader warning: failed to get _SM_PAGE_KEY symbol. CompressedPageDataReader warning: failed to get _SM_PAGE_KEY symbol. CompressedPageDataReader warning: failed to get _SM_PAGE_KEY symbol. CompressedPageDataReader warning: failed to get _SM_PAGE_KEY symbol. CompressedPageDataReader warning: failed to get _SM_PAGE_KEY symbol. CompressedPageDataReader warning: failed to get _SM_PAGE_KEY symbol. Probably caused by : ntkrnlmp.exe ( nt!VerifierBugCheckIfAppropriate+48 ) Followup: MachineOwner --------- 0: kd> !analyze -v **************************************** *************************************** * * * Bugcheck Analysis * * * **************************************** *************************************** DRIVER_VERIFIER_DETECTED_VIOLATION (c4) A device driver attempting to corrupt the system has been caught. This is because the driver was specified in the registry as being suspect (by the administrator) and the kernel has enabled substantial checking of this driver. If the driver attempts to corrupt the system, bugchecks 0xC4, 0xC1 and 0xA will be among the most commonly seen crashes. Arguments: Arg1: 0000000000002004, Code Integrity Issue: The image contains a section that is not page aligned. Arg2: ffffd68cdb858e98, The image file name (Unicode string). Arg3: fffff807878601e8, The address of the section header. Arg4: ffffe681a579f0f8, The section name (UTF-8 encoded string). Debugging Details: ------------------ DUMP_CLASS: 1 DUMP_QUALIFIER: 402 BUILD_VERSION_STRING: 14393.729.amd64fre.rs1_release_inmarket_ rim.170123-1753 SYSTEM_MANUFACTURER: innotek GmbH VIRTUAL_MACHINE: VirtualBox SYSTEM_PRODUCT_NAME: VirtualBox SYSTEM_VERSION: 1.2 BIOS_VENDOR: innotek GmbH BIOS_VERSION: VirtualBox BIOS_DATE: 12/01/2006 BASEBOARD_MANUFACTURER: Oracle Corporation BASEBOARD_PRODUCT: VirtualBox BASEBOARD_VERSION: 1.2 DUMP_TYPE: 0 BUGCHECK_P1: 2004 BUGCHECK_P2: ffffd68cdb858e98 BUGCHECK_P3: fffff807878601e8 BUGCHECK_P4: ffffe681a579f0f8 BUGCHECK_STR: 0xc4_2004 CPU_COUNT: 2 CPU_MHZ: c25 CPU_VENDOR: GenuineIntel CPU_FAMILY: 6 CPU_MODEL: 2a CPU_STEPPING: 7 CPU_MICROCODE: 6,2a,7,0 (F,M,S,R) SIG: 0'00000000 (cache) 0'00000000 (init) DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT PROCESS_NAME: System CURRENT_IRQL: 0 ANALYSIS_SESSION_HOST: DESKTOP-NOPN95Q ANALYSIS_SESSION_TIME: 03-31-2017 16:38:39.0704 ANALYSIS_VERSION: 10.0.14321.1024 amd64fre LOCK_ADDRESS: fffff8015a71f820 -- (!locks fffff8015a71f820) Resource @ nt!PiEngineLock (0xfffff8015a71f820) Exclusively owned Contention Count = 4 Threads: ffffd68cdaf26040-01<*> 1 total locks, 1 locks currently held PNP_TRIAGE: Lock address : 0xfffff8015a71f820 Thread Count : 1 Thread address: 0xffffd68cdaf26040 Thread wait : 0x36aa LAST_CONTROL_TRANSFER: from fffff8015ab0d330 to fffff8015a5567b0 STACK_TEXT: ffffe681`a579f028 fffff801`5ab0d330 : 00000000`000000c4 00000000`00002004 ffffd68c`db858e98 fffff807`878601e8 : nt!KeBugCheckEx ffffe681`a579f030 fffff801`5a622ac3 : fffff801`5aaff5a0 fffff801`5ab05452 fffff801`5aaff8a0 00000000`00000003 : nt!VerifierBugCheckIfAppropriate+0x48 ffffe681`a579f070 fffff801`5ab04faf : 00000000`00000000 ffffe681`a579f110 fffff807`878601e8 ffff0000`00440032 : nt!VfReportIssueWithOptions+0x103 ffffe681`a579f0c0 fffff801`5ab17438 : ffffd68c`db858e40 ffffd68c`db858e40 00000000`00000001 ffffd68c`d9e1a260 : nt!VfCheckImageCompliance+0x297 ffffe681`a579f140 fffff801`5ab01475 : ffffd68c`db858e40 00000000`00000000 ffffd68c`dcc7c100 ffffd68c`db858e00 : nt!VfSuspectDriversLoadCallback+0x324 ffffe681`a579f180 fffff801`5a90daee : fffff807`87860110 ffffe681`a579f2c0 ffffd68c`dcc7c1b0 00000000`00000000 : nt! ?? ::JKADOLAD::`string'+0x1f5 ffffe681`a579f1c0 fffff801`5a8b6a6d : ffffe681`a579f3b8 00000000`00000000 00000000`00000000 ffffe681`00000000 : nt!MmLoadSystemImage+0x36a ffffe681`a579f360 fffff801`5a92596e : 00000000`00000000 00000000`00000000 00000000`00000004 ffffca82`00000004 : nt!IopLoadDriver+0x251 ffffe681`a579f530 fffff801`5a85b2f5 : ffffe681`a579fa01 ffffe681`a579f6c8 00000000`c0000000 ffffe681`a579f6a4 : nt!PipCallDriverAddDeviceQueryRoutine+0x 1b6 ffffe681`a579f5d0 fffff801`5a85c90b : 00000000`00000000 00000000`0000000a 00000000`c0000034 ffffd68c`dd18d250 : nt!PnpCallDriverQueryServiceHelper+0xbd ffffe681`a579f640 fffff801`5a85bcb5 : ffffd68c`dd18d250 ffffe681`a579f8e0 ffffd68c`dd18d250 00000000`00000000 : nt!PipCallDriverAddDevice+0x317 ffffe681`a579f7e0 fffff801`5a866626 : ffffd68c`dcbd25d0 00000000`00000001 ffffe681`a579fb19 fffff801`5a85c3f3 : nt!PipProcessDevNodeTree+0x1cd ffffe681`a579fa60 fffff801`5a4f837e : 00000001`00000003 00000000`00000000 00000000`00000000 00000000`00000087 : nt!PiProcessReenumeration+0xa6 ffffe681`a579fab0 fffff801`5a4602e9 : ffffd68c`daf26040 fffff801`5a71e2c0 fffff801`5a7be280 fffffc80`00003800 : nt!PnpDeviceActionWorker+0x166 ffffe681`a579fb80 fffff801`5a4cf665 : 00000000`00000000 00000000`00000080 ffffd68c`d9e74040 ffffd68c`daf26040 : nt!ExpWorkerThread+0xe9 ffffe681`a579fc10 fffff801`5a55bc76 : fffff801`5a744180 ffffd68c`daf26040 fffff801`5a4cf624 00000000`00000000 : nt!PspSystemThreadStartup+0x41 ffffe681`a579fc60 00000000`00000000 : ffffe681`a57a0000 ffffe681`a579a000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x16 STACK_COMMAND: kb THREAD_SHA1_HASH_MOD_FUNC: 99a91b152877c7d9c2b4e57e7034a3b455e8a777 THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 4f92a49330a664d49f2108d68d403a8fff524ecd THREAD_SHA1_HASH_MOD: aaa5a324bf1bd3082ad2b464ee2ed2f6d50e564c FOLLOWUP_IP: nt!VerifierBugCheckIfAppropriate+48 fffff801`5ab0d330 cc int 3 FAULT_INSTR_CODE: 428b41cc SYMBOL_STACK_INDEX: 1 SYMBOL_NAME: nt!VerifierBugCheckIfAppropriate+48 FOLLOWUP_NAME: MachineOwner MODULE_NAME: nt IMAGE_NAME: ntkrnlmp.exe DEBUG_FLR_IMAGE_TIMESTAMP: 5886d72a BUCKET_ID_FUNC_OFFSET: 48 FAILURE_BUCKET_ID: 0xc4_2004_VRF_nt!VerifierBugCheckIfAppro priate BUCKET_ID: 0xc4_2004_VRF_nt!VerifierBugCheckIfAppro priate PRIMARY_PROBLEM_CLASS: 0xc4_2004_VRF_nt!VerifierBugCheckIfAppro priate TARGET_TIME: 2017-03-22T05:25:24.000Z OSBUILD: 14393 OSSERVICEPACK: 0 SERVICEPACK_NUMBER: 0 OS_REVISION: 0 SUITE_MASK: 272 PRODUCT_TYPE: 1 OSPLATFORM_TYPE: x64 OSNAME: Windows 10 OSEDITION: Windows 10 WinNt TerminalServer SingleUserTS OS_LOCALE: USER_LCID: 0 OSBUILD_TIMESTAMP: 2017-01-24 07:25:14 BUILDDATESTAMP_STR: 170123-1753 BUILDLAB_STR: rs1_release_inmarket_rim BUILDOSVER_STR: 10.0.14393.729.amd64fre.rs1_release_inma rket_rim.170123-1753 ANALYSIS_SESSION_ELAPSED_TIME: 1af3 ANALYSIS_SOURCE: KM FAILURE_ID_HASH_STRING: km:0xc4_2004_vrf_nt!verifierbugcheckifap propriate FAILURE_ID_HASH: {2f46a29b-f110-bcdf-86c8-8ab3df856220} Followup: MachineOwner ---------
0
|
|
|
Ушел с форума
|
|||||||||||||
| 31.03.2017, 16:52 | |||||||||||||
|
Ты пробовал вот сюда копать:
ffffd68cdb858e98 - это, по идее, название драйвера. Посмотреть можно так:
Если у тебя подключен отладчик, на таких ошибках будет всего лишь вылетать assert с брейкпоинтом, который можно игнорировать и идти дальше.
1
|
|||||||||||||
|
24 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 160
|
|
| 31.03.2017, 16:53 [ТС] | |
|
Название моё func.sys
Да отладчик надо прикручивать..
0
|
|
| 31.03.2017, 16:53 | |
|
Переводить команды USB WIFI Адаптера через компьютер по USB-USB для устройства USB-адаптер TL-WN727N: "Не удалось инициализировать драйвер этого устройства. (Код 37)"
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|