Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отсутствие IOCTL_SCSI_RESCAN_BUS в Windows 2003, Поиск аналога 
:(
    Опции темы
AndreyRus
Дата 18.3.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 18.3.2006

Репутация: нет
Всего: нет



Здравствуйте.

Я обнаружил, что в Windows 2003 вызов DeviceIOControl с кодом IOCTL_SCSI_RESCAN_BUS уже не поддерживается.

Суть проблемы в том, что после изменения паспортных данных, например - после обновления микропрограммы, необходимо заставить драйвер заново считать идентификационные данные из жесткого диска.
PM MAIL   Вверх
Fixin
Дата 18.3.2006, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



А это учтено?
Цитата(MSDN)
Headers
Defined in
ntddscsi.h
Include
ntddscsi.h

PM MAIL ICQ   Вверх
AndreyRus
Дата 19.3.2006, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 18.3.2006

Репутация: нет
Всего: нет



В смысле? Что учтено?
Это проверено на работоспособность в XP (SP1 & SP2).
PM MAIL   Вверх
Fixin
Дата 19.3.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Просто в МСДН нигде не написано, что поддержка этой штуки отключена в 2003м
PM MAIL ICQ   Вверх
AndreyRus
Дата 19.3.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 18.3.2006

Репутация: нет
Всего: нет



О чем и речь!
PM MAIL   Вверх
AndreyRus
Дата 19.3.2006, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 18.3.2006

Репутация: нет
Всего: нет



Анализ машинного кода функции- DeviceIOControl достаточно сложен. Я пытался, но с первого раза не получилось, т.к. трассировка остановилась на SysEnter.
PM MAIL   Вверх
AndreyRus
Дата 24.3.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 18.3.2006

Репутация: нет
Всего: нет



Я заметил, что переключение режима передачи данных PIO<->UDMA, в диспетчере устройств, заставляет драйвер заново считать паспортные данные жесткого диска. Ниже результат перехвата вызываемых при этом функций. К сожалению, я недостаточно хорошо знаком с такими подробностями устройства операционной системы. Подскажите, пожалуйста, где копать?

Код
 Length - Total transfer length
 Phase  - Phase Type
           IN    Data in transfer           
           SRB   SCSI request block         
           STAK  NT IRP stack location      
 Data   - Hex dump of the data transferred
 Descr  - Description of the phase
 Cmd... - Position in the captured data
 Driver - atapi.sys : IDE/ATAPI Port Driver 5.2.3790.1830 (srv03_sp1_rtm.050324-1447)

Device  Length    Phase  Data                                                Description       Cmd.Phase.Ofs(rep)  Driver      
------  --------  -----  --------------------------------------------------  ----------------  ------------------  ------------
  1              STAK   0e 00 00 e0  14 00 00 00                            IOCTL                    1.1.0        atapi         
  1              STAK   0e 00 00 e0  24 00 00 00                            IOCTL                    2.1.0        atapi         
  3              SRB    40 00 c8 44  00 00 00 00                                                     3.1.0        atapi         
  3              STAK   0f 00 00 e0  40 05 61 82                            INTERNAL IOCTL           3.2.0                      
  3              SRB    40 00 c8 01  00 00 00 00                                                     4.1.0(3)     atapi         
  3              STAK   0f 00 00 e0  40 05 61 82                            INTERNAL IOCTL           4.2.0                      
  3              SRB    40 00 c7 01  00 00 00 00                                                     7.1.0        atapi         
  3              STAK   0f 00 00 e0  40 05 61 82                            INTERNAL IOCTL           7.2.0                      
  1              STAK   0e 00 00 e0  00 00 00 00                            IOCTL                    8.1.0        atapi         
  3          36  IN     00 00 00 00  00 00 00 00                            ........                 9.1.0        atapi         
  3              SRB    40 00 00 01  00 00 00 00                            EXEC SCSI                9.2.0                      
  3              STAK   0f 00 00 e0  40 05 61 82                            INTERNAL IOCTL           9.3.0                      
  0              STAK   1b 09 00 00  7c 67 8e f7                            QUERY CAPS              10.1.0        unknown       
  1              STAK   1b 09 00 00  70 69 8e f7                            QUERY CAPS              11.1.0        unknown       
  3              STAK   1b 09 00 e0  24 6c 8e f7                            QUERY CAPS              12.1.0        unknown       
  1              STAK   1b 07 00 00  00 00 00 00                            QUERY RELATIONS         13.1.0        unknown       
  3              STAK   1b 07 00 e0  00 00 00 00                            QUERY RELATIONS         14.1.0        unknown

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.