Lemberg
Участник
Offline
|
|
« Ответ #30 : 19-01-2004 11:29 » |
|
Blin, da chego-ti zlishs'a. Izwini, esli ja glupie voprosi zadaju.
Ja naschet NDIS pon'al wse. WLAN karti bili kak primer. Poskol'ku ja hochu ne tol'ko network kontrollierowat', a eshe IrDA i Bluetooth, mne kak ja pon'al NDIS-driver ne podhodit. Nugen filter driver. Poetomu ja sprosil, na kakie drivers ja dolgen w etom filter driver opiratsa.
Sorry, if it was a fool question.
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #31 : 19-01-2004 11:49 » |
|
Poetomu ja sprosil, na kakie drivers ja dolgen w etom filter driver opiratsa.
На верхние драйвера фильтры. Ищи USB sniffer и ему подобные драйвера. Маленькая засада будет в том что Bluetooth драйвера еще не очень стандартизованы и поэтому часто попадаются девайсы, не работающие со стандартным драйвером от MS. Но это проблема разрешима- можно например в юзер моде через SetupDi ф-ции найти все bluetooth устройства и их драйвера. НО ДРАЙВЕР ФИЛЬТР У ВСЕХ У НИХ МОЖНО СДЕЛАТЬ ОДИНАКОВЫМ! То есть достаточно одного драйвер- фильтра, ловящего коды IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_DEVICE_CONTROL, IRP_MJ_INTERNAL_DEVICE_CONTROL. Но я еще раз повторю- если нужно контроллировать только сетевые соединения через IrDA, Bluetooth то достаточно NDIS, если нужно контроллировать любые данные- то простой драйвер фильтр, типа usb sniffer вот такой например http://benoit.papillault.free.fr/usbsnoop/index.en.php
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #32 : 31-01-2004 14:10 » |
|
Privet! Mne udalos' s pomosh'ju primera filter driver iz knigi sdelat' swoj. Teper' u men'a takaja problema: moi filter driver dolgen wiset' na neskol'kih ustrojstwah odnowremenno, kak ja mogu razlichat', kogda kakoe ustrojstwo wiziwaetsa - ili po drogomu, komu prednaznachen IRP?
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #33 : 31-01-2004 16:58 » |
|
Da i eshe vopros. Moj filter driver, kotorij sidit na LAN card i IrDA, lovit pocemu-to tol'ko IRP_MJ_CREATE, IRP_MJ_DEVICE_CONTROL, IRP_MJ_CLEANUP i IRP_MJ_CLOSE. Prichem imenno w takoj posledowatel'nosti. A pochemu ja ne poluchaju IRP_MJ_READ naprimer?
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #34 : 02-02-2004 06:26 » |
|
kak ja mogu razlichat', kogda kakoe ustrojstwo wiziwaetsa - ili po drogomu
В момент подключения, когда вызывается AddDevice, тебе передается PDO, по нему определи к кому подключают, например при помощи запроса IRP_MN_QUERY_ID, или пройдясь по стеку устройств через указатель AttachedDevice. Полученную инфу сохрани в DeviceExtension и оттуда вынимай при обработке IRP. Также в DeviceExtension можешь сохранить указатель на PDO и все что хочешь. Moj filter driver, kotorij sidit na LAN card i IrDA, lovit pocemu-to tol'ko IRP_MJ_CREATE, IRP_MJ_DEVICE_CONTROL, IRP_MJ_CLEANUP i IRP_MJ_CLOSE. Prichem imenno w takoj posledowatel'nosti. A pochemu ja ne poluchaju IRP_MJ_READ naprimer?
Значит чтение и запись идет через IRP_MJ_DEVICE_CONTROL, также и в USB- IRP_MJ_INTERNAL_DEVICE_CONTROL.
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #35 : 02-02-2004 14:34 » |
|
В момент подключения, когда вызывается AddDevice, тебе передается PDO, по нему определи к кому подключают,
Da no eto daet men wozmognost' otlichat' pdo drug ot druga. A kak mne uznat', chto pdo=8232E... eto WLAN card , a 82A5... eto IrDA ila LAN card?
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #36 : 02-03-2004 15:42 » |
|
Privet. Moj filter driver wipoln'aet trebuemoe, no ja poluchaju inogda BSOD s soobsheniem PAGE_FAULT_IN_NONPAGED_AREA. Prichem eto moget bit' cherez 15 minut posle starta system, a moget cherez 4 chasa. Proweril: wsu memory, kotoruju widel'aju - oswobogdaju, handles - zakriwaju. Gde eshe mogno iskat' oshibku?
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #37 : 03-03-2004 07:41 » |
|
Moj filter driver wipoln'aet trebuemoe, no ja poluchaju inogda BSOD s soobsheniem PAGE_FAULT_IN_NONPAGED_AREA. Prichem eto moget bit' cherez 15 minut posle starta system, a moget cherez 4 chasa. Proweril: wsu memory, kotoruju widel'aju - oswobogdaju, handles - zakriwaju. Gde eshe mogno iskat' oshibku?
Ну ты и спросил- там причин очень много. Следствие их одно- обращение по ошибочному адресу.
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #38 : 07-03-2004 23:03 » |
|
u menja wse takge pereodicheski pojawl'aetsa BSOD s soobsheniem PAGE_FAULT_IN_NONPAGED_AREA. Posmotrel kernel dump. Tam oshibka wiskakiwaet po adresu f8a0707b (Bugcheck 00000050 : e2384000 00000000 f8a0707b 00000001). Ja gl'anul chto tam po etomu adresu: F8A0707B rep movs byte ptr [edi],byte ptr[esi] F8A0707D lea ecx,[ebp-5B8h] F8A07083 push ecx F8A07084 lea edx,[ebp-8] F8A07087 push edx F8A07088 call dword ptr ds:[0F8A08C1Ch] F8A0708E push 0 F8A07090 mov eax,dword ptr [ebp-38h] (Mashinnie koda ja ster ) Wot. Prichem, chto interesno: kogda u menja driver letit w VMware, to block kommand po adresu sboja totge. Ja ne znaju po etomu kodu mojno chto-to opredelit'?
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #39 : 14-03-2004 11:39 » |
|
U menja wopros: Moj filter driver kontrolieruet na dannij momemt wse devices of Class Network. W tom chisle i FireWire. No pochemu-to dage togda, kogda ja obrashajus' k FireWire (naprimer podkluchaju videokameru na nego), ja ne nabludaju nichego w swoem filtre. Pochemu? Ja dumal, chto luboj obmen informaziej budet mne widen.
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #40 : 15-03-2004 06:45 » |
|
U menja wopros: Moj filter driver kontrolieruet na dannij momemt wse devices of Class Network. W tom chisle i FireWire. No pochemu-to dage togda, kogda ja obrashajus' k FireWire (naprimer podkluchaju videokameru na nego), ja ne nabludaju nichego w swoem filtre.
А оно в этом случае не обязательно через сетевой интерфейс работает. Сеть в IEEE1394 это только один из возможных путей работы. Там еще есть способы. Посмотри на Device Object'ы, созданные драйвером IEEE1394, это драйвер обычно ohci1394, а ты контролируешь сидящий над одним из его PDO драйвер NIC1394.
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #41 : 15-03-2004 12:29 » |
|
A kak s IrDA i Bluetooth? Toge ne ob'azatel'no cheres network?
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #42 : 15-03-2004 21:41 » |
|
Посмотри на Device Object'ы, созданные драйвером IEEE1394, это драйвер обычно ohci1394, а ты контролируешь сидящий над одним из его PDO драйвер NIC1394.
Ja posadil filter na ohci1394 i woobshe na wse driveri s okonchaniem 1394 No situaziju eto ne uluchshilo. Kak ge eta zaraza (FireWire) s prologeniem obshaetsa?
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #43 : 17-03-2004 06:52 » |
|
No situaziju eto ne uluchshilo
Значит неправильно посадил или не на все.
|
|
|
Записан
|
|
|
|
SlavaI
Главный специалист
Offline
|
|
« Ответ #44 : 17-03-2004 06:52 » |
|
A kak s IrDA i Bluetooth? Toge ne ob'azatel'no cheres network?
Тоже и очень часто.
|
|
|
Записан
|
|
|
|
Lemberg
Участник
Offline
|
|
« Ответ #45 : 17-03-2004 10:58 » |
|
Значит неправильно посадил или не на все.
Na wse Ja poluchaju tol'ko soobshenie ot NIC1394 kogda podkluchaju ustrojstvo (w dannom sluchaje kameru) i kogda otkluchaju. Moget takoe bit', chto prilogenie obshaetsa s FireWire cheres DMA bez uchastija driver?
|
|
|
Записан
|
|
|
|
|