Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Учусь писать под WDM 22.01.03 23:49 Число просмотров: 6901
Автор: amirul <Serge> Статус: The Elderman Отредактировано 23.01.03 00:48 Количество правок: 1
|
Пишу первый в жизни WDM-драйвер. И уже задолбался искать откуда ноги у одного глюка.
Короче, когда FDO (bus enumerator) сообщает системе о новом PDO на шине, винда почему-то вызывает AddDevice этого же драйвера с этим PDO. После чего все-таки выдает Add/Remove Hardware и в списке совместимых устройств находит и нормально ставит function driver, который мне нужен.
Если бы я хотя бы примерно знал где искать и куда копать - я бы описал проблему детальнее, а так - разве что прислать все исходники. Просто подскажите, что может вызвать подобное поведение.
HardwareID и DeviceID для FDO: Root\SYSTEM для PDOs: Root\VSBUS
После чтения MSDN-а мне казалось что именно по DeviceID pnp manager ищет драйвер для устройства.
Вот кусок логи (пишу под чистым DDK, но лога из DriverStudio-ного DriverMonitor-а):
897.335340 Default vsbus.sys FDO: Entering VSBCreatePdo
897.335448 Default vsbus.sys FDO: Entering VSBCreatePdo
897.335525 Default vsbus.sys FDO: FDO IRP_MN_QUERY_DEVICE_RELATIONS IRP:0x81dde1e8
897.335541 Default QueryDeviceRelation Type: BusRelations
897.335555 Default #PDOS present = 2
897.335555 Default #PDOs reported = 2
897.335700 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.335712 Default QueryId Type: BusQueryDeviceID
897.335771 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_CAPABILITIES IRP: 0x81db9a38
897.335799 Default vsbus.sys FDO: FDO IRP_MN_QUERY_CAPABILITIES IRP:0x81dde1e8
897.335922 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_DEVICE_TEXT IRP: 0x81db9a38
897.335944 Default DeviceTextDescription :vsbpdo_00
897.335973 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_DEVICE_TEXT IRP: 0x81db9a38
897.335987 Default DeviceTextLocationInformation : Unknown
897.336015 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.336026 Default QueryId Type: BusQueryInstanceID
897.336040 Default InstanceID: 00000000
897.339549 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.339562 Default QueryId Type: BusQueryHardwareIDs
897.339592 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.339603 Default QueryId Type: BusQueryCompatibleIDs
897.339658 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP: 0x81db9a38
897.340592 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_BUS_INFORMATION IRP: 0x81db9a38
897.342064 Default vsbus.sys PDO0: PDO IRP_MN_QUERY_RESOURCES IRP: 0x81db9a38
897.342577 Default vsbus.sys: Add Device: 0x81e09258
897.342652 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.342663 Default QueryId Type: BusQueryDeviceID
897.342715 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_CAPABILITIES IRP: 0x81db9a38
897.342744 Default vsbus.sys FDO: FDO IRP_MN_QUERY_CAPABILITIES IRP:0x81dde1e8
897.342861 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_DEVICE_TEXT IRP: 0x81db9a38
897.342884 Default DeviceTextDescription :vsbpdo_01
897.342913 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_DEVICE_TEXT IRP: 0x81db9a38
897.342928 Default DeviceTextLocationInformation : Unknown
897.342955 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.342966 Default QueryId Type: BusQueryInstanceID
897.342980 Default InstanceID: 00000001
897.345309 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.345320 Default QueryId Type: BusQueryHardwareIDs
897.345351 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_ID IRP: 0x81db9a38
897.345361 Default QueryId Type: BusQueryCompatibleIDs
897.345388 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP: 0x81db9a38
897.346302 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_BUS_INFORMATION IRP: 0x81db9a38
897.347747 Default vsbus.sys PDO1: PDO IRP_MN_QUERY_RESOURCES IRP: 0x81db9a38
897.348243 Default vsbus.sys: Add Device: 0x81a354c8
897.414357 Default vsbus.sys PDO0: PDO IRP_MN_REMOVE_DEVICE IRP: 0x81db9a38
897.419126 Default vsbus.sys PDO1: PDO IRP_MN_REMOVE_DEVICE IRP: 0x81db9a38
---
Видно, что после всех нужных опросов винда пытается засунуть на стек FDO из того же драйвера. Если для понимания (и разъяснения мне неразумному) ситуации требуется еще какая-нибудь инфа - спрашивайте, буду рад любому сотрудничеству.
|
- Учусь писать под WDM - amirul 22.01.03 23:49 [6901]
|
|
|