информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медЗа кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Re: Не помогло :-( Ну да ладно. Еще вопрос 23.01.03 18:41  Число просмотров: 1783
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
У тебя явно где-то есть ошибки, если код правильный то система работает верно.
Без основательной проверки кода и "вникания" не обойтись.

Светую поставить Windows XP Checked Build и использовать Driver Verifier, без этого очень сложно найти место с которого все начинает ломаться.

Есть нет Checked Build, я могу дать слить, по http либо в Москве с CD.
<operating systems>
Учусь писать под WDM 22.01.03 23:49  
Автор: 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 из того же драйвера. Если для понимания (и разъяснения мне неразумному) ситуации требуется еще какая-нибудь инфа - спрашивайте, буду рад любому сотрудничеству.
Убери rawdeviceok из device_capabilities для pdo 23.01.03 14:43  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Не помогло :-( Ну да ладно. Еще вопрос 23.01.03 16:47  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Оно вроде бы не мешает нормальной работе - напишу пару заглушек - потом разберусь.

При удалении PDO (IoDeleteDevice) из реестра не удаляется его подключ. Удаляются все значения, удаляется подключ Device Parameters, а сам Instance, а также подключи Control и LogConf остаются. В Device Managere пропадают устройства, но при попытке обновить дерево устройств в Device Managere - они все появляются как не работающие, после чего винда предлагает для всех них найти драйвер.
Такое впечатление, что винда считает, что устройство физически осталось. При этом IoDeleteDevice вызывается из обработчика IRP_MN_REMOVE_DEVICE, который вызывается после того как из QUERY_DEVICE_RELATIONS (BusRelations) сообщается, что этих устройств уже нет.

Правильно ли такое поведение системы, и если нет, то как заставить PDO удалиться вместе со своим Enum подключем в реестре
Re: Не помогло :-( Ну да ладно. Еще вопрос 23.01.03 18:41  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
У тебя явно где-то есть ошибки, если код правильный то система работает верно.
Без основательной проверки кода и "вникания" не обойтись.

Светую поставить Windows XP Checked Build и использовать Driver Verifier, без этого очень сложно найти место с которого все начинает ломаться.

Есть нет Checked Build, я могу дать слить, по http либо в Москве с CD.
Хорошо бы. А весит сколько? 23.01.03 23:13  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> У тебя явно где-то есть ошибки, если код правильный то
> система работает верно.
Ну это я уже понял :-))). Собрал MsToaster и посмотрел как ведет себя он. Запись остается, но драйвер для него начинает искаться только если появляется PDO с таким же InstanceID. Самое печальное, что моя шина - прямой потомок этого самого тостера :-)))

> Без основательной проверки кода и "вникания" не обойтись.
>
> Светую поставить Windows XP Checked Build и использовать
> Driver Verifier, без этого очень сложно найти место с
> которого все начинает ломаться.
Ну, выбора у меня все равно нет. Буду искать, если не найду - буду скручивать как-нибуть, абы работало первое время (в крайнем случае поудаляю эти ключи из DestroyPDO) - позже разберусь :-)

> Есть нет Checked Build, я могу дать слить, по http либо в
> Москве с CD.

Хорошо бы. Но сколько он весит. А то если большой - мне бы надо кого-нить со спутниковым каналом найти (прова своего попрошу) - чтоб слил.

Но в любом случае спасибо за внимание и поддержку.

ЗЫ: Ептыть, как люди во всем этом разбираются :-)))
Нашел!!! Не хрен соваться в Root enumerator - далеко пойду :-)))) 24.01.03 02:49  
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 24.01.03 03:29  Количество правок: 1
<"чистая" ссылка>
Как я написал PDO выдавали device id Root\VSBUS, а для всего, что появлялось в этой ветке PnpManager пытался создавать контроллеры (FILE_DEVICE_CONTROLLER). Почему вызывался AddDevice я так и не понял, но девайсы из манагера не пропадали потому, что они были не мои. Это были контроллеры PnP Manager-а. Но обе проблемы решились когда я вынес свой энумератор в корень enum-а. Ну что ж бум знать.

И еще. Я пытался мыло послать на указанный в инфе адрес. Письмо мне вернули с Permanent fatal errors: 550 ... spam (вот так и стало одним спамером больше)
Если не сложно, напиши мне с какого-нибудь твоего публичного мыла, а то вряд ли я пробьюсь через корпоративный фильтр
Нашел!!! Не хрен соваться в Root enumerator - далеко пойду :-)))) 24.01.03 15:06  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
> Как я написал PDO выдавали device id Root\VSBUS, а для
> всего, что появлялось в этой ветке PnpManager пытался
> создавать контроллеры (FILE_DEVICE_CONTROLLER). Почему
> вызывался AddDevice я так и не понял, но девайсы из
> манагера не пропадали потому, что они были не мои. Это были
> контроллеры PnP Manager-а. Но обе проблемы решились когда я
> вынес свой энумератор в корень enum-а. Ну что ж бум знать.
Ну что'ж, поздравляю !

> И еще. Я пытался мыло послать на указанный в инфе адрес.
> Письмо мне вернули с Permanent fatal errors: 550 ... spam
> (вот так и стало одним спамером больше)
> Если не сложно, напиши мне с какого-нибудь твоего
> публичного мыла, а то вряд ли я пробьюсь через
> корпоративный фильтр

Пиши на leo_yuriev@hotmail.com или не с free-mail адреса.
Размер Checked Build немного больше "обычного build-a", если надумаешь - пиши дам url iso-образа. Последний DDK кажеться ~160 Mb.

"Checked Build" я немного "доделываю" для себя, заливаю Service Pack и делаю загрузочным.

И еще на всякий случай:
1) Обновления (windows update, hotfix-ы) для Checked Build-а лучше не ставить. Обновленный компоненты будут уже не "Checked Build";
2) Кряки активации XP для Checked Build не подходят. Я борюсь с эти так:
- Ставлю W2K;
- Перевожу системное время на 2-3 года вперед;
- Ставлю XP;
- Загружаюсь в XP, доставляю нужный софт, настраиваю под себя и т.д.;
- Загружаюсь в W2K и делаю полный backup каталога с XP;
- Возвращаю нормальное системное время;
- Использую XP месяц до "expiration";
- Потом гружусь в W2K и восстанавливаю XP из backup-а;
- Еще месяц...

Удачи!
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach