Re[6]: Когда же винда научится извлекать устройства?
От: B0FEE664  
Дата: 10.01.24 16:33
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>>... А если может исполняться и ПО других фирм, то отвечать за это ПО она не может. Например, не может отвечать за какой-то антивирус, который некорректно работает с хендлами. И т.д.

BFE>>Если программа работает некорректно, то вот пускай её система и убивает. Это её, системы, работа.
PD>Остается лишь дать определение некорректно работающей программы.
Некорректно работающая программа — это программа не соблюдающая требования.
И каждый день — без права на ошибку...
Re[7]: Когда же винда научится извлекать устройства?
От: Pavel Dvorkin Россия  
Дата: 10.01.24 16:45
Оценка: +1 -2
Здравствуйте, B0FEE664, Вы писали:

PD>>Остается лишь дать определение некорректно работающей программы.

BFE>Некорректно работающая программа — это программа не соблюдающая требования.

Предложи внешний механизм , позволяющий отличить корректные (в твоем определении) программы от некорректных.

Мой пример программы, которая на старте открывает файл и при окончании закрывает — корректная или нет ?
А она ведь вызовет эту проблему.
Или запретишь держать в течение всего времени работы открытый хендл ? Ну тогда ты много программ запретишь. Посмотри сам по Process Explorer, кто там и что открыл, да и все их запрети.
А на каком диске открывается хендл — этого я не знаю и знать не могу. Пользователь выберет.
Да и нет такого требования не делать это. Имею право.

А это лишь простейший пример.
With best regards
Pavel Dvorkin
Re[10]: Когда же винда научится извлекать устройства?
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.01.24 16:51
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Так хоть выдерни флешку, хоть убей процесс, который ее держит — неприятности одинаково возможны.
Неприятность с одним файлом != повреждению файловой системы пятитерабайтного накопителя, на котором у меня весь семейный видеоархив.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Когда же винда научится извлекать устройства?
От: B0FEE664  
Дата: 10.01.24 17:06
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Предложи внешний механизм , позволяющий отличить корректные (в твоем определении) программы от некорректных.

PD>Мой пример программы, которая на старте открывает файл и при окончании закрывает — корректная или нет ?
PD>А она ведь вызовет эту проблему.
PD>Или запретишь держать в течение всего времени работы открытый хендл ? Ну тогда ты много программ запретишь. Посмотри сам по Process Explorer, кто там и что открыл, да и все их запрети.
PD>А на каком диске открывается хендл — этого я не знаю и знать не могу. Пользователь выберет.
PD>Да и нет такого требования не делать это. Имею право.

Ну вот, всё же просто, сами же написали "Пользователь выберет". Раз пользователь выберет, значит, надо пользователю указать на его выбор, что вот, этой программой вы блокируете процесс размонтирования флешки: закрыть? убить? отменить?
И каждый день — без права на ошибку...
Re[11]: Когда же винда научится извлекать устройства?
От: m2user  
Дата: 10.01.24 17:38
Оценка: +2
S>Неприятность с одним файлом != повреждению файловой системы пятитерабайтного накопителя, на котором у меня весь семейный видеоархив.

С т.з. потенциального повреждения ФС чем "опасное" извлечение флешки хуже внезапного отключения электропитания?
У Вас же есть план на такой сценарий?

P.S. считаю, что прибивать процессы плохая идея, лучше принудительно отмонтировать ФС, если ОС предоставляет средства для этого (писал об этом выше
Автор: m2user
Дата: 10.01 18:59
)
Re[8]: Когда же винда научится извлекать устройства?
От: mike_rs Россия  
Дата: 10.01.24 18:19
Оценка: 2 (1) +3
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Мой пример программы, которая на старте открывает файл и при окончании закрывает — корректная или нет ?


некорректная

PD>Или запретишь держать в течение всего времени работы открытый хендл ?


держать можно сколько угодно, но на запрос DBT_DEVICEQUERYREMOVE нужно уметь подписываться и корректно закрывать хендлы по его приходу,
это и есть требование к программам
Отредактировано 10.01.2024 18:20 mike_rs . Предыдущая версия .
Re: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Начиная примерно с восьмёрки, пацаны занимаются какой-то хернёй, решая несуществующие проблемы.

Это да.

S>Когда они уже научатся нормально извлекать устройства?

Huh? Не то чтоб я сильно часто подключаю внешнего storage но никогда никаких проблем не возникало. Что с USB что с iSCSI всё отмонтируется моментально, единственное когда оно говорит что девайс in use когда я забываю что у меня ещё один instance Far на этот диск в данный момент смотрит.

S>До сих пор (Win 11, последние обновления)

А, 11я жеж до сих пор сырое говно. Нафига ты её поставил?
Они ж только недавно 10ку дополировали до состояния когда ей стало более менее пользоваться.

S>Посмотри, @!#$@#, кто этот "кто-то".

Это не то чтобы просто, надо enumerate handles для всех процессов, и найти те, кто держит mount point.
Сделать можно, но для юзера сия белиберда будет не очень понятна а молча пристрелить процесс чревато другими проблемами, которые никто не хочет на себя вешать.

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

Возьми ProceXP и поищи в нём Handle на root твоего диска, сразу будет понятно кто.

S>Я виндой пользуюсь дольше, чем среднестатистический сотрудник Microsoft на свете прожил, и все "пользовательские программы", которые могли на мой внешний диск смотреть, закрыл первым делом ещё до того, как задуматься об извлечении устройства.

И ты при этом не смог достоверно выяснить кто держит диск а вместо этого теоретизируешь?

S>Единственное объяснение этому маразму, что мне приходит в голову — у них есть решение для этой проблемы. Но его откладывают до того момента, как выйдет очередная версия винды, настолько неудачная, что на неё согласится переходить 0% их userbase. Вот тогда фичу зарелизят

Dude!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[5]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Но Командиром я из папки выхожу, а Винда почему-то думает, что я еще внутри.

Потому что видимо он всё равно держит handle.
Far в таком раскладе ведёт себя корректно
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>1. ОС не должна содержать бесполезные сервисы, которые только мешают пользователю.

А с чего ты взял что они бесполезные и только мешают?

N>Просто так написали процесс безопасного удаления устройства, что при команде пользователя прерывания не происходит.

И как именно должен происходить процесс такого прерывания?

N>Сервис по индексации контента на флешках вполне может и должен иметь API, в которое будет стучаться ОС и говорить, что надо резко прерваться.

А с чего ты вообще взял что проблема у топикстартера именно в этом сервисе?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[5]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>Ну обычный же случай — вставил флешку, закинул файл, дождался окончания, пытаюсь вынуть — и "устройство все еще используется".

F> Кем, почему, как понять —
Как дети, ей богу!
Возьми да посмотри!
Инструментария хоть жопом жуй, тот же официальный ProceXP.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[5]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Нет, я предлагаю сделать механизм прерывания работы этих служб.

А с чего ты вообще взял что его нет?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[7]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>При этом флешку держат явно сервисы самой ОС

С чего ты это вообще взял?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[8]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А еще учти, что приличная часть сервисов живет в svchost, количество процессов которого растет с каждой новой версией Windows прямо таки с ужасающей скоростью. Убить один сервис в svchost нельзя, можно только весь svchost убить. К каким последствиям это приведет — даже думать не хочу.

Их нынче стали разделять по принципу один сервис — один процесс, именно чтоб падение одного не заваливало остальные.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, Sinclair, Вы писали:

PD>>Нельзя с ним договориться. Ну не хочет он закрыть хендл. А попросить его нет возможности.

S>Ага, то есть когда я делаю ShutDown, то договориться можно, а когда Eject — то нет?

Да потому, что при shutdown сначала тушатся все юзерские процессы, потом все сервисы, а когда уже никого не осталось — тогда начинаются всякие unmount.

S>Вот от тебя, Павел, я такого не ожидал.



S>В частности, при шатдауне винда прекрасно строит список "несогласных", показывает их мне, и даже даёт выбор между "дать шанс закончиться добровольно" и "пристрелить к такой-то матери".

Ты правда не понимаешь разницы между "вся система останавливается" и "мне надо флешку вытащить ничего больше не сломав"?

S>В частности, при гибернейте твоя программа прекрасно "отпустит" диск, так что его можно будет извлечь с нулевым риском для его файловой системы.

Ты не понимаешь процессы, которые при этом происходят.

S>Ну, только после пробуждения твоя программа словит ошибку обращения к диску — но это уже будет проблема этой программы (или пользователя, если он реально хотел, чтобы она всё-таки файл сохранила).

Это то же самое если ты при отключенном для данного девайса кэшировании просто вытащишь флешку через небольшое время после последней записи.

PD>>Программ таких, принудительно закрывающих хендлы файлов, немало

S>Если бы они нормально работали...
ProceXP работает как часы

PD>>https://serverfault.com/questions/1966/how-do-you-find-what-process-is-holding-a-file-open-in-windows

S>Смотрел. Почему не сделать это штатной фичей винды?
Зачем? В руках обычного юзверя разрушительность этой фичи тебя удивит.

S>А давай ты сам подумаешь, что ты должен сделать в своей программе, чтобы ОС могла с ней договориться.

... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[5]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Я много раз так делал: перезагружал систему, чтобы извлечь флешку.

А просто вытащить её было ну никак?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>При перезагрузке винда постоянно жалуется на мешающий ей перезагрузиться Explorer. У меня, правда, стоит Черепаха, и я не знаю, влияет ли это на результат.

Именно она и влияет.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[7]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:53
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Некорректно работающая программа — это программа не соблюдающая требования.

Какие именно требования?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[12]: Когда же винда научится извлекать устройства?
От: CreatorCray  
Дата: 10.01.24 18:56
Оценка:
Здравствуйте, m2user, Вы писали:

M>лучше принудительно отмонтировать ФС

+1
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[8]: Когда же винда научится извлекать устройства?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.01.24 19:38
Оценка: :))
Здравствуйте, CreatorCray, Вы писали:

N>>При этом флешку держат явно сервисы самой ОС

CC>С чего ты это вообще взял?

Зуб даю
Re: Когда же винда научится извлекать устройства?
От: Константин Б. Россия  
Дата: 10.01.24 19:58
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Я виндой пользуюсь дольше, чем среднестатистический сотрудник Microsoft на свете прожил,


А если бы пользовался еще чем-нибудь другим то возможно бы знал что проблема не специфична для винды.
Может быть там есть какие-то технические препятствия? 🤔 Да не, не может такого быть. Пользователь винды с таким стажем обязательно о таком знал бы.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.