Re[15]: Ответ
От: Аноним  
Дата: 03.04.13 13:28
Оценка:
При вставке usb устройства, появляется порт COM10 и при извлечении исчезает. Если в реестре кликнуть по нему, то будет что-то написано про silabser.sys (вроде в параметре)

Поснифал работу проги при подключеных модулях, тпи дофига вызовов функция для работы с COM, и еще больше ClearCommError, все ими забито.
# Time of Day Thread Module API Return Value Error Duration
9 3:37:51.906 PM 1 ProLog.exe CreateFileA ( "//./COM10", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ) 0x00000154 0.0264140
10 3:37:51.937 PM 1 ProLog.exe GetCommState ( 0x00000154, 0x0012f93c ) TRUE 0.0000528
11 3:37:51.937 PM 1 ProLog.exe SetCommState ( 0x00000154, 0x0012f93c ) TRUE 0.0306980
12 3:37:51.968 PM 1 ProLog.exe PurgeComm ( 0x00000154, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR ) TRUE 0.0029518
13 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x0104a724, 1, 0x0012f934, NULL ) TRUE 0.0009767
14 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x01025788, 1, 0x0012f934, NULL ) TRUE 0.0009859
15 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x00ff4dd8, 1, 0x0012f934, NULL ) TRUE 0.0009814
16 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x01007f68, 1, 0x0012f934, NULL ) TRUE 0.0009803
17 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x0101bfc8, 1, 0x0012f934, NULL ) TRUE 0.0012979
18 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x01043498, 1, 0x0012f934, NULL ) TRUE 0.0006691
19 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x0104ec18, 1, 0x0012f934, NULL ) TRUE 0.0009822
20 3:37:51.968 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x010dc054, 1, 0x0012f934, NULL ) TRUE 0.0009836
21 3:37:52.078 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012f954, 0x0012f958 ) TRUE 0.0000472
22 3:37:52.078 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012f920, 0x0012f924 ) TRUE 0.0000131
23 3:37:52.078 PM 1 ProLog.exe ReadFile ( 0x00000154, 0x0105d4a8, 7, 0x0012f95c, NULL ) TRUE 0.0000075
24 3:37:52.078 PM 1 ProLog.exe CreateFileA ( "com.mc", GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL ) 0x0000013c 0.0001902
25 3:37:52.078 PM 1 ProLog.exe GetFileType ( 0x0000013c ) FILE_TYPE_DISK 0.0000036
26 3:37:52.078 PM 1 ProLog.exe WriteFile ( 0x0000013c, 0x0012fad0, 4, 0x0012f94c, NULL ) TRUE 0.0000268
27 3:37:52.078 PM 1 ProLog.exe PurgeComm ( 0x00000154, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR ) TRUE 0.0028004
28 3:37:52.078 PM 1 ProLog.exe PurgeComm ( 0x00000154, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR ) TRUE 0.0029716
29 3:37:52.093 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x0103e874, 1, 0x0012fa64, NULL ) TRUE 0.0009772
30 3:37:52.093 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x010a5e74, 1, 0x0012fa64, NULL ) TRUE 0.0009850
31 3:37:52.093 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x01030470, 1, 0x0012fa64, NULL ) TRUE 0.0009772
32 3:37:52.093 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x00ffb210, 1, 0x0012fa64, NULL ) TRUE 0.0009822
33 3:37:52.093 PM 1 ProLog.exe WriteFile ( 0x00000154, 0x010dc818, 1, 0x0012fa64, NULL ) TRUE 0.0013460
34 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fa84, 0x0012fa88 ) TRUE 0.0000204
35 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fa50, 0x0012fa54 ) TRUE 0.0000123
36 3:37:52.093 PM 1 ProLog.exe ReadFile ( 0x00000154, 0x0105f5dc, 4, 0x0012fa8c, NULL ) TRUE 0.0000056
37 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000123
38 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000425
39 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000232
40 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000212
41 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000201
42 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000204
43 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000198
44 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000307
45 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000212
46 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000207
47 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000196
48 3:37:52.093 PM 1 ProLog.exe ClearCommError ( 0x00000154, 0x0012fabc, 0x0012fac0 ) TRUE 0.0000198
и понеслись ClearCommError...

Собственно, мне надо как-то самому создать этот порт com и в него что-то писать или можно похукать в экзешнике нужные функции и возвращать нужные параметры?
Re[9]: Ответ
От: CanisLupus  
Дата: 09.04.13 11:01
Оценка:
Здравствуйте, andrey82, Вы писали:

A>В общем, если порты появляются, то скорее всего весь прикладной обмен идет через них (не исключено даже использование какого-либо стандартного протокола типа Modbus), и задача решается вообще без написания драйвера.


Присоединюсь со своим вопросом. У меня тоже USB устройство, при подключении появляется COM-порт. Как подслушать обмен?
Сейчас я использую Free Serial Port Monitor, сохраняю его лог и анализирую его своей программой. Но хотелось бы обойтись без стороннего сниффера, а вставить эту возможность в свою программу (под Windows). Где об это почитать? Есть ли свободные библиотеки для сниффинга COM-портов?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.