Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 8 и 8.1 (http://forum.oszone.net/forumdisplay.php?f=116)
-   -   Вызов диалога отключения USB Flash-накопителей (http://forum.oszone.net/showthread.php?t=269969)

LonerD 15-10-2013 03:36 2234618

Вызов диалога отключения USB Flash-накопителей
 
Когда в компьютер вставляется USB-накопитель (флешка, док-станция, внешний жёсткий диск), в трее Windows появляется значок "Safely Remove Hardware and Eject Media".
При клике на значок появляется меню для извлечения накопителя.
Подскажите, пожалуйста, каким образом можно вызвать это меню (или аналогичное по функциональности меню с отображением USB-накопителей) из командной строки?

Знаю команду
RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll
Она вызывает окно "Safely Remove Hardware", но его функционал не подходит - не все накопители через это окно не извлекаются (в то же время эти же накопители извлекаются через иконку в трее).
То есть эта команда не является ответом на поставленный вопрос.

Safety1st 15-10-2013 14:21 2234860

А у меня извлекаются... Windows 8.

diagnoz_ 15-10-2013 15:14 2234895

Цитата:

Цитата LonerD
но его функционал не подходит - накопители через это окно не извлекаются. »

Почему не извлекаются?Что пишет\происходит?

LonerD 15-10-2013 17:28 2234975

Цитата:

Цитата Isotonic
А у меня извлекаются... »

"Извлекаются" ? На вашем скрине видна только флешка. Вы попробовали извлекать РАЗНЫЕ возможные варианты внешних дисков?
У меня через этот диалог успешно отключаются внутренние жёсткие диски, подключённые по SATA-интерфейсу. А вот док-станция Zalman ZM-MH200 U3 и вставленные в неё жёсткие диски, - не извлекаются.

Цитата:

Цитата diagnoz_
Почему не извлекаются?

Интересно бы знать.

Цитата:

Цитата diagnoz_
Что пишет\происходит? »

Вот такое происходит:

Разные варианты нажатий - на device или volume приводят к одному и тому же окну, что "Device is not removable".

Настройки, пробовал их изменить - диски всё-равно не извлекаются:


Повторюсь - через меню, вызываемое значком в трее те же диски извлекаются без вопросов.
Потому изначальный вопрос в силе - какой командой вызывается это меню?


Побочный вопрос - чем различаются меню в трее и меню, вызываемое вышеназванной командой?

diagnoz_ 15-10-2013 20:09 2235057

Цитата:

Цитата LonerD
и вставленные в неё жёсткие диски, - не извлекаются. »

возможно они чем-то заняты в этот момент?если перегрузить ПК и сразу попробовать извлечь, произойдет извлечение?
- обновите драйвер на чипсет материнской платы.
- выполните sfc /scannow в cmd запущенной от имени Администратора и перегрузитесь.После выложите лог CBS.log в архиве по пути C:\Windws\Logs\

LonerD 15-10-2013 20:55 2235094

Вложений: 1
Цитата:

Цитата diagnoz_
если перегрузить ПК и сразу попробовать извлечь, произойдет извлечение? »

Нет, не происходит.

Цитата:

Цитата diagnoz_
возможно они чем-то заняты в этот момент? »

Ничем не заняты.
Даже если и предположить, что чем-то заняты (фоновые процессы вдруг работают), - то через трей ведь в тех же условиях извлекаются.
Значит, в системном диалоге, вызываемом через меню в трее, использует какой-то другой метод извлечения. И главный вопрос темы - какой командой вызвать этот системный диалог?

Цитата:

Цитата diagnoz_
обновите драйвер на чипсет материнской платы. »

Не считаю это хорошей идеей. Год система проработала без нареканий с тем драйвером, который установился вместе с Windows 8. А золотое правило всегда в силе: "если работает - не трогай". К тому же последний драйвер на оф.сайте производителя материнской платы (плата Asus P6T) датирован летом 2009 года, и подписан как "для Windows 7 x64"; экспериментировать с ним нет никакого желания.

Цитата:

Цитата diagnoz_
выполните sfc /scannow в cmd запущенной от имени Администратора и перегрузитесь. После выложите лог CBS.log в архиве по пути C:\Windws\Logs\ »

Прикрепил лог к сообщению.

diagnoz_ 15-10-2013 22:41 2235135

Лог вроде как чистый после восстановления и перезагрузки.

Safety1st 17-10-2013 08:35 2235888

Цитата:

А у меня извлекаются... »
"Извлекаются" ? На вашем скрине видна только флешка. Вы попробовали извлекать РАЗНЫЕ возможные варианты внешних дисков?
А теперь внимательно читайте, что сами написали:
Цитата:

Она вызывает окно "Safely Remove Hardware", но его функционал не подходит - накопители через это окно не извлекаются.
Флешка - это накопитель. У меня она извлекается. Вывод: накопители извлекаются. Потому в первую очередь я заподозрил проблему с вашей Windows, для этого 'похвастался'.

Цитата:

Цитата LonerD
Цитата diagnoz_:
Почему не извлекаются?
Интересно бы знать. »

Потому что для ОС это non-removable устройство. А в трее появляется, потому что подключено по USB (hot-plug bus).
Можете проверить тип диска с помощью команды fsutil fsinfo drivetype X:
И Windows это прямо говорит, а вы не верите ;)

У себя воспроизвёл аналогичную ситуацию, подключив SATA HDD через SATA-to-USB адаптер.


Как Windows определяет тип диска (блок 'Q. What must I do to trigger AutoRun on my USB storage device?') Для изменения типа нужно перепрограммировать flash-контроллер или перехватывать ответ драйвера usbstor.sys с помощью фильтра драйвера и ставить нужный RMB-бит (например, используя F2Dx1.sys или cfadisk.sys). Но я отвлёкся)

Цитата:

Цитата LonerD
Побочный вопрос - чем различаются меню в трее и меню, вызываемое вышеназванной командой? »

'Меню в трее' способно работать со всеми подключаемыми накопителями, 'меню hotplug.dll' - нет. Может by design так сделали?..

Цитата:

И главный вопрос темы - какой командой вызвать этот системный диалог?
После выбора в меню через API вызывается функция HotPlugEjectDevice в библиотеке hotplug.dll. В параметрах передаётся, какое устройство извлечь. Наверное, удастся это сделать таким макаром:
rundll32 hotplug.dll,HotPlugEjectDevice <>
Параметры мне подобрать не удалось, в Интернете информацию не нашёл.
Описание функции из Windows 2000 DDK тут.

LonerD 17-10-2013 14:44 2236037

Спасибо.
Похоже, вопрос не имеет решения.
Он уже поднимался на форумах: тут и тут и тут и в других местах...
Но ответа так и не было получено.
Видимо, придётся ограничиться вызовом "Control Panel\Devices and Printers" (хотя там помимо дисков много "лишних" устройств отображается) или сторонними программами.


Время: 20:00.

Время: 20:00.
© OSzone.net 2001-