Посылаю очередной луч позора в Редмонд.
Начиная примерно с восьмёрки, пацаны занимаются какой-то хернёй, решая несуществующие проблемы.
Когда они уже научатся нормально извлекать устройства?
До сих пор (Win 11, последние обновления) в 97 случаях из 100 винда продолжает с выдуманной беспомощностью рассказывать мне, что "я не смогла, наверное кто-то что-то использует"....
Кто-то? Что-то? Ты, @#$, операционная система или игрушка уровня "три в ряд"?
Посмотри, @!#$@#, кто этот "кто-то". И найди способ с ним договориться, чтобы он отдал хэндл по-хорошему, или пристрели его по-плохому.
Потому что и так понятно, что это какой-то из твоих же многочисленных говносервисов, который то ли там сканирует диск от вирусов, то ли индексирует картинки — в общем, ничем полезным не занимается, а только тратит мою батарейку.
Я виндой пользуюсь дольше, чем среднестатистический сотрудник Microsoft на свете прожил, и все "пользовательские программы", которые могли на мой внешний диск смотреть, закрыл первым делом ещё до того, как задуматься об извлечении устройства.
А если это какой-то очередной "дисковый кэш, который всё ещё выполняет отложенную операцию записи", то это гарантированное враньё. Например потому, что при Sleep/Hibernate почему-то flush всех кэшей занимает считанные секунды, так что даже запись свопа заканчивается быстрее, чем команда "безопасно извлечь" наконец-то показывает свое "нишмагла".
Единственное объяснение этому маразму, что мне приходит в голову — у них есть решение для этой проблемы. Но его откладывают до того момента, как выйдет очередная версия винды, настолько неудачная, что на неё согласится переходить 0% их userbase. Вот тогда фичу зарелизят — потому что она будет однозначной причиной переехать на всё что угодно, даже если там кнопку "Старт" придётся каждый раз искать при помощи Bing через AI-бота.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали: S>Начиная примерно с восьмёрки, пацаны занимаются какой-то хернёй, решая несуществующие проблемы.
Качество Windows после Гейтса вообще очень упало, но последние версии ("примерно с восьмёрки") — просто нечто. Я могу брызгать ядом 24/7, да что толку время тратить. Последнее, что резануло глаза: Майкрософт некогда писал в своих же собственных гайдлайнах для сторонних компаний, что если текст не входит, его надо обрезать с эллипсисом. Чтобы юзер понимал, что текст обрезан. Даже функция такая была в WinAPI: обрезать строку с эллипсисом под данный прямоугольник в данном контексте. В последних виндах это похерили, что регулярно приводит к фейлам в стиле "Главнокоман-дующий". Вот это что такое, например? (На картинке часть таскбара с кнопкой приложения).
Я, если бы не записал, сегодня ни за что бы не вспомнил и не догадался, что это за полюшко-поле.
Эмоциональную часть опускаю.
S>Посмотри, @!#$@#, кто этот "кто-то". И найди способ с ним договориться, чтобы он отдал хэндл по-хорошему, или пристрели его по-плохому.
Нельзя с ним договориться. Ну не хочет он закрыть хендл. А попросить его нет возможности.
Вот, к примеру, сделаю я программу, которая делает fopen, а потом этот хендл не закрывает. Сидит в памяти, чем-то занимается, процессор загружает в среднем на 0%, а хендл не закрывает.
Как ее попросить ? Никак.
Пристрелить можно, но моя программа закончив свою полезную деятельность с 0% загрузкой процессора, захочет результаты в файл записать. А тут выяснится, что хендл закрыт. Догадаешься сам, чем это кончится ?
Windows не имеет права прибивать хендлы процесссов. Это имеет право делать только пользователь, берущий тем самым на себя ответственность за последствия.
Программ таких, принудительно закрывающих хендлы файлов, немало
S>Потому что и так понятно, что это какой-то из твоих же многочисленных говносервисов, который то ли там сканирует диск от вирусов, то ли индексирует картинки — в общем, ничем полезным не занимается, а только тратит мою батарейку.
Возможно, но это ничего не меняет. Не может ОС иметь сервисы, с которыми можно договариваться. Вот просто подумай — что я должен сделать в своей программе, о которой написал выше, чтобы ОС могла с ней договориться ? Сделаю я из нее сервис, а то, о чем написал, так и оставлю.
With best regards
Pavel Dvorkin
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, rFLY, Вы писали:
FLY>В cmd папка или диск не открыты?
Когда открыты, то понятно.
Я иногда смотрю папку из Тотального Командира. Выхожу из нее. Пытаюсь извлечь устройство. Винда не дает. А когда я Командира закрою, тогда все нормально. Что бы это значило, я не понимаю. Винда — десятка.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Windows не имеет права прибивать хендлы процесссов. Это имеет право делать только пользователь, берущий тем самым на себя ответственность за последствия.
Тут же посыл в другом:
1. ОС не должна содержать бесполезные сервисы, которые только мешают пользователю. Или должна сама предлагать их отключить в случае проблем.
2. Судя по сообщению топикстартера, право она имеет прерывать эти процессы, в случае гибернейта, например. Просто так написали процесс безопасного удаления устройства, что при команде пользователя прерывания не происходит. Что бесит.
PD>Возможно, но это ничего не меняет. Не может ОС иметь сервисы, с которыми можно договариваться.
Почему нет? Сервис по индексации контента на флешках вполне может и должен иметь API, в которое будет стучаться ОС и говорить, что надо резко прерваться. В принципе многие необязательные фоновые сервисы должны иметь такие механизмы. Ты же не chkdsk запускаешь.
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, Privalov, Вы писали:
P>Когда открыты, то понятно.
Кто-то может думать, что это не блокирует, так как никаких файлов по этому пути не открыто (т.е. раз эксплорер не блокирует, то и это не должно, но это не так).
P>Я иногда смотрю папку из Тотального Командира. Выхожу из нее. Пытаюсь извлечь устройство. Винда не дает. А когда я Командира закрою, тогда все нормально. Что бы это значило, я не понимаю. Винда — десятка.
cmd блокирует только если ты в самой папке находишься. Можно закрыть cmd, а можно просто перейти в другую папку и прежняя разблокируется.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, rFLY, Вы писали:
FLY>cmd блокирует только если ты в самой папке находишься. Можно закрыть cmd, а можно просто перейти в другую папку и прежняя разблокируется.
Я в курсе. Сам про cmd иногда забываю. Но Командиром я из папки выхожу, а Винда почему-то думает, что я еще внутри. Может, это особенность Командира, не знаю. А когда я его совсем закрываю, жизнь налаживается.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Нельзя с ним договориться. Ну не хочет он закрыть хендл. А попросить его нет возможности.
Ага, то есть когда я делаю ShutDown, то договориться можно, а когда Eject — то нет?
Вот от тебя, Павел, я такого не ожидал.
PD>Вот, к примеру, сделаю я программу, которая делает fopen, а потом этот хендл не закрывает. Сидит в памяти, чем-то занимается, процессор загружает в среднем на 0%, а хендл не закрывает. PD>Как ее попросить ? Никак.
Повторюсь: несколько похожих задач были успешно решены примерно во времена Win7.
В частности, при шатдауне винда прекрасно строит список "несогласных", показывает их мне, и даже даёт выбор между "дать шанс закончиться добровольно" и "пристрелить к такой-то матери".
В частности, при гибернейте твоя программа прекрасно "отпустит" диск, так что его можно будет извлечь с нулевым риском для его файловой системы.
Ну, только после пробуждения твоя программа словит ошибку обращения к диску — но это уже будет проблема этой программы (или пользователя, если он реально хотел, чтобы она всё-таки файл сохранила).
PD>Windows не имеет права прибивать хендлы процесссов. Это имеет право делать только пользователь, берущий тем самым на себя ответственность за последствия.
Ну так дайте такую возможность пользователю. Что за детский сад?
PD>Программ таких, принудительно закрывающих хендлы файлов, немало
Если бы они нормально работали... PD>https://udalenie-fajlov.softok.info/
PD>Ну и сюда посмотри
PD>https://serverfault.com/questions/1966/how-do-you-find-what-process-is-holding-a-file-open-in-windows
Смотрел. Почему не сделать это штатной фичей винды?
S>>Потому что и так понятно, что это какой-то из твоих же многочисленных говносервисов, который то ли там сканирует диск от вирусов, то ли индексирует картинки — в общем, ничем полезным не занимается, а только тратит мою батарейку.
PD>Возможно, но это ничего не меняет. Не может ОС иметь сервисы, с которыми можно договариваться. Вот просто подумай — что я должен сделать в своей программе, о которой написал выше, чтобы ОС могла с ней договориться ?
А давай ты сам подумаешь, что ты должен сделать в своей программе, чтобы ОС могла с ней договориться.
PD>Сделаю я из нее сервис, а то, о чем написал, так и оставлю.
Даже если не делать сервис — как думаешь, в какой версии винды появилось сообщение WM_QUERYENDSESSION?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, Nuzhny, Вы писали:
N>1. ОС не должна содержать бесполезные сервисы, которые только мешают пользователю.
ОС не может решать, какие сервисы полезные, а какие нет.
>Или должна сама предлагать их отключить в случае проблем.
Хм. Ты предлагаешь, чтобы обычному пользователю ОС предлагала — а не отключить ли Вам "Брокер системных событий" ? Или "Клиент групповой политики" ?
Нет уж. Нужно ему — пусть идет в "Сервисы" и там отключает, беря тем самым ответственность на себя.
А то как бы после отключения пары-тройки сервисов не пришлось бы Windows переустанавливать...
N>2. Судя по сообщению топикстартера, право она имеет прерывать эти процессы, в случае гибернейта, например. Просто так написали процесс безопасного удаления устройства, что при команде пользователя прерывания не происходит. Что бесит.
Прерывать процессы ОС права не имеет, разве что это ее собственные процессы, которые ей полностью контролируются. Может быть, TrustedInstaller и может, или еще какие-то.
PD>>Возможно, но это ничего не меняет. Не может ОС иметь сервисы, с которыми можно договариваться.
N>Почему нет? Сервис по индексации контента на флешках вполне может и должен иметь API, в которое будет стучаться ОС и говорить, что надо резко прерваться. В принципе многие необязательные фоновые сервисы должны иметь такие механизмы. Ты же не chkdsk запускаешь.
Прерваться совсем — это есть, net stop, но при этом он не прервется, а закончит работу, и можно его будет разве что заново запустить net start.
Вот только это лишь просьба — SERVICE_CONTROL_STOP. Он может не прерваться. Аналогично тому, как нажатие на крестик в верхнем правом углу окна означает лишь посылку WM_CLOSE, а закроется ли окно — зависит от того, что сделает обработчик.
Здравствуйте, Sinclair, Вы писали:
S>Ага, то есть когда я делаю ShutDown, то договориться можно, а когда Eject — то нет? S>Вот от тебя, Павел, я такого не ожидал.
Зря не ожидал. Извини за большое цитирование. Все из Соломона-Руссиновича. Выделено мной
Остановка службы
Когда Winlogon вызывает Windows-функцию ExitWindowsEx, эта функция от-
правляет сообщение Csrss — процессу подсистемы Windows — для вызова
Csrss-процедуры завершения работы. Csrss осуществляет циклический перебор
активных процессов и уведомляет их, что система завершает работу. Для каж-
дого системного процесса, за исключением SCM, Csrss ждет несколько секунд,
количество которых определено параметром HKU\.DEFAULT\Control Panel\
Desktop\WaitToKillAppTimeout (по умолчанию 20 с), пока не будет осуществлен
выход из процесса, после чего переходит к следующему процессу. Когда Csrss
встречает процесс SCM, он также уведомляет его о завершении работы системы,
но использует лимит времени, определенный для SCM. Csrss распознает SCM,
используя идентификатор процесса, который Csrss сохранил при регистрации
SCM с Csrss с помощью функции RegisterServicesProcess в ходе инициализа-
ции системы. Лимит времени для SCM отличается от лимита других процессов,
поскольку Csrss знает, что SCM обменивается данными со службами, которым
при остановке нужно осуществить подчистку после своей работы. Поэтому ад-
министратору может понадобиться настроить только лимит времени, выделяе-
мый SCM. Параметр лимита времени SCM находится в разделе реестра HKLM\
SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout и по умолчанию
составляет 12 секунд.
Обработчик остановки SCM отвечает за рассылку уведомлений всем службам,
запросившим уведомление об остановке при своей инициализации с помощью
SCM. SCM-функция ScShutdownAllServices осуществляет циклический перебор
записей служб в базе данных SCM в поиске служб, желающих получить уведомле-
ние об остановке, и отправляет каждой из них команду на остановку. Для каждой
службы, которой отправляется команда на остановку, SCM записывает параметр,
указывающий время ожидания службы, значение которого служба также определяет
при своей регистрации с помощью SCM. SCM отслеживает самое продолжительное
указанное время ожидания. После отправки сообщений об остановке SCM ждет,
либо пока одна из служб, которая была оповещена об остановке, не осуществит
выход, либо пока не пройдет самое продолжительное указанное время.
Если указанное время истечет, а служба не осуществит выход, SCM определя-
ет, не отправила ли одна или несколько служб, от которых ожидался выход, со-
общение SCM о том, что эта служба находится в процессе своей остановки. Если
хотя бы одна служба продвинулась в этом процессе, SCM снова ждет истечения
установленного времени ожидания. SCM продолжает выполнение этого цикла
ожидания, пока либо все службы не осуществят выход, либо ни одна из служб,
в отношении которых осуществляется ожидание, не уведомит его о нахождении
в процессе свой остановки за тот период времени, который указан для ожидания.
Пока SCM занимается отправкой приказов службам на остановку и ожида-
нием их выхода, Csrss ждет выхода от SCM. Если ожидание, осуществляемое
Csrss, заканчивается до того, как будет осуществлен выход SCM (по истечении
времени, указанного в параметре WaitToKillServiceTimeout), Csrss принудительно
завершает работу SCM и продолжает процесс завершения работы системы. Таким
образом, службы, давшие сбой при остановке за отведенное для этого время,
останавливаются принудительно. Такая логика позволяет системе завершать
работу вопреки тем службам, которые никогда не остановятся в результате де-
фектов своей конструкции, но это также означает, что службы, требующие более
20 секунд, не завершат своих действий по остановке.
Кроме того, поскольку порядок остановки ничем не обусловлен, службы,
которые могут зависеть от других служб, для своей первоочередной остановки
не имеют способа сообщить об этом SCM, могут не иметь никаких шансов на
подчистку после своей работы.
В связи с этими потребностями в Windows реализуются предостановочные
уведомления и порядок остановки для противодействия проблемам, вызывае-
мым этими двумя сценариями. Предостановочные уведомления рассылаются
с использованием того же механизма, который используется для уведомлений
об остановке. Уведомления рассылаются тем службам, которые запросили предостановочные
уведомления посредством API-функции SetServiceStatus, и SCM
будет ждать от них подтверждения.
Идея, заложенная в этих уведомлениях, заключается в пометке тех служб,
у которых на подчистку может уйти много времени (это, к примеру, может
касаться служб сервера базы данных), и в выделении им большего количества
времени на завершение их работы. SCM отправит запрос на выяснение хода про-
цесса и будет 3 минуты ждать завершения работы тех служб, которые на него
ответили. Если служба за это время не ответит, она будет принудительно оста-
новлена в рамках процедуры завершения работы системы; в противном случае
она может продолжать свое выполнение столько времени, сколько потребуется,
пока она будет продолжать отвечать на запросы SCM.
Службы, участвующие в предварительной остановке (preshutdown), могут
также определить порядок остановки по отношению к другим службам, также
участвующим в предварительной остановке. Службы, зависящие от первооче-
редной остановки других служб (например, Group Policy должна дождаться
завершения работы службы обновления Windows Update), могут указать свои
зависимости от остановок других служб в параметре реестра HKLM\SYSTEM\
CurrentControlSet\Control\PreshutdownOrder.
Так что здесь намного сложнее. Если коротко — Windows при определенных условиях убивает сервисы при shutdown. Там это можно, все равно помирать. А тут нельзя. Иначе может рухнуть все зависимое от этого сервиса. Только с его согласия. А это есть — SERVICE_CONTROL_STOP
PD>>Вот, к примеру, сделаю я программу, которая делает fopen, а потом этот хендл не закрывает. Сидит в памяти, чем-то занимается, процессор загружает в среднем на 0%, а хендл не закрывает. PD>>Как ее попросить ? Никак. S>Повторюсь: несколько похожих задач были успешно решены примерно во времена Win7.
Ну не знаю, что именно было решено. Механизм этот ЕМНИП не менялся.
S>В частности, при шатдауне винда прекрасно строит список "несогласных", показывает их мне, и даже даёт выбор между "дать шанс закончиться добровольно" и "пристрелить к такой-то матери".
Обычных программ, добавь. А не сервисов.
S>В частности, при гибернейте твоя программа прекрасно "отпустит" диск, так что его можно будет извлечь с нулевым риском для его файловой системы. S>Ну, только после пробуждения твоя программа словит ошибку обращения к диску — но это уже будет проблема этой программы (или пользователя, если он реально хотел, чтобы она всё-таки файл сохранила).
Так и сейчас совсем не обязательно, что если ты выдернешь флешку, с ее ФС будут проблемы. Ну не пишет, допустим, моя программа туда сейчас.
А при Hibernate все программы остановлены, так что точно не пишет. Ну а потом...
PD>>Windows не имеет права прибивать хендлы процесссов. Это имеет право делать только пользователь, берущий тем самым на себя ответственность за последствия. S>Ну так дайте такую возможность пользователю. Что за детский сад? PD>>Программ таких, принудительно закрывающих хендлы файлов, немало S>Если бы они нормально работали...
Потому что рискованно. Эти программы ты запускаешь на свой страх и риск, и MS ни за что не отвечает, если ты их используешь. А дай такую штатную возможность — закроет юзер все хендлы твоего любимого MS SQL именно в то время, когда он там что-то перестраивает, а потом начнутся вопли — где моя БД ?
PD>>Сделаю я из нее сервис, а то, о чем написал, так и оставлю. S>Даже если не делать сервис — как думаешь, в какой версии винды появилось сообщение WM_QUERYENDSESSION?
Точно не знаю, но в 3.0 уже было.
Да, это запрос на согласие закончиться при окончании сессии.
Для сервисов аналоги — SERVICE_ACCEPT_STOP (можно остановить) и SERVICE_ACCEPT_SHUTDOWN (получает уведомление при завершении работы системы).
Но никто не мешает программе потом при WM_ENDSESSION не закончиться, равно как и просто при WM_CLOSE главного окна. И сервису тоже. Тогда его будут убивать при shutdown — см. выше.
А обычную программу убивать не будут, если ты не подтвердишь ее убийство. Равно и как при WM_CLOSE она если не захочет закончиться, то только через Task Manager или аналогичными средствами.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Так что здесь намного сложнее. Если коротко — Windows при определенных условиях убивает сервисы при shutdown. Там это можно, все равно помирать. А тут нельзя. Иначе может рухнуть все зависимое от этого сервиса. Только с его согласия. А это есть — SERVICE_CONTROL_STOP
А вы понимаете, что сервисы всё равно придётся убить, так как флешку надо извлечь. Я много раз так делал: перезагружал систему, чтобы извлечь флешку. Так что сервисы в любом случае будут убиты. А если нет разницы, то зачем перезагружать систему?
И каждый день — без права на ошибку...
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Хм. Ты предлагаешь, чтобы обычному пользователю ОС предлагала — а не отключить ли Вам "Брокер системных событий" ? Или "Клиент групповой политики" ? PD>Нет уж. Нужно ему — пусть идет в "Сервисы" и там отключает, беря тем самым ответственность на себя.
Так про то и речь — что неясно, а кто вообще держит-то? И зачем?
Ну обычный же случай — вставил флешку, закинул файл, дождался окончания, пытаюсь вынуть — и "устройство все еще используется". Кем, почему, как понять —
Использовался же вроде только проводник для записи. Закрыл его — а она все равно "используется". Или плюешь и вынимаешь или хоть комп перезагружай. Из-за флешки, блин.
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Privalov, Вы писали:
FLY>>cmd блокирует только если ты в самой папке находишься. Можно закрыть cmd, а можно просто перейти в другую папку и прежняя разблокируется.
P>Я в курсе. Сам про cmd иногда забываю. Но Командиром я из папки выхожу, а Винда почему-то думает, что я еще внутри. Может, это особенность Командира, не знаю. А когда я его совсем закрываю, жизнь налаживается.
Командир кривой, держит папку? У Far'а такой проблемы нет
Здравствуйте, Sinclair, Вы писали:
S>Посылаю очередной луч позора в Редмонд. S>Начиная примерно с восьмёрки, пацаны занимаются какой-то хернёй, решая несуществующие проблемы. S>Когда они уже научатся нормально извлекать устройства?
У меня всё работает. Но я обычно копирую в Far'е, а потом выхожу с флешки. Иногда приходится подождать, потому что видимо система не успела ещё сбросить записанное на флешку. Если в такой момент её вытащить — будет битый файл, хорошо если не флешка
BFE>А вы понимаете, что сервисы всё равно придётся убить, так как флешку надо извлечь. Я много раз так делал: перезагружал систему, чтобы извлечь флешку. Так что сервисы в любом случае будут убиты. А если нет разницы, то зачем перезагружать систему?
Не обязательно. Программа, лишившаяся доступа к своему хендлу, вполне может продолжать функционировать. Скажем, хендл открывается в начале основного цикла и закрывается в его конце, и есть нормальная обработка ошибок. При потере хендла пострадает лишь то, что при этой итерации цикла должно быть записано, а в следующей итерации будет все опять в порядке.
Да и для извлечения флешки не обязательно что-то убивать. Можно просто ее выдернуть . Есть, конечно, шанс нарваться на неприятности, но далеко не всегда. И скорее всего сервис, который ее "держит", убит не будет. Или автоматически рестартанет, если настроено.
With best regards
Pavel Dvorkin
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, fmiracle, Вы писали:
F>Так про то и речь — что неясно, а кто вообще держит-то?
Так инструменты от SysInternals в руки.
>И зачем?
А на этот вопрос, кроме автора, едва ли кто-то ответит. Вот в моем примере — зачем я открываю файл на старте и закрываю при окончании ? Она и держит хендл все свое время работы. А можно в нужный момент открыть-записать-закрыть в режиме append. Тогда держать почти никогда не будет.
F>Ну обычный же случай — вставил флешку, закинул файл, дождался окончания, пытаюсь вынуть — и "устройство все еще используется". Кем, почему, как понять —
F>Использовался же вроде только проводник для записи. Закрыл его — а она все равно "используется". Или плюешь и вынимаешь или хоть комп перезагружай. Из-за флешки, блин.
SysInternals и смотри. Может, повезет, поймешь.
With best regards
Pavel Dvorkin
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, fmiracle, Вы писали:
F>Использовался же вроде только проводник для записи. Закрыл его — а она все равно "используется". Или плюешь и вынимаешь или хоть комп перезагружай. Из-за флешки, блин.
Ты закрыл окно "проводник". Но проводник никуда не делся, он всё ещё работает. И да, файл может типа и скопировался, но какие-нибудь кеши ещё сбрасываются
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Антон, ты меня удивил. Не ждал от тебя такого... S>>Посмотри, @!#$@#, кто этот "кто-то". И найди способ с ним договориться, чтобы он отдал хэндл по-хорошему, или пристрели его по-плохому. PD>Нельзя с ним договориться. Ну не хочет он закрыть хендл. А попросить его нет возможности. PD>Вот, к примеру, сделаю я программу, которая делает fopen, а потом этот хендл не закрывает. Сидит в памяти, чем-то занимается, процессор загружает в среднем на 0%, а хендл не закрывает. PD>Как ее попросить ? Никак.
А по-моему, он полностью прав. В пользу чего есть два соображения.
Первое. Винда — цельный продукт. По крайней мере, она так позиционируется. Уж поверь, если бы я мог поставить винды без Битлокера или без Edge', я бы так и поступил. И без ихней телеметрии я тоже как-нибудь проживу. Но Майкрософт не даёт вариантов. Или бери всё, или ничего. А раз так, то и тестировать взаимодействие своих компонентов должна она, и должна делать это хорошо. Такой косяк не прошёл бы ни через одного хорошего начальника QA, с которыми я работал. Один бы взвился как ракета, пообещал, что научит сраных кодерков выпускать качественные продукты, открыл кучу тикетов, наговорил бы много обидных слов, переоткрывал тикет каждый раз заново, даже если бы он воспроизвёлся один раз из тысячи, с едкими комментариями. И добился своего. Другой бы (он раньше работал в полиции) говорил бы исключительно вежливо, а сам за спиной провёл бы скрытное расследование, и выяснил, кто в чём виноват и почему. И добился своего. Говорят, в Майкрософте вместо таких сейчас юнит-тесты друг друга тестируют. А скоро будут чат-боты тестировать юнит-тесты, а юнит-тесты — чат-ботов. Или уже. Вот и результат.
Второе. Если есть протокол (а сценарии работы с флешкой — это протокол в широком смысле), и он приводит к проблемам, значит он плохо спроектирован точка Я приводил недавно в пример, как Андроид принудительно разрегистрирует колбэки, которые юзер ставил в настройках, если колбэк не отвечает по истечении таймаута. Так вот, в самом частом юз-кейсе (точно не меньше половины случаев, а может и девять из десяти) там вообще колбеки не нужны. Андроид мог бы просто пассивно ждать запросов от программ. (В этом случае проблема с таймаутом просто не возникает). Следовательно, надо было оформить два сценария, с колбэками и без. Но нет! Какой-то гуглогений проектирования решил, что статика — частный случай динамики, и теперь каждый раз при запуске тяжёлой отладочной сессии или просто ресурсоёмкого приложения у меня принудительно слетают все настройки. Я не знаю, где именно Майкрософт напорол с флешками, но там явно надо искать примерно такую ошибку проектирования.
P.S. Кстати, помимо флешек есть сходная проблема. При перезагрузке винда постоянно жалуется на мешающий ей перезагрузиться Explorer. У меня, правда, стоит Черепаха, и я не знаю, влияет ли это на результат. Если нет, Майкрософт виновен по первому пункту, если да — по второму
Здравствуйте, Pavel Dvorkin, Вы писали:
F>>Так про то и речь — что неясно, а кто вообще держит-то? PD>Так инструменты от SysInternals в руки.
Это как-то оверкил.
>>И зачем? PD>А на этот вопрос, кроме автора, едва ли кто-то ответит.
А вот про это и речь.
Я воспользовался только ОС windows и ее проводником. Авторы тут — microsoft. Вот Sinclair и просит их как-то внутри себя разобраться, чтобы не удерживать флешку дольше, чем нужно. Реально винда с большой вероятностью то ли превьюшки генерирует для всех файлов на флешке, то ли на вирусы анализирует. Ни то ни другое мне не нужно для флешки, которую я собираюсь извлечь, но управлять этим процессом я не могу.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>ОС не может решать, какие сервисы полезные, а какие нет.
Не может или не хочет? Вполне можно заложить в логику извлечения устройства приостановку работы служб, которые мешают. Почему нет? Сделать список служб, которые ни в каком случае нельзя приостанавливать, а остальным отсылать соответствующее сообщение.
>>Или должна сама предлагать их отключить в случае проблем. PD>Хм. Ты предлагаешь, чтобы обычному пользователю ОС предлагала — а не отключить ли Вам "Брокер системных событий" ? Или "Клиент групповой политики" ?
Нет, я предлагаю сделать механизм прерывания работы этих служб. Даже интерфейс, а не механизм — он есть готовый, вплоть до того, перезапускать ли службу после сбоев, сколько раз пробовать это делать и с какими таймаутами. Тут нет никакого риска.
PD>Нет уж. Нужно ему — пусть идет в "Сервисы" и там отключает, беря тем самым ответственность на себя. PD>А то как бы после отключения пары-тройки сервисов не пришлось бы Windows переустанавливать...
Так пользователю же не сообщается какая служба мешает. В том-то и проблема. Так-то службу можно и через диспетчер задач приостановить, интерфейс есть.
PD>Прерваться совсем — это есть, net stop, но при этом он не прервется, а закончит работу, и можно его будет разве что заново запустить net start. PD>Вот только это лишь просьба — SERVICE_CONTROL_STOP. Он может не прерваться. Аналогично тому, как нажатие на крестик в верхнем правом углу окна означает лишь посылку WM_CLOSE, а закроется ли окно — зависит от того, что сделает обработчик.
Здравствуйте, fmiracle, Вы писали:
PD>>Так инструменты от SysInternals в руки.
F>Это как-то оверкил.
Почему ? Они уже дано являются инструментами от Микрософт
>>>И зачем? PD>>А на этот вопрос, кроме автора, едва ли кто-то ответит.
F>А вот про это и речь.
F>Я воспользовался только ОС windows и ее проводником.
А Антивирус есть ? Какой ?
>Авторы тут — microsoft. Вот Sinclair и просит их как-то внутри себя разобраться, чтобы не удерживать флешку дольше, чем нужно. Реально винда с большой вероятностью то ли превьюшки генерирует для всех файлов на флешке, то ли на вирусы анализирует. Ни то ни другое мне не нужно для флешки, которую я собираюсь извлечь, но управлять этим процессом я не могу.
Соглашусь, если это действительно так. Но у меня нет данных, что это так.
И почему анализ на вирусы не нужен ? Тебе лично, возможно, и не нужен. А Если зловредная программа что-то пишет, пишет и пишет, и до поры этот никак не похоже на вирус, а потом оказывается вирусом ?
With best regards
Pavel Dvorkin
Re[3]: Когда же винда научится извлекать устройства?
A>А по-моему, он полностью прав. В пользу чего есть два соображения.
Отвечу лишь на первое
Что такое цельный продукт — я не знаю. Зато точно знаю, что это открытый продукт в том смысле, что позволяет исполнять программы не от MS. Вот для закрытого продукта, все ПО которого сделала одна фирма, она за все и отвечает. А если может исполняться и ПО других фирм, то отвечать за это ПО она не может. Например, не может отвечать за какой-то антивирус, который некорректно работает с хендлами. И т.д.
With best regards
Pavel Dvorkin
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, Privalov, Вы писали:
P>Иногда. Far неплох. Но он не графический, мне это немного мешает.
Чем мешает? Могу поверить, что чувству прекрасного не удовлетворяет. Но чем мешает? Размер окна не так быстро изменить можно?
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Nuzhny, Вы писали:
PD>>ОС не может решать, какие сервисы полезные, а какие нет.
N>Не может или не хочет? Вполне можно заложить в логику извлечения устройства приостановку работы служб, которые мешают. Почему нет? Сделать список служб, которые ни в каком случае нельзя приостанавливать, а остальным отсылать соответствующее сообщение.
Все это есть. Но не директивно. Не то, чтобы нельзя XYZ, а не хотят XYZ
SERVICE_ACCEPT_PAUSE_CONTINUE
0x00000002
Службу можно приостановить и продолжить.
Этот код элемента управления позволяет службе получать уведомления SERVICE_CONTROL_PAUSE и SERVICE_CONTROL_CONTINUE .
SERVICE_ACCEPT_PRESHUTDOWN
0x00000100
Служба может выполнять задачи предварительного завершения.
Этот код элемента управления позволяет службе получать уведомления SERVICE_CONTROL_PRESHUTDOWN . Обратите внимание, что ControlService и ControlServiceEx не могут отправить это уведомление; Только система может отправить его.
Windows Server 2003 и Windows XP: Это значение не поддерживается.
SERVICE_ACCEPT_SHUTDOWN
0x00000004
Служба получает уведомление при завершении работы системы.
Этот код элемента управления позволяет службе получать уведомления SERVICE_CONTROL_SHUTDOWN . Обратите внимание, что ControlService и ControlServiceEx не могут отправить это уведомление; Только система может отправить его.
SERVICE_ACCEPT_STOP
0x00000001
Службу можно остановить.
Этот код элемента управления позволяет службе получать уведомления SERVICE_CONTROL_STOP .
>>>Или должна сама предлагать их отключить в случае проблем. PD>>Хм. Ты предлагаешь, чтобы обычному пользователю ОС предлагала — а не отключить ли Вам "Брокер системных событий" ? Или "Клиент групповой политики" ?
N>Нет, я предлагаю сделать механизм прерывания работы этих служб. Даже интерфейс, а не механизм — он есть готовый, вплоть до того, перезапускать ли службу после сбоев, сколько раз пробовать это делать и с какими таймаутами. Тут нет никакого риска.
Так все это есть в оснастке "Сервисы". И остановить, и приостановить, и перезапуск и т.д. Плюс (не все) в Task Manager
Плюс net start/stop/pause/continue
Что-то я не пойму, что ты хочешь... Чтобы сообщали имя сервиса, который держит хендл ? Или чтобы ему автоматически делали net stop ?
PD>>Прерваться совсем — это есть, net stop, но при этом он не прервется, а закончит работу, и можно его будет разве что заново запустить net start. PD>>Вот только это лишь просьба — SERVICE_CONTROL_STOP. Он может не прерваться. Аналогично тому, как нажатие на крестик в верхнем правом углу окна означает лишь посылку WM_CLOSE, а закроется ли окно — зависит от того, что сделает обработчик.
N>А как же SERVICE_CONTROL_PAUSE?
N>https://learn.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-controlserviceexa
А так же
Notifies a service that it should pause. The hService handle must have the SERVICE_PAUSE_CONTINUE access right.
Здравствуйте, Pavel Dvorkin, Вы писали:
BFE>>А вы понимаете, что сервисы всё равно придётся убить, так как флешку надо извлечь. Я много раз так делал: перезагружал систему, чтобы извлечь флешку. Так что сервисы в любом случае будут убиты. А если нет разницы, то зачем перезагружать систему? PD>Не обязательно.
Обязательно, раз есть "шанс нарваться на неприятности".
И каждый день — без права на ошибку...
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, pagid_, Вы писали:
P>>Иногда. Far неплох. Но он не графический, мне это немного мешает. _>Чем мешает? Могу поверить, что чувству прекрасного не удовлетворяет. Но чем мешает? Размер окна не так быстро изменить можно?
В смысле размер окна не изменить быстро? Берёшь за угол и тащишь, он меняется. Хотя, у меня ConEmu стоит, но в десятке вроде консоль на нём как раз и написана вроде
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>... А если может исполняться и ПО других фирм, то отвечать за это ПО она не может. Например, не может отвечать за какой-то антивирус, который некорректно работает с хендлами. И т.д.
Если программа работает некорректно, то вот пускай её система и убивает. Это её, системы, работа.
И каждый день — без права на ошибку...
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Что-то я не пойму, что ты хочешь... Чтобы сообщали имя сервиса, который держит хендл ? Или чтобы ему автоматически делали net stop ?
Сейчас нет ничего, просто жди неизвестно чего и неизвестно сколько времени.
При этом флешку держат явно сервисы самой ОС, всякие индексаторы и превьютеры. Они не сильно важны и критичны. Я хочу, чтобы при невозможности извлечь устройство выдавался список процессов, которые её держат. Если это пользовательские программы, то их сможет закрыть сам пользователь — ему решать. Если сервисы, то предложение их прервать для извлечения. Как лучше прервать — решение за Майкрософт, это же её сервисы. Не получилось прервать — пользователь сам, зная имена сервисов, может найти их в диспетчере задач и прервать ручками.
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, B0FEE664, Вы писали:
PD>>... А если может исполняться и ПО других фирм, то отвечать за это ПО она не может. Например, не может отвечать за какой-то антивирус, который некорректно работает с хендлами. И т.д. BFE>Если программа работает некорректно, то вот пускай её система и убивает. Это её, системы, работа.
Остается лишь дать определение некорректно работающей программы.
Исключение — понятно, а вот остальное ?
With best regards
Pavel Dvorkin
Re[7]: Когда же винда научится извлекать устройства?
N>При этом флешку держат явно сервисы самой ОС, всякие индексаторы и превьютеры. Они не сильно важны и критичны. Я хочу, чтобы при невозможности извлечь устройство выдавался список процессов, которые её держат. Если это пользовательские программы, то их сможет закрыть сам пользователь — ему решать. Если сервисы, то предложение их прервать для извлечения. Как лучше прервать — решение за Майкрософт, это же её сервисы. Не получилось прервать — пользователь сам, зная имена сервисов, может найти их в диспетчере задач и прервать ручками.
Выше уже писали, что совсем необязательно прерывать процессы. Достаточно принудительно отмонтировать ФС с инвалидированием хэндлов.
Нормальная программа должна быть устойчива к инвалидации (обычный сценарий — сетевой каталог отвалился). Тем более Вы сам пишете, что все эти индексаторы и превьюеры Вам не критичны.
Другое дело, что у MS отмонтирование как-то странно сделано
Есть команда mountvol <mount_point> /p
/P Removes the volume mount point from the specified directory,
dismounts the volume, and makes the volume not mountable.
You can make the volume mountable again by creating a volume
mount point.
C:\Users\Myuser>mountvol e:\ /p
The volume is still in use. A force dismount was issued and current handles
to the volume have been invalidated.
Вроде то, что нужно, но тем не менее safely remove всё равно не отрабатывает (проверял на виртуалке).
S>Единственное объяснение этому маразму, что мне приходит в голову — у них есть решение для этой проблемы. Но его откладывают до того момента
Вспомнилось что если команде chkdsk скормить занятый диск, то она скажет так (нагуглил):
Chkdsk may run if this volume is dismounted first. ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID. Would you like to force a dismount on this volume? (Y/N)
То есть могут, если захотят.
Как много веселых ребят, и все делают велосипед...
Здравствуйте, Sinclair, Вы писали:
S>До сих пор (Win 11, последние обновления) в 97 случаях из 100 винда продолжает с выдуманной беспомощностью рассказывать мне, что "я не смогла, наверное кто-то что-то использует"....
Частенько бывает, что использует открытый Task Manager. Закрой его, и винда отдаст зажатую флешку
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, Nuzhny, Вы писали:
N>Сейчас нет ничего, просто жди неизвестно чего и неизвестно сколько времени. N>При этом флешку держат явно сервисы самой ОС, всякие индексаторы и превьютеры. Они не сильно важны и критичны. Я хочу, чтобы при невозможности извлечь устройство выдавался список процессов, которые её держат. Если это пользовательские программы, то их сможет закрыть сам пользователь — ему решать. Если сервисы, то предложение их прервать для извлечения. Как лучше прервать — решение за Майкрософт, это же её сервисы. Не получилось прервать — пользователь сам, зная имена сервисов, может найти их в диспетчере задач и прервать ручками.
Вот теперь понятно.
Нет. Решительно не согласен.
Возьмем среднего юзера. Во внутренностях системы он не разбирается, а вот в запущенных им программах вполне.
Как правило (не придирайся) программа связана с окном (или консолью). Закрыл окно — закрылась и программа. Или в худшем случае надо на иконку в трее нажать и "Exit" там выполнить.
Это все он знает, и в 9x% случаев это работает.
Ну и наконец разные программы чаще всего (опять не придирайся) друг с другом не связаны. Одну закроешь — на других не скажется.
Поэтому разрешить ему убить программу можно.
А вот про сервисы он знает очень мало. В лучшем случае заглядывал на вкладку в Task Manager. Черти там разберут, что есть что.
Служба AVCTP — это что такое ? От кого она зависит ? Кто от нее зависит ? Кто зависит от тех, от кого она зависит ? И т.п.
Выяснить мы с тобой сможем, если понадобится, но обычный юзер — едва ли.
К чему приведет убиение кого-то из них ? На этот вопрос и мы с тобой не всегда ответим.
А еще учти, что приличная часть сервисов живет в svchost, количество процессов которого растет с каждой новой версией Windows прямо таки с ужасающей скоростью. Убить один сервис в svchost нельзя, можно только весь svchost убить. К каким последствиям это приведет — даже думать не хочу.
Плюс реестр. Сервисы на него завязаны, и если там что-то окажется не так — как бы дело не закончилось переустановкой Windows.
Ну а продвинутым пользователям ничего не стоит зайти в оснастку "Services" и там копаться. Они должны понимать, что они делают и понимать, что они отвечают за свои действия.
А давать всем вопрос : "Подтвердите убиение сервиса XYZ" — нет уж, увольте.
With best regards
Pavel Dvorkin
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, ononim, Вы писали:
S>>Единственное объяснение этому маразму, что мне приходит в голову — у них есть решение для этой проблемы. Но его откладывают до того момента O>Вспомнилось что если команде chkdsk скормить занятый диск, то она скажет так (нагуглил): O>
Chkdsk may run if this volume is dismounted first. ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID. Would you like to force a dismount on this volume? (Y/N)
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>>... А если может исполняться и ПО других фирм, то отвечать за это ПО она не может. Например, не может отвечать за какой-то антивирус, который некорректно работает с хендлами. И т.д. BFE>>Если программа работает некорректно, то вот пускай её система и убивает. Это её, системы, работа. PD>Остается лишь дать определение некорректно работающей программы.
Некорректно работающая программа — это программа не соблюдающая требования.
И каждый день — без права на ошибку...
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, B0FEE664, Вы писали:
PD>>Остается лишь дать определение некорректно работающей программы. BFE>Некорректно работающая программа — это программа не соблюдающая требования.
Предложи внешний механизм , позволяющий отличить корректные (в твоем определении) программы от некорректных.
Мой пример программы, которая на старте открывает файл и при окончании закрывает — корректная или нет ?
А она ведь вызовет эту проблему.
Или запретишь держать в течение всего времени работы открытый хендл ? Ну тогда ты много программ запретишь. Посмотри сам по Process Explorer, кто там и что открыл, да и все их запрети.
А на каком диске открывается хендл — этого я не знаю и знать не могу. Пользователь выберет.
Да и нет такого требования не делать это. Имею право.
А это лишь простейший пример.
With best regards
Pavel Dvorkin
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Так хоть выдерни флешку, хоть убей процесс, который ее держит — неприятности одинаково возможны.
Неприятность с одним файлом != повреждению файловой системы пятитерабайтного накопителя, на котором у меня весь семейный видеоархив.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Предложи внешний механизм , позволяющий отличить корректные (в твоем определении) программы от некорректных. PD>Мой пример программы, которая на старте открывает файл и при окончании закрывает — корректная или нет ? PD>А она ведь вызовет эту проблему. PD>Или запретишь держать в течение всего времени работы открытый хендл ? Ну тогда ты много программ запретишь. Посмотри сам по Process Explorer, кто там и что открыл, да и все их запрети. PD>А на каком диске открывается хендл — этого я не знаю и знать не могу. Пользователь выберет. PD>Да и нет такого требования не делать это. Имею право.
Ну вот, всё же просто, сами же написали "Пользователь выберет". Раз пользователь выберет, значит, надо пользователю указать на его выбор, что вот, этой программой вы блокируете процесс размонтирования флешки: закрыть? убить? отменить?
И каждый день — без права на ошибку...
Re[11]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Мой пример программы, которая на старте открывает файл и при окончании закрывает — корректная или нет ?
некорректная
PD>Или запретишь держать в течение всего времени работы открытый хендл ?
держать можно сколько угодно, но на запрос DBT_DEVICEQUERYREMOVE нужно уметь подписываться и корректно закрывать хендлы по его приходу,
это и есть требование к программам
Здравствуйте, 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>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Privalov, Вы писали:
P>Но Командиром я из папки выхожу, а Винда почему-то думает, что я еще внутри.
Потому что видимо он всё равно держит handle.
Far в таком раскладе ведёт себя корректно
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, Nuzhny, Вы писали:
N>1. ОС не должна содержать бесполезные сервисы, которые только мешают пользователю.
А с чего ты взял что они бесполезные и только мешают?
N>Просто так написали процесс безопасного удаления устройства, что при команде пользователя прерывания не происходит.
И как именно должен происходить процесс такого прерывания?
N>Сервис по индексации контента на флешках вполне может и должен иметь API, в которое будет стучаться ОС и говорить, что надо резко прерваться.
А с чего ты вообще взял что проблема у топикстартера именно в этом сервисе?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, fmiracle, Вы писали:
F>Ну обычный же случай — вставил флешку, закинул файл, дождался окончания, пытаюсь вынуть — и "устройство все еще используется". F> Кем, почему, как понять —
Как дети, ей богу!
Возьми да посмотри!
Инструментария хоть жопом жуй, тот же официальный ProceXP.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>А еще учти, что приличная часть сервисов живет в svchost, количество процессов которого растет с каждой новой версией Windows прямо таки с ужасающей скоростью. Убить один сервис в svchost нельзя, можно только весь svchost убить. К каким последствиям это приведет — даже думать не хочу.
Их нынче стали разделять по принципу один сервис — один процесс, именно чтоб падение одного не заваливало остальные.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, 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>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Alekzander, Вы писали:
A>При перезагрузке винда постоянно жалуется на мешающий ей перезагрузиться Explorer. У меня, правда, стоит Черепаха, и я не знаю, влияет ли это на результат.
Именно она и влияет.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Я виндой пользуюсь дольше, чем среднестатистический сотрудник Microsoft на свете прожил,
А если бы пользовался еще чем-нибудь другим то возможно бы знал что проблема не специфична для винды.
Может быть там есть какие-то технические препятствия? 🤔 Да не, не может такого быть. Пользователь винды с таким стажем обязательно о таком знал бы.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, ononim, Вы писали:
S>>Единственное объяснение этому маразму, что мне приходит в голову — у них есть решение для этой проблемы. Но его откладывают до того момента O>Вспомнилось что если команде chkdsk скормить занятый диск, то она скажет так (нагуглил): O>
Chkdsk may run if this volume is dismounted first. ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID. Would you like to force a dismount on this volume? (Y/N)
O>То есть могут, если захотят.
Так и ты извлечь тоже можешь, если захочешь. Дергаешь флешку из разъема, да и всё. All open handles are now invalid.
Re[3]: Когда же винда научится извлекать устройства?
Chkdsk may run if this volume is dismounted first. ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID. Would you like to force a dismount on this volume? (Y/N)
O>>То есть могут, если захотят. S>Так и ты извлечь тоже можешь, если захочешь. Дергаешь флешку из разъема, да и всё. All open handles are now invalid.
Это не тоже самое. Если ее отмонтировать через указанный выше FSCTL_DISMOUNT_VOLUME, то кэши все запишутся на диск. Повреждение данных возможна только на уровне приложений, которые чтото не дозаписали в свои файлы. А если дергать флешку из разъема, то может повредиться ФС, а в особо тяжелых случаях даже сама флэшка.
Как много веселых ребят, и все делают велосипед...
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, Nuzhny, Вы писали:
N>>>При этом флешку держат явно сервисы самой ОС CC>>С чего ты это вообще взял? N>Зуб даю
Зачем? Можно ж просто взять тулы и посмотреть.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Что такое цельный продукт — я не знаю. Зато точно знаю, что это открытый продукт в том смысле, что позволяет исполнять программы не от MS. Вот для закрытого продукта, все ПО которого сделала одна фирма, она за все и отвечает. А если может исполняться и ПО других фирм, то отвечать за это ПО она не может. Например, не может отвечать за какой-то антивирус, который некорректно работает с хендлами. И т.д.
Человек же пишет: "это какой-то из твоих же многочисленных говносервисов". Значит, имеет основания так думать.
Лично я ему верю безоговорочно. До того, как поставить несколько левых инструментов типа упомянутой Черепахи, я специально долго крутил последнюю версию винды с исключительно майкрософтовскими программами на предмет изучения внутреннего устройства и взаимодействия компонентов. Потому что засиделся на Семёрке и навёрстывал упущенное. Так вот, это ужас. Выбираешь скринсейвер (который, кстати, теперь выводит глюкавую картинку — такого позора я даже не ожидал), а он ломает настройки экрана блокировки. Настраиваешь выключение монитора — оно ломает настройки скринсейвера. Такое чувство, что про интеграционные тесты там не слышали.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
A>>При перезагрузке винда постоянно жалуется на мешающий ей перезагрузиться Explorer. У меня, правда, стоит Черепаха, и я не знаю, влияет ли это на результат. CC>Именно она и влияет.
Значит, херово спроектировано. Кстати, ни разу не удивил. Я, помнится, об этом читал в блоге разработчиков Tortoise. Им, бедолагам, пришлось специальные ключи для сброса кеша лепить, они объясняли, где и как налажали эксплорерники.
Я довольно много писал в формате расширений для разнообразных майкрософтовских продуктов, всякие там аддоны для офиса и шарика (для эксплорера, правда, ничего не писал), там местами был лютый ад. Больше не пишу, слава богу.
И кстати, рядом есть Android, и там файловый эксплорер — не сквозная часть системы. Было бы в виндах так сделано, конкуренция заставила бы команду Windows Explorer стараться лучше. Но как тогда навязывать юзеру OneDrive и это лютое говно — папку Personal В общем, я думаю, мы быстрее увидим Android на PC, чем такие нововведения.
Здравствуйте, Alekzander, Вы писали:
A>Им, бедолагам, пришлось специальные ключи для сброса кеша лепить, они объясняли, где и как налажали эксплорерники.
При чём вообще explorer к дисковому кэшу? Это очень разные вещи.
Кинь ссылку на первоисточник плз, а то что то в твоём пересказе это странно звучит.
A>там файловый эксплорер — не сквозная часть системы.
Дык и на винде это абсолютно нафиг не нужная пришлёпка.
Я всё делаю Far-ом, explorer не пользую ни для чего.
A>Было бы в виндах так сделано, конкуренция заставила бы команду Windows Explorer стараться лучше.
А кто им вообще пользуется?
A> Но как тогда навязывать юзеру OneDrive и это лютое говно — папку Personal
А что это?
Я на 10ке про и ни одного ни другого у меня нету.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, m2user, Вы писали: M>С т.з. потенциального повреждения ФС чем "опасное" извлечение флешки хуже внезапного отключения электропитания? M>У Вас же есть план на такой сценарий?
Да, есть. У меня в ноуте — батарея на 8 часов работы. Этого хватает для того, чтобы успеть аккуратно завершить файловую систему, если пропадёт питание в доме.
M>P.S. считаю, что прибивать процессы плохая идея, лучше принудительно отмонтировать ФС, если ОС предоставляет средства для этого (писал об этом выше
)
Да, совершенно верно. Не обязательно убивать всю программу. Надо дать ей шанс добровольно освободить хэндлы, а уж если она не отреагировала — инвалидировать их.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
S>>Когда они уже научатся нормально извлекать устройства? CC>Huh? Не то чтоб я сильно часто подключаю внешнего storage но никогда никаких проблем не возникало. Что с USB что с iSCSI всё отмонтируется моментально, единственное когда оно говорит что девайс in use когда я забываю что у меня ещё один instance Far на этот диск в данный момент смотрит.
У меня — постоянно такая проблема.
CC>Это не то чтобы просто, надо enumerate handles для всех процессов, и найти те, кто держит mount point.
Именно. Как бы не rocket science.
S>>Потому что и так понятно, что это какой-то из твоих же многочисленных говносервисов, который то ли там сканирует диск от вирусов, то ли индексирует картинки — в общем, ничем полезным не занимается, а только тратит мою батарейку. CC>Возьми ProceXP и поищи в нём Handle на root твоего диска, сразу будет понятно кто.
Дальше что?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
CC>>Это не то чтобы просто, надо enumerate handles для всех процессов, и найти те, кто держит mount point. S>Именно. Как бы не rocket science.
Это не такая простая операция как тебе кажется.
S>Дальше что?
ProceXP под админом? В главном его окне в заголовке написано "... (Administrator)"?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Sinclair, Вы писали:
S>Единственное объяснение этому маразму, что мне приходит в голову — у них есть решение для этой проблемы. Но его откладывают до того момента, как выйдет очередная версия винды, настолько неудачная, что на неё согласится переходить 0% их userbase. Вот тогда фичу зарелизят — потому что она будет однозначной причиной переехать на всё что угодно, даже если там кнопку "Старт" придётся каждый раз искать при помощи Bing через AI-бота.
По-моему это просто деградация. Старым сотрудникам уже ничего не надо, новые знают в основном вебню и кубернетес, а пользуются они маком, и Windows не знают и знать не желают, и делать удобной не хотят.
Взять например нововведение Висты, integrity level. Я сейчас не вспомню точную формулировку проблемы, но что-то в духе "Visual Studio, запущенная под учётной записью пользователя, входящего в группу администраторов, но без явного запуска от администратора, не может добавить сайт то ли в IIS, то ли в IIS Express, и для исправления этого надо зайти в %windir@\...\не помню\...\, кликнуть там на конфигурационном файле правой кнопкой, посмотреть свойства и нажать ОК". То есть понятно, что от этого у файла изменится тот самый integrity level и он станет доступен для Visual Studio, но почему до сих пор не сделано отображение integrity level на файле в самом проводнике? Почему в списке служб Винды, в их свойствах нет списка прав доступа и возможности его изменить? Ведь по факту он есть.
И сама инженерная культура в экосистеме MS всё же странноватая. Почему-то именно люди работающие в ней создают неведомых монстров с IIS (с, прости господи, "фильтрами"), локальными шарами и кучей системных джобов. Такое ощущение, что система сделана удобной для энергичных дураков, они в неё понабежали лет 30 назад и понастроили таких вавилонов из кода, что без ИИ не разберёшься.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Но никто не мешает программе потом при WM_ENDSESSION не закончиться, равно как и просто при WM_CLOSE главного окна. И сервису тоже. Тогда его будут убивать при shutdown — см. выше. PD>А обычную программу убивать не будут, если ты не подтвердишь ее убийство. Равно и как при WM_CLOSE она если не захочет закончиться, то только через Task Manager или аналогичными средствами.
Жаль что в айти нет своего Котлонадзора.
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Служба AVCTP — это что такое ? От кого она зависит ? Кто от нее зависит ? Кто зависит от тех, от кого она зависит ? И т.п.
Действительно, что это такое, почему нельзя нормально описать сервис, и почему нельзя логировать взаимодействие программ с сервисом и показывать — кто же с ним взаимодействовал за последние 10, 30, 60, 1200 минут
PD>А еще учти, что приличная часть сервисов живет в svchost, количество процессов которого растет с каждой новой версией Windows прямо таки с ужасающей скоростью. Убить один сервис в svchost нельзя, можно только весь svchost убить. К каким последствиям это приведет — даже думать не хочу.
Ну так почему это не переделали уже давно, чем им так svchost нравится? С какой целью сделана эта консолидация, 1 мегабайт ОЗУ экономить? На фоне приложений на Electron.js это не нужно
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, mike_rs, Вы писали:
_>держать можно сколько угодно, но на запрос DBT_DEVICEQUERYREMOVE нужно уметь подписываться и корректно закрывать хендлы по его приходу, _>это и есть требование к программам
Для этого нужна специальная социальная служба, чтобы к каждому трудолюбивому Хуньфуню (хоть из провинции Хуньдзынь, хоть в Перми, хоть в Висконсине), автору тупой программы, приезжал человек с дубинкой. Я уверен, что такая служба возможна даже на добровольных началах, желающие найдутся, "уно-дос-трес, я достану" и далее по известному тексту.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали: CC>Это не такая простая операция как тебе кажется.
1. Даже если непростая — что, в Microsoft закончились программисты, способные решать сложные задачи?
2. Если в нынешней архитектуре винды эта задача решается плохо, то кто мешает разработать новую архитектуру? Вон, в десятке нашли фатальный недостаток, и выпустили ажно новый мажорный релиз (хотя ещё четыре года назад казалось, что после десятки уже развиваться некуда). Например, не так давно Микрософт нагнула всех производителей железа, потребовав печатать на коробках серийный номер устройства. Вот это — сложная задача, потому что она адски увеличивает стоимость логистики. И ничего, справились, хватило и силы, и воли. S>>Дальше что? CC>ProceXP под админом? В главном его окне в заголовке написано "... (Administrator)"?
Да. Дальше что?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Неприятность с одним файлом != повреждению файловой системы пятитерабайтного накопителя, на котором у меня весь семейный видеоархив.
Сочувствую. Хотя если там NTFS, то шансы получить полное разрушение FS близки к нулю. Максимум, что может быть — неприятности с некоторыми файлами, которые именно сейчас (или чуть раньше) записываются.
With best regards
Pavel Dvorkin
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
CC>Их нынче стали разделять по принципу один сервис — один процесс, именно чтоб падение одного не заваливало остальные.
Может быть и так, но до полного разделения еще очень далеко.
With best regards
Pavel Dvorkin
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, mike_rs, Вы писали:
PD>>Мой пример программы, которая на старте открывает файл и при окончании закрывает — корректная или нет ?
_>некорректная
PD>>Или запретишь держать в течение всего времени работы открытый хендл ?
_>держать можно сколько угодно, но на запрос DBT_DEVICEQUERYREMOVE нужно уметь подписываться и корректно закрывать хендлы по его приходу, _>это и есть требование к программам
В теории совершенно верно, не возразить.
На практике — если используются какие-то 3dparty библиотеки, написанные к тому же на чистом C/C++, без WIN API, которые об этом и знать не знают, далеко не так легко этому требованию следовать, особенно если исходников нет.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Pavel Dvorkin, Вы писали: PD>>Нельзя с ним договориться. Ну не хочет он закрыть хендл. А попросить его нет возможности. S>Ага, то есть когда я делаю ShutDown, то договориться можно, а когда Eject — то нет?
Если ты действительно пользовался виндой столько времени сколько утверждаешь то не может быть что не сталкивался с тем что shutdown тоже не срабатывает.
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, mike_rs, Вы писали:
_>держать можно сколько угодно, но на запрос DBT_DEVICEQUERYREMOVE нужно уметь подписываться и корректно закрывать хендлы по его приходу, _>это и есть требование к программам
Ну так пользователю никто не мешает пользоваться исключительно программами сертифицированными на бейджик Designed for Windows 95.
А если пользователь пользуется чем попало — то ССЗБ.
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, Слава, Вы писали:
С>Это должно быть было встроено в систему 15 лет назад и доступно в диспетчере задач, в проводнике и проч.
Эти инструменты в руках обычного пользователя позволят ему расхреначить очень многое, так что пусть остаются достоянием людей, которые понимают что они делают.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Может быть и так, но до полного разделения еще очень далеко.
Я прошёлся по списку сервисов у себя и нашёл всего две пары:
RpcSs + RpcEptMapper
BFE + mpssvc
И всё. Остальные по сервису на процесс.
W10 Pro
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, Слава, Вы писали:
PD>>Служба AVCTP — это что такое? PD>> От кого она зависит?
Идём на вкладку Dependencies и видим что зависит от RPC сервиса.
PD>> Кто от нее зависит?
На той же вкладке видим что никто не зависит.
PD>> Кто зависит от тех, от кого она зависит ? И т.п.
Там же, разворачиваем зависимость и видим их зависимости.
С>Действительно, что это такое, почему нельзя нормально описать сервис
У сервиса есть description, который относительно вменяемо заполнен у "родных" сервисов
Для этого: "This is Audio Video Control Transport Protocol service"
С> и почему нельзя логировать взаимодействие программ с сервисом и показывать — кто же с ним взаимодействовал за последние 10, 30, 60, 1200 минут
Потому что это тонны никому нафиг не всравшихся логов, которые жрут дисковое место, память и CPU.
С>Ну так почему это не переделали уже давно
Давно уже переделали. Теперь подавляющее большинство имеют по отдельному процессу на сервис.
С> чем им так svchost нравится?
Это launcher сервисов.
С> С какой целью сделана эта консолидация
Чтоб не тратить зря ресурсы.
С>На фоне приложений на Electron.js это не нужно
Это как раз электрон нахрен не нужен.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>что, в Microsoft закончились программисты, способные решать сложные задачи?
Глядя на качество их продуков — похоже что да, закончились.
S>Если в нынешней архитектуре винды эта задача решается плохо
Она в любой архитектуре решается не очень чтобы хорошо.
S> то кто мешает разработать новую архитектуру?
Время, деньги, целесообразность.
S>хотя ещё четыре года назад казалось, что после десятки уже развиваться некуда
Кому казалось?
CC>>ProceXP под админом? В главном его окне в заголовке написано "... (Administrator)"? S>Да. Дальше что?
Повтори поиск несколько раз, иногда оно не видит динамически меняющуюся картину полностью.
Можешь ещё поискать подстроку "\Device\Volume{" — так некоторые хитрожопые к дискам лазят когда надо более низкоуровневый доступ
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
КБ>Если ты действительно пользовался виндой столько времени сколько утверждаешь то не может быть что не сталкивался с тем что shutdown тоже не срабатывает.
В 10ке эти клоуны смищное сделали: они сначала тушат сеть а потом идут отмонтировать iSCSI, которому надо сеть.
Так что shutdown имеет все шансы тупо надолго задуматься и комп в итоге ребутнётся по watchdog
В 7ке это работало как часы.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Кто-то? Что-то? Ты, @#$, операционная система или игрушка уровня "три в ряд"? S>Посмотри, @!#$@#, кто этот "кто-то". И найди способ с ним договориться, чтобы он отдал хэндл по-хорошему, или пристрели его по-плохому.
Было бы неплохо ещё и писать кто именно блочит чтобы можно было его руками убить если это не shadow copy(?) который копирует данные на флешку.
А вообще, всё верно сказал, винда превращается из ОС для пользователей в гугл хром с магазином.
Sic luceat lux!
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
_>>держать можно сколько угодно, но на запрос DBT_DEVICEQUERYREMOVE нужно уметь подписываться и корректно закрывать хендлы по его приходу, _>>это и есть требование к программам
КБ>Ну так пользователю никто не мешает пользоваться исключительно программами сертифицированными на бейджик Designed for Windows 95. КБ>А если пользователь пользуется чем попало — то ССЗБ.
Все верно, но тут речь о том, что теперь встроенные системные сервисы этот бейджик не получили и не смогут, ибо не выполняют требований. И за это поделие МС берет с нас деньги.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Kernan, Вы писали:
K>А вообще, всё верно сказал, винда превращается из ОС для пользователей в гугл хром с магазином.
Для многих пользователей это самое то.
А всякие извращенцы с флешками идут на х... в линукс.
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
CC>Повтори поиск несколько раз, иногда оно не видит динамически меняющуюся картину полностью.
Повторил. Неизменно превосходный результат. Диск по прежнему не отдаёт.
Нет там никакой динамической картины.
CC>Можешь ещё поискать подстроку "\Device\Volume{" — так некоторые хитрожопые к дискам лазят когда надо более низкоуровневый доступ
Поискал — есть ряд хэндлов на мой Google Drive. Про диск D там по-прежнему ничего нет.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Когда же винда научится извлекать устройства?
КБ>Если ты действительно пользовался виндой столько времени сколько утверждаешь то не может быть что не сталкивался с тем что shutdown тоже не срабатывает.
Простите, это аргумент в пользу чего?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Vzhyk2, Вы писали:
V>Для многих пользователей это самое то.
Я не согласен. Это тренд последних 10 лет считать пользователей тупыми, а это не так. Понабрали дизайнеров, да ещё и тупых вместо инженеров принимать решения, вот всё и скатилось. Популярная ошибка винды последних лет "что-то пошло не так, мы отправляем отчёт в МС", но что пошло не так и что делать если это "не так" повторяется теперь не понять и не починить. V>А всякие извращенцы с флешками идут на х... в линукс.
Винда всегда была ОС для продвинутых пользователей которые могли что-то нагуглить, настроить систему под себя, что-то отключить и принять решения в каких-то рамках. Это потом всё стали прятать чтобы кто-то не удалил дефендер или не отключили обновления, либо не удалили их КОРТАНУ которая встроена в систему, но которая, как оказалось, оказалась нафиг никому не нужна и в итоге выпелена самими MS.
Если бы кто-то хотел себе простую ОС, он бы купил МАК, т.к. МАК это не ОС, это именно что контейнер для приложений и экосистема из коробки.
Здравствуйте, CreatorCray, Вы писали:
A>>Им, бедолагам, пришлось специальные ключи для сброса кеша лепить, они объясняли, где и как налажали эксплорерники. CC>При чём вообще explorer к дисковому кэшу? Это очень разные вещи.
А кто додумал "дисковый"? Кеш не дисковый, а иконочный.
CC>Кинь ссылку на первоисточник плз, а то что то в твоём пересказе это странно звучит.
Вот потому и странно звучит. Постараюсь найти, но с ходу не получилось. Кстати, популярный ответ на вопрос на SO "У меня не обновляются иконки, как дальше жить?" — taskkill /f /im tgitcache.exe. Ещё кто-то чистит кеш, выключая оверлеи и снова выключая в настройках Tortoise. В общем, народ сбрасывает кеш по-своему, как умеет.
Тут не надо быть Лобачевским, чтобы понять: первопричина этих проблем в том, что Explorer не запроектирован на динамические оверлеи (для одного и того же файла). Видимо, единственный сценарий, который был в голове у его разработчиков, это "поставил декодер-пак типа K-Lite, и поверх всех файлов с видео будет логотипчик K-Lite".
A>>Было бы в виндах так сделано, конкуренция заставила бы команду Windows Explorer стараться лучше. CC>А кто им вообще пользуется?
A>> Но как тогда навязывать юзеру OneDrive и это лютое говно — папку Personal CC>А что это? CC>Я на 10ке про и ни одного ни другого у меня нету.
Я так понимаю, OneDrive это майкрософтовская реализация популярного во всём мире способа монетизации (которым пользуются и Яндекс, и Гугл), в виде подписки за хранение файлов. Они, поди, на нём больше зарабатывают, чем на лицензиях.
А папка Personal — это его представление на уровне виндового UI.
Нашёл в сети скриншот, то, что отмечено стрелочкой, из интерфейса так просто не убирается. Может, конечно, можно, если найти, где деинсталлируется OneDrive... Или поставить PowerToys... Но у меня была другая цель, когда я 11-ую поставил: имперсонировать простого виндоюзера, чтобы потом держать в голове этот образ при работе над UI.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Image: lock1.png
Я правильно понимаю, что эта картинка должна означать "ничего не знаю, у меня всё работает"?
PD>Image: lock.png
А вот за это положен приз. Действительно, монитор ресурсов смог таки найти того, кто держит хэндл.
Неожиданно, что "работающий как часы" ProcExp его так и не увидел, как ни тыкай его носом — даже если в конкретный процесс встать.
Это был некий "Com Surrogate". После ещё некоторого гугления удалось найти аналогичную проблему и понять, что речь о WSL2.
Было бы намного проще, если бы это упражнение выполнил не я, а парни из Редмонда. Чтобы при выполнении Eject мне выпадал диалог типа "Ваше устройство забрала и не отпускает подсистема WSL2".
Это бы привело к тому, что разработчикам WSL2 вовремя отвесили люлей. Потому что сейчас это выглядит как "мешает полуторым инвалидам", а на самом деле "полтора человека сумели раскрутить цепочку до конца и найти первопричину".
И мешает это примерно всем пользователям докера под виндой.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Когда же винда научится извлекать устройства?
КБ>А если бы пользовался еще чем-нибудь другим то возможно бы знал что проблема не специфична для винды.
Эээ... Ну вот я пользуюсь Линуксом. Там нет такой проблемы
Ну то есть ты можешь держать флешку, если какой-то конкретной программой (например редактором) открыл файл на флешке.
Но редактор закрыл, — флешка отмонтировалась.
Так чтобы ОС сама неизвестно почему держала флешку — нет такого.
КБ>Может быть там есть какие-то технические препятствия? 🤔 Да не, не может такого быть.
Ну, раз такие проблемы в Линуксе решены, значит они решаемы.
Течёт вода Кубань-реки куда велят большевики.
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Странно. Попробуй поищи по D:\$. И убедись, что в заголовке PE есть Administrator.
Да всё есть. И если он по "D:\" не находит, то по "D:\$" и подавно не найдёт. PD>C $ начинаются имена метафайлов NTFS (а кстати, там NTFS или FAT ?)
exFAT PD>У меня находит для всех дисков.
Я за тебя очень рад. И по-прежнему не понимаю, что заставляет тебя спорить с очевидным: поиск и показ программ, виновных в игнорировании DBT_DEVICEQUERYREMOVE, должен быть встроен в Windows Explorer и его Safe Remove фичу, а не в разработчитцкие тулзы.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, rFLY, Вы писали:
FLY>Здравствуйте, Privalov, Вы писали:
P>>Когда открыты, то понятно. FLY>Кто-то может думать, что это не блокирует, так как никаких файлов по этому пути не открыто (т.е. раз эксплорер не блокирует, то и это не должно, но это не так).
Эксплорер, кстати, вполне себе блокирует. Но он обрабатывает запрос на извлечение устройства, поэтому при eject все окна эксплорера, которые смотрят на извлекаемый диск, оперативно закрываются. P>>Я иногда смотрю папку из Тотального Командира. Выхожу из нее. Пытаюсь извлечь устройство. Винда не дает. А когда я Командира закрою, тогда все нормально. Что бы это значило, я не понимаю. Винда — десятка.
Надо полагать, что в командире есть какие-то фоновые потоки, которые сканируют активный фолдер, и не успевают отключиться.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
КБ>А если бы пользовался еще чем-нибудь другим то возможно бы знал что проблема не специфична для винды. КБ>Может быть там есть какие-то технические препятствия?
Какие же?
КБ>🤔 Да не, не может такого быть. Пользователь винды с таким стажем обязательно о таком знал бы.
Ну расскажите про технические препятствия...
И каждый день — без права на ошибку...
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Marty, Вы писали: M>Ты закрыл окно "проводник". Но проводник никуда не делся, он всё ещё работает. И да, файл может типа и скопировался, но какие-нибудь кеши ещё сбрасываются
Да, бывает, что запись на диск идёт от процесса System.
Кстати, для этого частного сценария тоже было бы невредно сделать реализацию в том самом Safe Remove — чтобы показывало градусник сброса кеша. А не "сиди, проверяй её каждые пять секунд — может, отдаст".
Тем более, что причины не отдавать диск бывают разными, и для них есть разные решения:
1. Выполняется отложенная запись: надо подождать, т.к. принудительное прерывание попортит как минимум файл, а то и всю ФС.
2. Какая-то программа держит открытым файл на запись (winword и helloworld.docx) — нужно сохранить файл, программу закрыть
3. Какая-то программа "смотрит" на фолдер или файл в рид-онли режиме — можно выдёргивать флешку, или принудительно выполнять unmount, или просто инвалидировать хэндлы — всё равно ничего страшного не произойдёт.
Слепо применять какой-то один способ для всех случаев не выходит, а нормального, удобного, и 100% рабочего способа отличить одно от другого нет.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Я правильно понимаю, что эта картинка должна означать "ничего не знаю, у меня всё работает"?
Помягче. Без первой части. Я привел пример, что у меня работает, а какие там у тебя процессы — я не знаю, и как говорится, я Вам не скажу за всю Одессу.
PD>>Image: lock.png S>А вот за это положен приз. Действительно, монитор ресурсов смог таки найти того, кто держит хэндл.
S>Неожиданно, что "работающий как часы" ProcExp его так и не увидел, как ни тыкай его носом — даже если в конкретный процесс встать.
Если еще раз повторится, сделай вот что. Возьми из resmon ID этого процесса и посмотри в PE все открытые хендлы этого процесса. Думаю, там что-то найдется. Может, имя не содержит D:
S>Было бы намного проще, если бы это упражнение выполнил не я, а парни из Редмонда. Чтобы при выполнении Eject мне выпадал диалог типа "Ваше устройство забрала и не отпускает подсистема WSL2".
Вообще-то да. Кстати, не знаю, как насчет дисков, но что касается файлов, FAR показывает, почему его нельзя удалить.
Вот только удалить все же не дает. И правильно — нечего Telegram лишать этого файла (хотя я и не знаю, зачем он ему нужен)
With best regards
Pavel Dvorkin
Re[9]: Когда же винда научится извлекать устройства?
На диске NTFS всЁ файлы. И boot sector файл, и MFT файл, и прочие метафайлы. Нет там ничего, кроме файлов.
А в FAT есть области, которые не файлы. Таблица FAT и корневой каталог не файлы.
Поэтому если "занята" именно эта таблица (или ее часть) или корневой каталог, то есть захват, но нет хендла, то PE найти не может. А resmon может, но он о хендлах и не говорит.
PD>>У меня находит для всех дисков. S>Я за тебя очень рад. И по-прежнему не понимаю, что заставляет тебя спорить с очевидным: поиск и показ программ, виновных в игнорировании DBT_DEVICEQUERYREMOVE, должен быть встроен в Windows Explorer и его Safe Remove фичу, а не в разработчитцкие тулзы.
Как ты себе это представляешь ?
WM_DEVICECHANGE message
Return TRUE to grant the request.
Ну вернуло мое приложение TRUE (кстати, DefWindowProc скорее всего TRUE и вернет, иначе все приложения начнут блокировать, даже те, которым все это совсем не интересно и не нужно, и поэтому они явно его не обрабатывают).
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>А в FAT есть области, которые не файлы. Таблица FAT и корневой каталог не файлы. PD>Поэтому если "занята" именно эта таблица (или ее часть) или корневой каталог, то есть захват, но нет хендла, то PE найти не может. А resmon может, но он о хендлах и не говорит.
По идее, такого не может быть. Что такое "занята"? Ты намекаешь, что в винде можно "открыть" каталог, не имея на него хэндла?
PD>Как ты себе это представляешь ?
Прекрасно представляю. PD>WM_DEVICECHANGE message
PD>Return TRUE to grant the request.
PD>Ну вернуло мое приложение TRUE (кстати, DefWindowProc скорее всего TRUE и вернет). Согласен я, согласен...
PD>А хендл не закрыло. Дальше что ?
Ну давай ты сам подумаешь, а?
Ну вот если на WM_QUERYENDSESSION приложение согласилось, а само не стало закрываться, то что мы делаем?
Вообще мне непонятен твой стокгольмский синдром. Ты же вроде бы разработчик, а не маркетолог.
Почему тогда вместо того, чтобы подумать, как решить инженерную задачу, ты предпочитаешь рассуждать о том, что её решать не нужно, невозможно, и вообще она уже решена?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Помягче. Без первой части. Я привел пример, что у меня работает, а какие там у тебя процессы — я не знаю, и как говорится, я Вам не скажу за всю Одессу.
Ну так я привёл свою картинку. Какой вывод я должен сделать из твоей?
Кстати — у тебя попытка сделать Eject диску H к чему приводит? К отказу, или все программы быстренько отпускают хэндлы?
PD>Если еще раз повторится, сделай вот что. Возьми из resmon ID этого процесса и посмотри в PE все открытые хендлы этого процесса. Думаю, там что-то найдется. Может, имя не содержит D:
Ну вот теперь оно перестало повторяться. Какой-то уникальный порядок запуска WSL, подключения винта, и попытки его обратно извлечь, вызывает такое поведение.
S>>Было бы намного проще, если бы это упражнение выполнил не я, а парни из Редмонда. Чтобы при выполнении Eject мне выпадал диалог типа "Ваше устройство забрала и не отпускает подсистема WSL2".
PD>Вообще-то да. Кстати, не знаю, как насчет дисков, но что касается файлов, FAR показывает, почему его нельзя удалить.
Диски ничем особенным от файлов не отличаются. И уж если гражданский FAR способен не просто сказать Sharing violation, а указать ФИО виновника, то уж винда-то могла бы как минимум не хуже подсуетиться. PD>Вот только удалить все же не дает. И правильно — нечего Telegram лишать этого файла (хотя я и не знаю, зачем он ему нужен) PD>Image: lock3.png
Ну, всё правильно. Теперь пользователь по крайней мере знает, из какой программы нужно выйти, если ему охота удалить этот файл.
А ведь тоже, наверное, можно было послать пользователя нахрен в Sysinternals и ResMon.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
PD>>А в FAT есть области, которые не файлы. Таблица FAT и корневой каталог не файлы. PD>>Поэтому если "занята" именно эта таблица (или ее часть) или корневой каталог, то есть захват, но нет хендла, то PE найти не может. А resmon может, но он о хендлах и не говорит. S>По идее, такого не может быть. Что такое "занята"? Ты намекаешь, что в винде можно "открыть" каталог, не имея на него хэндла?
Для таблицы FAT точно никаких хендлов быть не может. А ее драйвер "открывает", то есть получает доступ к ней.
С каталогами сложнее. Строго говоря, даже в NTFS хендл на каталоги получить нельзя, разве что для backup операций.
Когда же просто работаем с файлами, получаем хендлы на них. На каталог не получаем. Не Unix тут все же.
Как там внутри все же обращаются с каталогами при обычном доступе к файлам — не помню.
S>Ну давай ты сам подумаешь, а?
Я давно уже подумал. Лет так 20 назад, когда разбирался с тем, как устроена Windows
S>Ну вот если на WM_QUERYENDSESSION приложение согласилось, а само не стало закрываться, то что мы делаем?
Ничего. Оно не разрешает закончить сеанс.
Можем его убить в известном тебе диалоге. Но это окончание приложения, а приложения запускаются от УЗ, сессия которого сейчас и закрывается. О том, почему можно разрешить юзеру убивать приложения, а сервисы нельзя, я писал вчера, повторять не буду.
S>Вообще мне непонятен твой стокгольмский синдром. Ты же вроде бы разработчик, а не маркетолог.
Антон, ну зачем такая демагогия ?
S>Почему тогда вместо того, чтобы подумать, как решить инженерную задачу, ты предпочитаешь рассуждать о том, что её решать не нужно, невозможно, и вообще она уже решена?
Вроде об этом тут уже столько понаписано, и мной, и не мной, что еще раз повторяться не буду. И дело тут вовсе не инженерной задаче (ее решить можно), а в последствиях такого решения для конечных юзеров, которые не понимают, когда что можно сделать, а когда нет.
Вот тут я изложил свою точку зрения наиболее цельно
PD>>Помягче. Без первой части. Я привел пример, что у меня работает, а какие там у тебя процессы — я не знаю, и как говорится, я Вам не скажу за всю Одессу. S>Ну так я привёл свою картинку. Какой вывод я должен сделать из твоей?
Что хотя бы в одном случае PE все же показывает
S>Кстати — у тебя попытка сделать Eject диску H к чему приводит? К отказу, или все программы быстренько отпускают хэндлы?
Диск давно в ящике лежит, проверять не хочется.
PD>>Если еще раз повторится, сделай вот что. Возьми из resmon ID этого процесса и посмотри в PE все открытые хендлы этого процесса. Думаю, там что-то найдется. Может, имя не содержит D: S>Ну вот теперь оно перестало повторяться. Какой-то уникальный порядок запуска WSL, подключения винта, и попытки его обратно извлечь, вызывает такое поведение.
Вполне возможно. Я же написал : "Если еще раз повторится"...
S>>>Было бы намного проще, если бы это упражнение выполнил не я, а парни из Редмонда. Чтобы при выполнении Eject мне выпадал диалог типа "Ваше устройство забрала и не отпускает подсистема WSL2".
Это опять хождение по кругу. Написать они могли бы, а вот поручится что неграмотный юзер не натворит потом бед, нельзя.
S>Диски ничем особенным от файлов не отличаются. И уж если гражданский FAR способен не просто сказать Sharing violation, а указать ФИО виновника, то уж винда-то могла бы как минимум не хуже подсуетиться. PD>>Вот только удалить все же не дает. И правильно — нечего Telegram лишать этого файла (хотя я и не знаю, зачем он ему нужен) PD>>Image: lock3.png S>Ну, всё правильно. Теперь пользователь по крайней мере знает, из какой программы нужно выйти, если ему охота удалить этот файл.
Верно. Вот тольо этот неграмотный юзер если вздумает "выходить" из сервиса, то мало ему, возможно, потом не покажется.
Пойми , наконец, что этот вопрос не технический. Технически получить эту информацию ничего не стоит. А вот предпринимать какие-то действия , получив ее, юзеру дать нельзя до тех пор, пока он не станет разбираться как следует в том, что можно делать и что нельзя.
S>А ведь тоже, наверное, можно было послать пользователя нахрен в Sysinternals и ResMon.
Вот туда его и нужно послать. Если он разбирается в PE и умеет искать в ResMon — тогда он может на свой страх и риск что-то и сделать.
А иначе...
System : Отсоединить устройство нельзя, потому что оно занято svchost, PID 1234. Закончить svchost (знаю, что просто так его не убить, но систем?
User, радостно : Да!
Синий экран. Занавес.
With best regards
Pavel Dvorkin
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, alpha21264, Вы писали:
A>Эээ... Ну вот я пользуюсь Линуксом. Там нет такой проблемы
А я на винде с подобными проблемами как у ТС не сталкивался ни разу. Я правда не часто пользуюсь флешками, но все же.
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
PD>>Image: lock.png S>А вот за это положен приз. Действительно, монитор ресурсов смог таки найти того, кто держит хэндл.
Ты что, даже не пытался найти прогу которая блокирует?
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Что хотя бы в одном случае PE все же показывает
Ну так и у меня он для диска С: дофига всего находит.
PD>Это опять хождение по кругу. Написать они могли бы, а вот поручится что неграмотный юзер не натворит потом бед, нельзя.
То есть без этой информации неграмотный юзер, выдирающий устройство из машины т.к. заколебался ждать, бед не натворит....
Детсад, как он есть, увы
PD>Верно. Вот тольо этот неграмотный юзер если вздумает "выходить" из сервиса, то мало ему, возможно, потом не покажется.
С чего бы вдруг? С каких пор у нас сервисы стали неадекватно реагировать на stop и pause запросы?
PD>Пойми , наконец, что этот вопрос не технический. Технически получить эту информацию ничего не стоит.
Вот именно. PD>А вот предпринимать какие-то действия , получив ее, юзеру дать нельзя до тех пор, пока он не станет разбираться как следует в том, что можно делать и что нельзя.
Что за наивная вера в то, что предпринимать какие-то действия без информации безопаснее, чем информированные?
PD>Вот туда его и нужно послать. Если он разбирается в PE и умеет искать в ResMon — тогда он может на свой страх и риск что-то и сделать.
То есть, Far, по-вашему, действует неправильно?
PD>А иначе...
PD>System : Отсоединить устройство нельзя, потому что оно занято svchost, PID 1234. Закончить svchost (знаю, что просто так его не убить, но систем? PD>User, радостно : Да! PD>Синий экран. Занавес.
Кривляться тебе не идёт.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, rFLY, Вы писали: S>>А вот за это положен приз. Действительно, монитор ресурсов смог таки найти того, кто держит хэндл. FLY>Ты что, даже не пытался найти прогу которая блокирует?
Пытался. Но ProcessExplorer ничего не видит. Мне не пришло в голову поискать ResMon-ом.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, rFLY, Вы писали:
FLY>Здравствуйте, alpha21264, Вы писали:
A>>Эээ... Ну вот я пользуюсь Линуксом. Там нет такой проблемы FLY>А я на винде с подобными проблемами как у ТС не сталкивался ни разу. Я правда не часто пользуюсь флешками, но все же.
Как раз флешки у неё извлекаются более-менее нормально, примерно в половине случаев. Залипают обычно всякие SCSI-драйвы.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
PD>>> Кто от нее зависит? CC>На той же вкладке видим что никто не зависит.
Не зависит в смысле "другой сервис", а в смысле "кто с ним взаимодействовал", пайпы открывал и т.п.
С>> и почему нельзя логировать взаимодействие программ с сервисом и показывать — кто же с ним взаимодействовал за последние 10, 30, 60, 1200 минут CC>Потому что это тонны никому нафиг не всравшихся логов, которые жрут дисковое место, память и CPU.
Да неужели никому не всравшихся. То-то каждый прод логами обложен.
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>С каталогами сложнее. Строго говоря, даже в NTFS хендл на каталоги получить нельзя, разве что для backup операций.
Один из вариантов получения и использования хэндла директории — мониторинг изменений в ней: CreateFile+FILE_LIST_DIRECTORY/ReadDirectoryChanges, и подозреваю что шеллы вроде FAR и Total Commander используют это для отслеживания изменения в директории.
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, B0FEE664, Вы писали:
BFE>>>Некорректно работающая программа — это программа не соблюдающая требования. CC>>Какие именно требования?
BFE>В данном случае требования стандарта USB.
О как оно, михалыч!
И какие же именно требования стандарта USB должна выполнять прикладная программа?
Предвкушаю интересную историю!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, Alekzander, Вы писали:
A>А кто додумал "дисковый"?
Моя профессиональная деформация
A> Кеш не дисковый, а иконочный.
А, тогда понятно.
A>Кстати, популярный ответ на вопрос на SO "У меня не обновляются иконки, как дальше жить?" — taskkill /f /im tgitcache.exe.
Я вообще не знаю с какого перепугу тортиллы решили присобачиться к explorer а не сделать просто нормальное отдельное приложение и всего этого горя не знать.
Всегда их недолюбливал за это.
A>Видимо, единственный сценарий, который был в голове у его разработчиков, это "поставил декодер-пак типа K-Lite, и поверх всех файлов с видео будет логотипчик K-Lite".
Ну дык нельзя предусмотреть вообще всё, а тортиллы за каким то хреном вместо того чтобы понять что на их сценарий это плохо ложится зачем то продолжали жрать этот кактус.
CC>>А кто им вообще пользуется? A>
Не, я серьёзно. Что Explorer что Finder — говно на палочке. Примерно как IE, который нужен чтобы скачать на голую машину нормальный браузер, нужны чтоб первый раз запустить нормальный файловый менеджер.
A>Я так понимаю, OneDrive это майкрософтовская реализация популярного во всём мире способа монетизации (которым пользуются и Яндекс, и Гугл), в виде подписки за хранение файлов.
Выглядит как попытка МС в iCloud drive
A>А папка Personal — это его представление на уровне виндового UI. A>Image: firefox_K7UPUXbERJ.png
У меня такого тупо нету. Вот и чудесно!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>И уж если гражданский FAR способен не просто сказать Sharing violation, а указать ФИО виновника, то уж винда-то могла бы как минимум не хуже подсуетиться.
C file sharing violation всё сильно проще, на unmount же FAR переглючивает и он перечисляет примерно 180 левых процессов, тогда как на самом деле держит второй инстанс такого же FAR
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Когда же винда научится извлекать устройства?
Здравствуйте, Слава, Вы писали:
С>Не зависит в смысле "другой сервис", а в смысле "кто с ним взаимодействовал", пайпы открывал и т.п.
Ты хоть представляешь какой это объём никому нафиг не упавшего логгинга?
С>Да неужели никому не всравшихся.
Юзеру точно это всё не надо. Юзеру надо гонять свои workloads.
С> То-то каждый прод логами обложен.
And it shows...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Когда же винда научится извлекать устройства?
PD>>С каталогами сложнее. Строго говоря, даже в NTFS хендл на каталоги получить нельзя, разве что для backup операций.
_>Один из вариантов получения и использования хэндла директории — мониторинг изменений в ней: CreateFile+FILE_LIST_DIRECTORY/ReadDirectoryChanges, и подозреваю что шеллы вроде FAR и Total Commander используют это для отслеживания изменения в директории.
Да просто даже security (права доступа) посмотреть на каталоге. А то, что там требуется флаг FILE_FLAG_BACKUP_SEMANTICS для получения хэндла на каталог (и действий с бэкапом напрямую не связанных), ну вот такое Win API
Да и FindFirstFile, если я правильно помню, тоже неявно хэндл открывает на каталог.
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
BFE>>>>Некорректно работающая программа — это программа не соблюдающая требования. CC>>>Какие именно требования? BFE>>В данном случае требования стандарта USB. CC> О как оно, михалыч! CC>И какие же именно требования стандарта USB должна выполнять прикладная программа?
Прикладная программа, типа 'антивирус', должна реагировать на запрос системы отцепится от устройства, раз уж она среагировала на системное событие об появлении нового устройства.
Здравствуйте, Sinclair, Вы писали:
S>Посылаю очередной луч позора в Редмонд. S>Начиная примерно с восьмёрки, пацаны занимаются какой-то хернёй, решая несуществующие проблемы.
Пора бы уже немножечко и линукс пробовать... Могу дистро предложить, если что Я их за год перебрал небольшое ведёрко
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Как раз флешки у неё извлекаются более-менее нормально, примерно в половине случаев. Залипают обычно всякие SCSI-драйвы.
Ты же разобрался, что проблема не в ОС.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Pauel, Вы писали:
P>Пора бы уже немножечко и линукс пробовать...
Даже при всём загнивании винды ей до печального состояния дохлого пингвина ещё далеко.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Когда же винда научится извлекать устройства?
Здравствуйте, B0FEE664, Вы писали:
BFE>Прикладная программа, типа 'антивирус'
Интересное у тебя представление о прикладных программах.
Впрочем ладно, так о каком именно требовании "стандарта USB" (C) идёт речь?
Какой пункт стандарта?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, rFLY, Вы писали: S>>Как раз флешки у неё извлекаются более-менее нормально, примерно в половине случаев. Залипают обычно всякие SCSI-драйвы. FLY>Ты же разобрался, что проблема не в ОС.
Разобрался, что как раз в ОС: WSL2 — это компонент винды. Написан левой задней ногой.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
PD>>Это опять хождение по кругу. Написать они могли бы, а вот поручится что неграмотный юзер не натворит потом бед, нельзя. S>То есть без этой информации неграмотный юзер, выдирающий устройство из машины т.к. заколебался ждать, бед не натворит.... S>Детсад, как он есть, увы
И это действие никак не является рекомендуемым MS.
Кстати, я пару раз словил BSOD при удалении флешки.
Рекомендуемое действие только одно — Safe Remove...
И предлагать делать нечто небезопасное MS не будет.
А рекомендовать убить процесс сервиса — небезопасное.
На свой страх и риск — делайте. Запретить выдергивать флешку она не может — нет возможности запретить.
PD>>Вот туда его и нужно послать. Если он разбирается в PE и умеет искать в ResMon — тогда он может на свой страх и риск что-то и сделать. S>То есть, Far, по-вашему, действует неправильно?
FAR действует правильно. Он не дает возможности убить этот процесс.
И если бы ты предлагал лишь сообщить, какой процесс держит устройство — я бы согласился. Но без возможности принудительно освободить.
With best regards
Pavel Dvorkin
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>К чему приведет убиение кого-то из них ? На этот вопрос и мы с тобой не всегда ответим.
Сервис убивать незачем. Ему можно выдать Стоп либо Пауза. С какой целью ты занимаешься доведением до абсурда?
PD>А еще учти, что приличная часть сервисов живет в svchost, количество процессов которого растет с каждой новой версией Windows прямо таки с ужасающей скоростью. Убить один сервис в svchost нельзя, можно только весь svchost убить. К каким последствиям это приведет — даже думать не хочу.
Ну так и не надо об этом думать. Тем более, что svchost — это имя .exe, а процессов там гораздо больше.
Надо думать о том, как улучшить жизнь пользователя.
Приведу ещё один пример — тридцать лет назад все инсталляторы умели только требовать ребут. На случай, если какие-то из удаляемых инсталлятором файлов были заблокированы.
Потом потихонечку научились определять, а были ли какие-то из файлов залочены, и если нет, то и не предлагать перезагрузку.
Потом начали предупреждать перед началом установки: "тут кое-какие файлы сейчас залочены, если продолжим — потом придётся перезагружаться".
Потом начали выводить список программ, которые мешают установке.
Потом начали выводить список программ, которые мешают установке, и предлагать "давайте мы попробуем их сейчас закрыть, а после инсталляции обратно запустим".
Вот ты сейчас находишься на шаге 0, и с усердием неофита топишь за то, чтобы дальше никуда не двигаться.
Несмотря на то, что возможные улучшения — очевидны.
PD>Ну а продвинутым пользователям ничего не стоит зайти в оснастку "Services" и там копаться. Они должны понимать, что они делают и понимать, что они отвечают за свои действия.
Чтобы заходить в оснастку сервиса, нужно знать, что там искать.
Как видно из рассмотренного примера, это весьма нетривиальное упражнение.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
CC>Даже при всём загнивании винды ей до печального состояния дохлого пингвина ещё далеко.
Я бы не стал говорить о загнивании Windows
ИМХО проблема тут вот в чем. Windows линии NT как она была задумана и сделана в версиях 3.x — 4.0 — 2000 — вполне неплохо спроектированная и реализованная система.
Но дальше ее настигла судьба всех "продвинутых" систем. Систему улучшают, добавляют новые возможности, их все больше и больше. Стройность архитектуры страдает. Не столько ядра (в нем изменений не так уж много было), сколько верхней части. Плюс тот фактор, что в верхней части многое взаимосвязано (тот же OLE), в итоге из слабосвязанной системы получается сильносвязанная, а в ней и вероятность ошибок больше. А тут еще несчастная идея с Metro Style и введение из-за этого нового API
То, что MS при таких условиях сумела сделать все же вполне работоспособную систему, несомненный ей плюс. Но проблемы, конечно, множатся.
Радикальное решение — написать заново с нуля, пожертвовав некоторыми устаревшими возможностями и сделав более логичную систему. Примерно так, как когда-то заменяли 9x на NT. Не спеша и не суетясь. Вначале создать рабочий прототип (вроде NT 3.1 — 4.0), но с четкой архитектурой, потом выверенно добавлять к нему возможности, пускать все это в ограниченное использование (как 2000, которая, если помнишь, не была рассчитана на конечного юзера), и когда-нибудь новая система заменит Windows 15
Увы, этого скорее всего не будет. Затраты колоссальные, а профит неясен.
With best regards
Pavel Dvorkin
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>И это действие никак не является рекомендуемым MS. PD>Кстати, я пару раз словил BSOD при удалении флешки.
Ну так в том и дело, что улучшение экспириенса, чтобы уменьшить частоту таких инцидентов — дело благое.
PD>И предлагать делать нечто небезопасное MS не будет.
Опять двадцать пять. А ничего, что прибитие программы при выходе из сессии — тоже небезопасная штука? Или у кого-то есть иллюзия о том, что криво написанная программа запорет данные при forced unmount, но не запорет при forced process kill?
PD>На свой страх и риск — делайте. Запретить выдергивать флешку она не может — нет возможности запретить.
Я дискуссию с тобой заканчиваю. У тебя какая-то фантастическая способность не просто заблуждаться, но и находить какие-то совершенно беспомощные аргументы в поддержку своих заблуждений.
Ну, как с предположением о том, что у текста, вводимого пользователем в textbox, неизвестна длина
PD>FAR действует правильно. Он не дает возможности убить этот процесс.
Но он же не посылает к Руссиновичу!
PD>И если бы ты предлагал лишь сообщить, какой процесс держит устройство — я бы согласился. Но без возможности принудительно освободить.
Я предлагаю копать в сторону улучшения экспириенса. Описание конкретного решения, понятно, будет значительно длиннее — потому что есть несколько разных частных случаев, которые нужно обрабатывать по-разному.
А ты зацепился за какую-то второстепенную деталь, и споришь ради спора, а не ради конструктивного обсуждения.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Для таблицы FAT точно никаких хендлов быть не может. А ее драйвер "открывает", то есть получает доступ к ней.
Продолжаю непонимать, что мешает открыть хэндл на "таблицу FAT", и каким образом процесс может получить к ней доступ иначе, чем через handle.
PD>С каталогами сложнее. Строго говоря, даже в NTFS хендл на каталоги получить нельзя, разве что для backup операций.
Ну, не совсем для backup. Например, для получения нотификаций об изменениях ФС. Именно для этого explorer и FAR получают хэндлы, а вовсе не для каких-то backup операций
Кроме этого, есть ещё и отдельный нюанс в трактовке термина "получить".
Получить прямо сам хэндл, чтобы его пощупать — это одно.
А вот захватить, хоть и не напрямую, можно безо всякого backup semantics. Достаточно вызвать FindFirstFile/FindFirstFileEx.
Внутри они, естественно, откроют фолдер, и процессом будет захвачен точно такой же хэндл, как и в результате CreateFile.
PD>Как там внутри все же обращаются с каталогами при обычном доступе к файлам — не помню.
Так и обращаются — операции, требующие работы с каталогом (например, перечисление файлов), захватывают хэндл.
PD>Ничего. Оно не разрешает закончить сеанс.
Ну и вот.
PD>Можем его убить в известном тебе диалоге. Но это окончание приложения, а приложения запускаются от УЗ, сессия которого сейчас и закрывается.
И? PD>О том, почему можно разрешить юзеру убивать приложения, а сервисы нельзя, я писал вчера, повторять не буду.
Со вчера ничего не изменилось. Права на остановку сервисов у пользователя были и вчера, и позавчера, и сегодня есть.
PD>Вроде об этом тут уже столько понаписано, и мной, и не мной, что еще раз повторяться не буду. И дело тут вовсе не инженерной задаче (ее решить можно), а в последствиях такого решения для конечных юзеров, которые не понимают, когда что можно сделать, а когда нет.
Нет там никаких особенных последствий.
PD>Вот тут я изложил свою точку зрения наиболее цельно
PD>https://rsdn.org/forum/flame.comp/8665592.1
Здравствуйте, Sinclair, Вы писали:
S>Сервис убивать незачем. Ему можно выдать Стоп либо Пауза. С какой целью ты занимаешься доведением до абсурда?
Стоп — это его окончание. Не все сервисы можно останавливать. А те, которые можно, еще вопрос, стоит ли. Ты хочешь удалить флешку, а в итоге перестанет работать БД, с которой сейчас идет интенсивная работа.
А на паузу он может не реагировать или реагировать неправильно , то есть не освободив хендлы. Что потом делать ?
S>Ну так и не надо об этом думать. Тем более, что svchost — это имя .exe, а процессов там гораздо больше.
Я как бы в курсе
S>Надо думать о том, как улучшить жизнь пользователя.
Надо. Вот с этим согласен. Но очень осторожно. И никак не рекомендовать ему небезопасные действия.
S>Приведу ещё один пример — тридцать лет назад все инсталляторы умели только требовать ребут. На случай, если какие-то из удаляемых инсталлятором файлов были заблокированы. S>Потом потихонечку научились определять, а были ли какие-то из файлов залочены, и если нет, то и не предлагать перезагрузку. S>Потом начали предупреждать перед началом установки: "тут кое-какие файлы сейчас залочены, если продолжим — потом придётся перезагружаться". S>Потом начали выводить список программ, которые мешают установке. S>Потом начали выводить список программ, которые мешают установке, и предлагать "давайте мы попробуем их сейчас закрыть, а после инсталляции обратно запустим".
S>Вот ты сейчас находишься на шаге 0, и с усердием неофита топишь за то, чтобы дальше никуда не двигаться. S>Несмотря на то, что возможные улучшения — очевидны.
Ответил сегодня в другом сообщении.
PD>>Ну а продвинутым пользователям ничего не стоит зайти в оснастку "Services" и там копаться. Они должны понимать, что они делают и понимать, что они отвечают за свои действия. S>Чтобы заходить в оснастку сервиса, нужно знать, что там искать. S>Как видно из рассмотренного примера, это весьма нетривиальное упражнение.
Именно. Возможности такие представляются. Но для того, чтобы ими воспользоваться, надо иметь соответствующую квалификацию.
Ты мне пример из прошлого привел. Приведу и я
2x лет назад. Я раздобыл дистрибутив XP и ставлю его. С CD, само собой. До этого живу на 2000.
Поставил. Красиво. Изучаю.
Щелкаю правой на файле — нет вкладки Security. Нет и все. Что за черт ?
У меня появляется нехорошее подозрение, что XP — это следующая версия 9x . А если так, то зачем мне она нужна ?
Копаюсь в хелпах. Наконец нахожу упоминание админа и подозрение исчезает. В 9x никаких админов отроду не было.
Оказывается, они скрыли эту вкладку. Чтобы ее вернуть, надо галочку поставить, а её найти надо. Нашел наконец, поставил и все появилось.
Зачем они так сделали ? А все из тех же соображений. Увидит неграмотный юзер эту вкладку, ну и из любопытства изменит разрешения на system32, скажем. Что дальше будет — сам понимаешь.
Вот это и есть забота о пользователе.
Другой пример. Почему в Андроид нельзя легко и просто включить root ? И contra — почему не сделали так, чтобы root вообще нельзя было включать ? Технически и то, и другое возможно.
Ну да, первое — отчасти из-за того, что тогда смогут удалять те приложения, которые Google не хочет разрешить удалять.
Но ИМХО не это главное. Главное то, что с root можно будет убить систему, удалив то, что вообще удалять никогда нельзя. Окирпичить девайс.
Вот поэтому и такое промежуточное решение. root поставить можно, но для неграмотного юзера это почти невозможная задача. А уж если он достаточно продвинут — поставить сможет, но должен понимать, что берет ответственность на себя.
В общем, fool proof в классическом виде. Во всех 3 случаях.
With best regards
Pavel Dvorkin
Re[13]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Продолжаю непонимать, что мешает открыть хэндл на "таблицу FAT", и каким образом процесс может получить к ней доступ иначе, чем через handle.
Еще раз объясняю. Она не файл, и доступ к ней идет в ядре как-то иначе.
Кстати, процесс к ней доступа не получает — не хватает только, чтобы он мог в ней что-то делать. Доступ имеет только драйвер.
Впрочем, можно открыть весь логический диск — CreateFile с именем файла "\.\X". Но откроется не FAT, а логический диск целиком.
PD>>С каталогами сложнее. Строго говоря, даже в NTFS хендл на каталоги получить нельзя, разве что для backup операций. S>Ну, не совсем для backup. Например, для получения нотификаций об изменениях ФС. Именно для этого explorer и FAR получают хэндлы, а вовсе не для каких-то backup операций S>Кроме этого, есть ещё и отдельный нюанс в трактовке термина "получить". S>Получить прямо сам хэндл, чтобы его пощупать — это одно. S>А вот захватить, хоть и не напрямую, можно безо всякого backup semantics. Достаточно вызвать FindFirstFile/FindFirstFileEx.
S>Там опять какие-то нерелевантные рассуждения вместо попытки подумать головой.
Ну для тебя нерелевантные, твое дело.
И Антон, кончай пытаться меня обидеть. Не получится. Я еще 20 лет назад решил ни на какие твои эскапады не обижаться
With best regards
Pavel Dvorkin
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Вот ты сейчас находишься на шаге 0, и с усердием неофита топишь за то, чтобы дальше никуда не двигаться.
Не, больше похоже на то, что ты ради миски холодца всю свинью собираешься заколоть.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
PD>>Для таблицы FAT точно никаких хендлов быть не может. А ее драйвер "открывает", то есть получает доступ к ней. S>Продолжаю непонимать, что мешает открыть хэндл на "таблицу FAT"
Как ты себе вообще это представляешь?
S> и каким образом процесс может получить к ней доступ иначе, чем через handle.
Процесс к ней никак не получает доступ, этим всем рулит драйвер файловой системы, который ходит к данным в нужный partition через ядерные объекты, а не файловые handles.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Я бы не стал говорить о загнивании Windows
В сравнении с тем, как хорошо была вылизана 7ка после неё пошло скатывание в "сраное говно" (tm)
8ка был мрак
10ка только к моменту когда они начали пилить 11 и всё новомодное говно полилость туда а от 10 эти хипстеры отстали — стала условно съедобна, но и то только после доработки рашпилем.
11я полна вши, червия, ну и классических чертей со спины.
PD>Но дальше ее настигла судьба...
Ну т.е. ты со мной по сути согласился
PD>Радикальное решение — написать заново с нуля, пожертвовав некоторыми устаревшими возможностями и сделав более логичную систему.
Радикальное решение — не "чинить" то, что не сломано.
Выкинуть к чертям собачьим метро, причём целиком и полностью, вернуть и enforce OS UX guidelines для своего же софта, а то там у них внутри каждый дрочит как хочет, и потому образуется бардак.
PD> Примерно так, как когда-то заменяли 9x на NT. Не спеша и не суетясь. Вначале создать рабочий прототип (вроде NT 3.1 — 4.0), но с четкой архитектурой, потом выверенно добавлять к нему возможности, пускать все это в ограниченное использование (как 2000, которая, если помнишь, не была рассчитана на конечного юзера), и когда-нибудь новая система заменит Windows 15
Для этого надо люди с нормальным инженерным mindset а не нынешняя хипстота
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Стоп — это его окончание. Не все сервисы можно останавливать. А те, которые можно, еще вопрос, стоит ли. Ты хочешь удалить флешку, а в итоге перестанет работать БД, с которой сейчас идет интенсивная работа.
Как перестанет — так и обратно начнёт. Нормальную БД даже вырубанием питания не сломаешь, а уж если её вежливо попросили остановиться — то тем более. PD>А на паузу он может не реагировать или реагировать неправильно , то есть не освободив хендлы. Что потом делать ?
Чинить сервис.
S>>Надо думать о том, как улучшить жизнь пользователя.
PD>Надо. Вот с этим согласен. Но очень осторожно.
PD>Ответил сегодня в другом сообщении.
PD>Именно. Возможности такие представляются. Но для того, чтобы ими воспользоваться, надо иметь соответствующую квалификацию.
Не столько квалификацию, сколько упорство.
PD>Зачем они так сделали ? А все из тех же соображений. Увидит неграмотный юзер эту вкладку, ну и из любопытства изменит разрешения на system32, скажем. Что дальше будет — сам понимаешь.
PD>Вот поэтому и такое промежуточное решение. root поставить можно, но для неграмотного юзера это почти невозможная задача. А уж если он достаточно продвинут — поставить сможет, но должен понимать, что берет ответственность на себя.
Ну вот в iOS и вовсе рута нет. Но у него нет и идиотских ограничений вроде "не дам отмонтировать флешку".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[14]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали: PD>Еще раз объясняю. Она не файл, и доступ к ней идет в ядре как-то иначе.
Что там в ядре — дело ядра. Пользовательский процесс не может ничего сделать с устройствами иначе, как через хэндл.
PD>Впрочем, можно открыть весь логический диск — CreateFile с именем файла "\.\X". Но откроется не FAT, а логический диск целиком.
Всё верно. И на NTFS ты по отдельности их журналы "открыть" не сможешь.
PD>В обоих случаях неявно получают хендл на каталог.
Всё верно. В чём вопрос-то тогда?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Когда же винда научится извлекать устройства?
На эмоциональную часть отвечать не буду. Тут у каждого свои взгляды
CC>В сравнении с тем, как хорошо была вылизана 7ка после неё пошло скатывание в "сраное говно" (tm) CC>8ка был мрак
+100.
CC>10ка только к моменту когда они начали пилить 11 и всё новомодное говно полилость туда а от 10 эти хипстеры отстали — стала условно съедобна, но и то только после доработки рашпилем. CC>11я полна вши, червйя, ну и классических чертей со спины.
Я пока особых проблем с 11 не имею. На десктопе у меня 10, он старый и 11 поставить я смог только под VirtualBox, но не пользуюсь ей. На ноуте 11. Некоторые мелочи раздражают, вроде отсутствия малых иконок на таскбаре, но не то чтобы очень. Все лето работал только с ней на даче, в целом без проблем.
PD>>Но дальше ее настигла судьба... CC>Ну т.е. ты со мной по сути согласился
Во многом да.
PD>>Радикальное решение — написать заново с нуля, пожертвовав некоторыми устаревшими возможностями и сделав более логичную систему. CC>Радикальное решение — не "чинить" то, что не сломано.
Я не вижу, что именно чинили — из того, что не сломано. Убрать меню Start в 8 — это была, конечно, явная ошибка, ну так исправили, вернули.
Изменения по мелочам — всегда найдется кто-то, кому это не понравится. Привыкнут и через несколько лет будет ясно, что только так и должно быть.
CC>Выкинуть к чертям собачьим метро, причём целиком и полностью, вернуть и enforce OS UX guidelines для своего же софта, а то там у них внутри каждый дрочит как хочет, и потому образуется бардак.
Э, как его выкинуть-то сейчас ? Там же новый слой API добавлен. Вот, например
И программ, которые используют этот несчастный UI, не так мало, хотя, слава богу, тотального перехода на него не произошло. А ведь замышлялялся. Но поняла MS, что получилось что-то не то и дала, в общем, задний ход. Но убрать совсем — уже нереально.
PD>> Примерно так, как когда-то заменяли 9x на NT. Не спеша и не суетясь. Вначале создать рабочий прототип (вроде NT 3.1 — 4.0), но с четкой архитектурой, потом выверенно добавлять к нему возможности, пускать все это в ограниченное использование (как 2000, которая, если помнишь, не была рассчитана на конечного юзера), и когда-нибудь новая система заменит Windows 15 CC>Для этого надо люди с нормальным инженерным mindset а не нынешняя хипстота
Я все же не столь мрачно настроен. Если бы MS захотела такое сделать — нашла бы нового Дэвида Кэтлера. И команду бы собрала. Ресурсов у нее немеряно, могли бы лучшие силы собрать.
With best regards
Pavel Dvorkin
Re[14]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали: CC>Процесс к ней никак не получает доступ, этим всем рулит драйвер файловой системы, который ходит к данным в нужный partition через ядерные объекты, а не файловые handles.
Ну так на нет и суда нет.
Или ты имеешь в виду, что unmount диска может быть заблокирован какими-то объектами на уровне драйвера, при этом никаких хэндлов на уровне процессов нет?
Ну... Может быть, я в низкоуровневом программировании не спец.
Но тогда это тем более повод для доработки на уровне ОС, а не на уровне "запускайте Руссиновича".
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[15]: Когда же винда научится извлекать устройства?
Не сможешь ты прекратить дискуссию
S>Здравствуйте, Pavel Dvorkin, Вы писали: PD>>Еще раз объясняю. Она не файл, и доступ к ней идет в ядре как-то иначе. S>Что там в ядре — дело ядра. Пользовательский процесс не может ничего сделать с устройствами иначе, как через хэндл.
Пользовательский процесс не может работать с FAT, я же уже объяснил. И хендлов на FAT не существует.
Я не понимаю, зачем ты тут упорствуешь. Ну не веришь мне — имеешь право, в конце концов. Ну так поищи что-то про хендлы на FAT. Найдешь — дай ссылку, посмотрю.
PD>>Впрочем, можно открыть весь логический диск — CreateFile с именем файла "\.\X". Но откроется не FAT, а логический диск целиком. S>Всё верно. И на NTFS ты по отдельности их журналы "открыть" не сможешь.
Верно. Но в NTFS эти журналы (а точнее, все метафайлы тома) — это все же файлы. Даже boot sector это тоже файл. (В FAT он тоже не файл и хендл на него получить нельзя по той же причине).
Процесс 3 кольца простым способом доступ к ним иметь не может. Ядро может.
В дополнение к MFT на каждом NTFS-томе имеется набор файлов метаданных с не-
обходимой для реализации структуры файловой системы информацией. Имена всех
файлов с метаданными начинаются со знака доллара ($) и являются скрытыми. К при-
меру, имя файла для MFT — $MFT. Остальные файлы NTFS-тома являются обычными
файлами и папками, как показано на рис. 12.27.
Соломон — Руссинович.
With best regards
Pavel Dvorkin
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Убрать меню Start в 8 — это была, конечно, явная ошибка, ну так исправили, вернули.
Так исправили что есть ажно цельный отдельный сторонний и довольно популярный проект Classic Start Menu, который таки "и исправляет и возвращает", а не "вот это вот всё"
PD>Э, как его выкинуть-то сейчас?
Признать тупиком и задепрекейтить, в след версии сделать опциональным, потом убрать совсем.
PD>https://learn.microsoft.com/ru-ru/windows/win32/api/fileapi/nf-fileapi-createfile2
Этож не метрошный API
PD>Я все же не столь мрачно настроен.
Увы, чем больше я узнаю подкапотный подробностей тем мрачнее становлюсь.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Sinclair, Вы писали:
S>Посылаю очередной луч позора в Редмонд. S>Начиная примерно с восьмёрки, пацаны занимаются какой-то хернёй, решая несуществующие проблемы. S>Когда они уже научатся нормально извлекать устройства?
У меня обычно этому препятствует RDP сеанс, в котором разрешено подключение дисков.
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
CC>Так исправили что есть ажно цельный отдельный сторонний и довольно популярный проект Classic Start Menu, который таки "и исправляет и возвращает", а не "вот это вот всё"
Да меня и это устраивает. Убрал все лишнее, сойдет.
PD>>Э, как его выкинуть-то сейчас? CC>Признать тупиком и задепрекейтить, в след версии сделать опциональным, потом убрать совсем.
Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP]
То есть в классических можно, но можно и в UWP. А вот CreateFile в UWP нельзя.
Минимальная версия клиента Windows XP [только классические приложения]
PD>>Я все же не столь мрачно настроен. CC>Увы, чем больше я узнаю подкапотный подробностей тем мрачнее становлюсь.
With best regards
Pavel Dvorkin
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
CC>В сравнении с тем, как хорошо была вылизана 7ка после неё пошло скатывание в "сраное говно" (tm) CC>8ка был мрак CC>10ка только к моменту когда они начали пилить 11 и всё новомодное говно полилость туда а от 10 эти хипстеры отстали — стала условно съедобна, но и то только после доработки рашпилем. CC>11я полна вши, червйя, ну и классических чертей со спины.
"...усеницы, мошь, вша красная, вша жолтая, и иные всякие твари, и несли гробы повапленные со свещами унутри, и черепа, и трептогубия, и пели срамные кощуны"
Вы в ЖЖ были?
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, alpha21264, Вы писали:
A>Здравствуйте, Константин Б., Вы писали:
КБ>>А если бы пользовался еще чем-нибудь другим то возможно бы знал что проблема не специфична для винды.
A>Эээ... Ну вот я пользуюсь Линуксом. Там нет такой проблемы A>Ну то есть ты можешь держать флешку, если какой-то конкретной программой (например редактором) открыл файл на флешке. A>Но редактор закрыл, — флешка отмонтировалась. A>Так чтобы ОС сама неизвестно почему держала флешку — нет такого.
А что значит неизвестно? Вот где-то у тебя забытая консоль с башем с текущей папокй на флэшке — это неизвестно?
Линукс тебе скажет device is busy. Никакого списка приложений он тебе не предложит.
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
КБ>>Если ты действительно пользовался виндой столько времени сколько утверждаешь то не может быть что не сталкивался с тем что shutdown тоже не срабатывает. S>Простите, это аргумент в пользу чего?
Это аргумент против "что раз с шатдауном все работает, значит и с эджектом должно". Во первых не работает, во вторых не понятно какая свзяь между первым и вторым.
Re[11]: Когда же винда научится извлекать устройства?
Здравствуйте, mike_rs, Вы писали:
_>Все верно, но тут речь о том, что теперь встроенные системные сервисы этот бейджик не получили и не смогут, ибо не выполняют требований. И за это поделие МС берет с нас деньги.
На данный момент про "встроенные сервисы" — это предположение. Топикстартер никакую диагностику не провел. Фиг знает что у него там крутится.
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали: КБ>На данный момент про "встроенные сервисы" — это предположение. Топикстартер никакую диагностику не провел. Фиг знает что у него там крутится.
Это был WSL2 с его automount.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, alexsmirnoff, Вы писали:
S>>Когда они уже научатся нормально извлекать устройства?
Кстати, какая ФС на флешке? На съемных носителях нужно использовать Fat/exFat, т.к. ntfs категорически не умеет отмонтироваться на лету, держит кучу хендлов в самом драйвере.
Re[13]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Константин Б., Вы писали: КБ>>На данный момент про "встроенные сервисы" — это предположение. Топикстартер никакую диагностику не провел. Фиг знает что у него там крутится. S>Это был WSL2 с его automount.
Здорово. Давай сопоставим с отригинальными гипотезами. Что из этого оказалось верным?
пацаны занимаются какой-то хернёй, решая несуществующие проблемы.
или пристрели его по-плохому.
понятно, что это какой-то из твоих же многочисленных говносервисов, который то ли там сканирует диск от вирусов, то ли индексирует картинки — в общем, ничем полезным не занимается, а только тратит мою батарейку.
все "пользовательские программы", которые могли на мой внешний диск смотреть, закрыл первым делом ещё до того, как задуматься об извлечении устройства.
В WSL багов безусловно море, но сам по себе он не запускается. Он даже не установлен по дефолту. Его запустил ты для каких-то нужных тебе задач.
Re[3]: Когда же винда научится извлекать устройства?
_>Кстати, какая ФС на флешке? На съемных носителях нужно использовать Fat/exFat, т.к. ntfs категорически не умеет отмонтироваться на лету, держит кучу хендлов в самом драйвере.
ТС писал уже — exFAT.
Про NTFS сомнительно. Я как раз эксперименты проводил с NTFS: safely remove отрабатывал при закрытии условного нотепада. Правда, то было на VM и ОС старая (NT 6.0). Возможно нужны какие-то доп. условия.
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
BFE>>Прикладная программа, типа 'антивирус' CC>Интересное у тебя представление о прикладных программах.
Выше по ветке можно посмотреть с чего начался разговор.
Обычную программу пользователь может просто закрыть, а система могла бы указать на таковую. С антивирусом не всё так просто.
CC>Впрочем ладно, так о каком именно требовании "стандарта USB" (C) идёт речь?
О возможности горячего подключения.
CC>Какой пункт стандарта?
У меня под рукой нет стандарта USB, но возможность горячего подключения и отключения устройств USB заявлена с самого начала. Это одна из основных целей создания USB. До USB, насколько я помню, стандартных средств для горячего подключения не было. Тот же com порт мог сгореть, если его подключать не выключая питания.
И каждый день — без права на ошибку...
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD> Я все же не столь мрачно настроен. Если бы MS захотела такое сделать — нашла бы нового Дэвида Кэтлера. И команду бы собрала. Ресурсов у нее немеряно, могли бы лучшие силы собрать.
Все, что МС захотела — это разогнать команду тестеров и тестировать на хомячках. А, да, и еще художественной самодеятельностью заниматься, вместо того, чтобы работу работать Винда все.
Здравствуйте, CreatorCray, Вы писали:
A>>Кстати, популярный ответ на вопрос на SO "У меня не обновляются иконки, как дальше жить?" — taskkill /f /im tgitcache.exe. CC>Я вообще не знаю с какого перепугу тортиллы решили присобачиться к explorer а не сделать просто нормальное отдельное приложение и всего этого горя не знать. CC>Всегда их недолюбливал за это.
Справедливости ради, я вижу свои плюсы и минусы в обоих подходах.
Вот ты пишешь, что пользуешься Far'ом вместо Explorer'а. Я тоже часто его использую. В семёрке я даже сделал кнопку на эксплорерный тулбар, которая открывала новый инстанс Far'а с открытой папкой и выделяла в нём выделенный в Explorer'е файл. Потому что многие вещи в Far'е делаются проще и быстрее. И текстовой режим отображения тут не помеха, наоборот.
Но вот рисовать иконки в Far'е, к сожалению, не получится. И плагин на F11 не поможет. Нужен Фотошоп. А если ты пользуешься Фотошопом, ты пользуешься и Explorer'ом. Он там встроен на Ctrl + O / Ctrl + S. И чертовски удобно видеть, когда открываешь файл или перезаписываешь, был он изменён или нет.
Вообще, идея интегрированного сквозного менеджера файлов мне, как инженеру, весьма нравится. Диктатура вообще бывает очень удобной. (Пример выше). Но потом оказывается, что монопольное положение испортило команду разработчиков, что они не могут сделать нормальную расширяемую архитектуру, минусы монополизма проявляют себя всё сильнее, а вместо плюсов — несбрасываемый иконочный кеш. Вот так я и дошёл до того, что мечтаю об Android'е, где статус гита в каждом приложении не увидишь, но зато конкуренция между разработчиками файловых менеджеров породила несколько неплохих продуктов.
CC>>>А кто им вообще пользуется? A>> CC>Не, я серьёзно. Что Explorer что Finder — говно на палочке. Примерно как IE, который нужен чтобы скачать на голую машину нормальный браузер, нужны чтоб первый раз запустить нормальный файловый менеджер.
Помимо того, что он встроен примерно во все редакторы (Ctrl + O / Ctrl + S), там есть режимы предпросмотра графония и документов (например, thumbs extra large), которые мне, например, очень нужны. Думаю, и многим юзерам тоже.
Естественно, для эффективной работы в диалоге открытия файла нужны букмарки "для самых труднодоступных мест" (ц). Допустим, ты потратил время, настроил их. А затем становится можно нажать ПКМ по иконке Explorer'а в таскбаре, и из меню открыть любой букмарк. Интеграция, всё-таки, это сила, если монополист-диктатор хоть чуть-чуть постарается для юзеров.
PD>Возможно, но это ничего не меняет. Не может ОС иметь сервисы, с которыми можно договариваться. Вот просто подумай — что я должен сделать в своей программе, о которой написал выше, чтобы ОС могла с ней договориться ? Сделаю я из нее сервис, а то, о чем написал, так и оставлю.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD> R>Все, что МС захотела — это разогнать команду тестеров и тестировать на хомячках.
PD> Ты случайно не Сатья Наделла, что так точно знаешь, что там внутри MS делается ?
Для того чтобы читать новости не нужно быть Сатьей Наделлой
Здравствуйте, rudzuk, Вы писали:
PD>> R>Все, что МС захотела — это разогнать команду тестеров и тестировать на хомячках.
PD>> Ты случайно не Сатья Наделла, что так точно знаешь, что там внутри MS делается ?
R>Для того чтобы читать новости не нужно быть Сатьей Наделлой
А можно ссылку на то, что тестирую на хомячках ?
Только на серьезный источник.
With best regards
Pavel Dvorkin
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD> R>Для того чтобы читать новости не нужно быть Сатьей Наделлой
PD> А можно ссылку на то, что тестирую на хомячках ?
PD> Только на серьезный источник.
Сейчас смог нагуглить только это (новость далеко не свежая):
Бывший разработчик Microsoft Джерри Берг (Jerry Berg) объясняет, в чём дело. По его словам, в последние годы Microsoft ради экономии поменяла метод тестирования операционной системы. Раньше в компании работал большой отдел тестеров на зарплате. Потом их сократили, а тестирование переложили на широкое сообщество (бесплатных) добровольцев, которые участвуют в программе Windows Insider.
Здравствуйте, Alekzander, Вы писали:
A>Нашёл в сети скриншот, то, что отмечено стрелочкой, из интерфейса так просто не убирается. Может, конечно, можно, если найти, где деинсталлируется OneDrive... Или поставить PowerToys... Но у меня была другая цель, когда я 11-ую поставил: имперсонировать простого виндоюзера, чтобы потом держать в голове этот образ при работе над UI.
Кстати, забыл добавить. Боюсь, я слишком вошёл в образ и не проверил самый очевидный сценарий: деинсталляцию OneDrive через Installed Apps. А она, как ни странно, работает. Я решил считать, что и пользователь бы догадался, поэтому снёс к херам.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
КБ>>>А если бы пользовался еще чем-нибудь другим то возможно бы знал что проблема не специфична для винды.
A>>Эээ... Ну вот я пользуюсь Линуксом. Там нет такой проблемы A>>Ну то есть ты можешь держать флешку, если какой-то конкретной программой (например редактором) открыл файл на флешке. A>>Но редактор закрыл, — флешка отмонтировалась. A>>Так чтобы ОС сама неизвестно почему держала флешку — нет такого.
КБ>А что значит неизвестно? Вот где-то у тебя забытая консоль с башем с текущей папокй на флэшке — это неизвестно? КБ>Линукс тебе скажет device is busy. Никакого списка приложений он тебе не предложит.
Ну узнать приложение тривиально. Вроде через lsof или просто /proc прошерстить. Я не пользуюсь GUI линуксом, протестировать не могу, но если это и не сделано, то только от лени программистов.
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, vsb, Вы писали:
КБ>>А что значит неизвестно? Вот где-то у тебя забытая консоль с башем с текущей папокй на флэшке — это неизвестно? КБ>>Линукс тебе скажет device is busy. Никакого списка приложений он тебе не предложит.
vsb>Ну узнать приложение тривиально. Вроде через lsof или просто /proc прошерстить. Я не пользуюсь GUI линуксом, протестировать не могу, но если это и не сделано, то только от лени программистов.
Ну со стороны то оно завсегда проще кажется.
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, flаt, Вы писали:
F>Здравствуйте, Pavel Dvorkin, Вы писали:
PD>>Возможно, но это ничего не меняет. Не может ОС иметь сервисы, с которыми можно договариваться. Вот просто подумай — что я должен сделать в своей программе, о которой написал выше, чтобы ОС могла с ней договориться ? Сделаю я из нее сервис, а то, о чем написал, так и оставлю.
F>Нет, всё проще: есть уведомления https://learn.microsoft.com/en-us/windows/win32/devio/device-events, подписывайся на них (по аналогии с WM_QUERYENDSESSION/WM_ENDSESSION) и закрывай все хендлы на отключенный диск.
Вы же тут программисты все? Вот давайте тот кто обрабатывает эти события в своем софте поставит смайлик этому сообщению.
А то советы раздавать и я умею.
Я вообще не представляю как эти события обрабатывать.
Каким-то образом перебрать все хэндлы в программе, каким-то образом выяснить какие из-них относятся к нужному диску, как-то мирно завершить операции их использующие.
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
КБ>Это аргумент против "что раз с шатдауном все работает, значит и с эджектом должно". Во первых не работает, во вторых не понятно какая свзяь между первым и вторым.
Eject должен вызывать shutdown, очевидно же!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: Когда же винда научится извлекать устройства?
Здравствуйте, Alekzander, Вы писали:
A>Но вот рисовать иконки в Far'е, к сожалению, не получится.
Получится, и даже были плуги которые их прямо в окошке Far показывали
Только это крайне мало кому было нужно.
A> И плагин на F11 не поможет. Нужен Фотошоп.
Ты тут под рисовать понимаешь показать иконку или нарисовать новую с нуля?
A> А если ты пользуешься Фотошопом, ты пользуешься и Explorer'ом.
Нет, зачем?
A> Он там встроен на Ctrl + O / Ctrl + S.
Это не explorer ну ни разу, это Common controls Open/Save диалог.
A> И чертовски удобно видеть, когда открываешь файл или перезаписываешь, был он изменён или нет.
Вообще не понимаю проблемы
A>Помимо того, что он встроен примерно во все редакторы (Ctrl + O / Ctrl + S)
Ещё раз, для тех кто в танке — это не explorer вообще ни разу.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
КБ>Вы же тут программисты все? Вот давайте тот кто обрабатывает эти события в своем софте поставит смайлик этому сообщению.
Мало кто, только те, кому это реально нужно. Файловый менеджер например.
КБ>Я вообще не представляю как эти события обрабатывать. КБ>Каким-то образом перебрать все хэндлы в программе, каким-то образом выяснить какие из-них относятся к нужному диску, как-то мирно завершить операции их использующие.
Если ты поддерживаешь это сообщение то и архитектуру своего софта пиши так, чтобы она умела потушить свои внутренние подсистемы при возникновении такого события.
Да это может быть нетривиально, ну а как ты хотел? Чудес не бывает.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Да меня и это устраивает. Убрал все лишнее, сойдет.
Я сначала убрал всё лишнее но там ещё много неотключаемого осталось, да и организация самого меню в новом просто капец какая неудобная.
PD>И признать, что все приложения с ним перестанут работать? Вряд ли на такое пойдут.
И фиг с ними, всё одно ничего реально незаменимого там нет. Поставят десктопную версию.
Другой момент что они всё равно похоже надеются сделать планшетную ОС.
PD>Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP] PD>То есть в классических можно, но можно и в UWP. А вот CreateFile в UWP нельзя. PD>Минимальная версия клиента Windows XP [только классические приложения]
Всё, что это говорит — в UWP SDK для нового API есть проброс.
А так сам API живёт в той же Kernel32.dll что и обычный CreateFile
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Слава, Вы писали:
С>"...усеницы, мошь, вша красная, вша жолтая, и иные всякие твари, и несли гробы повапленные со свещами унутри, и черепа, и трептогубия, и пели срамные кощуны"
(С)
С>Вы в ЖЖ были?
Отож!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
КБ>Но вот люди, обвиняющие окружающих в том что эти лодыри и бездельники им чудес не завезли, вызывают у меня смешанные чувства.
Часто такие просто не понимают что и сколько для реализации сего чуда на самом деле надо сделать и потому кажется что это просто.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Константин Б., Вы писали:
A>>Эээ... Ну вот я пользуюсь Линуксом. Там нет такой проблемы A>>Ну то есть ты можешь держать флешку, если какой-то конкретной программой (например редактором) открыл файл на флешке. A>>Но редактор закрыл, — флешка отмонтировалась. A>>Так чтобы ОС сама неизвестно почему держала флешку — нет такого.
КБ>А что значит неизвестно? Вот где-то у тебя забытая консоль с башем с текущей папокй на флэшке — это неизвестно? КБ>Линукс тебе скажет device is busy. Никакого списка приложений он тебе не предложит.
В этом случае у тебя есть окно программы на экране, которое ты за пять секунд найдёшь.
Совсем другое дело, когда флешку держит какой-то невидимый внутренний сервис.
Течёт вода Кубань-реки куда велят большевики.
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
A>> И плагин на F11 не поможет. Нужен Фотошоп. CC>Ты тут под рисовать понимаешь показать иконку или нарисовать новую с нуля?
Слоевое редактирование, библиотеки шейпов, кистей и стилей, маски, пути, растеризация, автомейшен. Всё по-взрослому.
A>> Он там встроен на Ctrl + O / Ctrl + S. CC>Это не explorer ну ни разу, это Common controls Open/Save диалог.
Мы сейчас к словам придираемся, или про суть говорим?
Для пользователя это та же хрень, потому что там те же режимы, те же букмарки, та же виртуальная структура (в отличие от файловой системы, это дело менеджера, как представлять ВС), то же вообще всё. Кроме меню/тулбара, естественно, но они носят контекстуальный характер и в данном случае опущены за ненадобностью.
Для разработчика это та же хрень, поскольку плагин для Explorer'а будет работать и в standalone окне, и в этих окнах абсолютно одинаково, и не требует дополнительных регистраций.
***
Маленький tip. У диалогов Save / Open нет кнопки максимизации. Тем не менее, если дважды щёлкнуть по заголовку, он распахнётся на весь экран. В таком виде работать с ним удобнее всего, и он начнёт выглядеть как обычный Explorer. Многие не знают.
P.S. Но и тут Майкрософт отличился. В семёрке это просто работало, в 11-й после распахивания диалога границы рисуются с глюками (такие неприятные margin'ы с трёх сторон у clientrect'а и справа у заголовка). Господи, ну что за криворукие уроды. Ведь это же продукт с миллионами юзеров, ну как можно такое говно релизить
Здравствуйте, CreatorCray, Вы писали:
PD>>И признать, что все приложения с ним перестанут работать? Вряд ли на такое пойдут. CC>И фиг с ними, всё одно ничего реально незаменимого там нет. Поставят десктопную версию.
Они-то могли бы и поставить, правда, это признание ошибки и ущерб репутации. Вряд ли они на это пойдут.
А с 3dparty приложениями что делать будем ? Вдруг оказывается, что не работает ПО, которое работало более или менее нормально лет 5. Десктопной версии его и не было никогда. Команды , разработавшей его, тоже уже нет, а если и есть — им срочно весь UI переделывать ?
Нет, на такое не пойдут.
CC>Другой момент что они всё равно похоже надеются сделать планшетную ОС.
Не знаю. Пока не вижу признаков.
PD>>Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP] PD>>То есть в классических можно, но можно и в UWP. А вот CreateFile в UWP нельзя. PD>>Минимальная версия клиента Windows XP [только классические приложения] CC>Всё, что это говорит — в UWP SDK для нового API есть проброс. CC>А так сам API живёт в той же Kernel32.dll что и обычный CreateFile
Само собой, в kernel32 и далее в ntdll, где, возможно, ничего и не поменялось в этом плане. Но API добавлен.
А если еще и взять специфический для UWP API... Где он там живет, в каком user32.dll (или не user32) и что там в win32k.sys добавили...
With best regards
Pavel Dvorkin
Re[11]: Когда же винда научится извлекать устройства?
Здравствуйте, rudzuk, Вы писали:
R>Сейчас смог нагуглить только это (новость далеко не свежая): R>
Бывший разработчик Microsoft Джерри Берг (Jerry Berg) объясняет, в чём дело. По его словам, в последние годы Microsoft ради экономии поменяла метод тестирования операционной системы. Раньше в компании работал большой отдел тестеров на зарплате. Потом их сократили, а тестирование переложили на широкое сообщество (бесплатных) добровольцев, которые участвуют в программе Windows Insider.
Скажем так, не особенно убедительно.
Но если даже и так — не могу определенно сказать, что это плохо.
А вообще помнишь шутку про Windows предыдущих версий ?
Windows X — это бета
Windows X Service Pack 1 — это релиз. Протестировали бету на пользователях.
With best regards
Pavel Dvorkin
Re[10]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Вряд ли они на это пойдут.
+1
PD>Вдруг оказывается, что не работает ПО, которое работало более или менее нормально лет 5.
А что там есть из софта метрошного такое, чем реально пользуются вместо нормальных десктопных версий?
PD>А если еще и взять специфический для UWP API... Где он там живет, в каком user32.dll (или не user32) и что там в win32k.sys добавили...
Дык в том же MSDN обычно и написано где он живёт.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Когда же винда научится извлекать устройства?
КБ>Я вообще не представляю как эти события обрабатывать. КБ>Каким-то образом перебрать все хэндлы в программе, каким-то образом выяснить какие из-них относятся к нужному диску, как-то мирно завершить операции их использующие.
Вести учет файловых путей с момента открытия хэндла. Но соотнести с Logical Volume действительно может быть нетривиальной задачей.
Если бы MS Windows сыпало в Application Log событиями warning, что такое-то приложение проигнорировало GUID_IO_VOLUME_DISMOUNT или GUID_IO_VOLUME_LOCK, то рано или поздно пользователи добили бы поставщиков ПО жалобами.
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, m2user, Вы писали:
M>Если бы MS Windows сыпало в Application Log событиями M>то рано или поздно пользователи добили бы поставщиков ПО жалобами.
С чего бы? Пользователи в эти логи заглядывают примерно никогда
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD> Скажем так, не особенно убедительно.
Ну, копии приказа за подписью Наделлы у меня для вас нет
PD> Но если даже и так — не могу определенно сказать, что это плохо.
PD> А вообще помнишь шутку про Windows предыдущих версий ?
PD> Windows X — это бета PD> Windows X Service Pack 1 — это релиз. Протестировали бету на пользователях.
Беда в том, что с десятки началась одна сплошная бета
Здравствуйте, CreatorCray, Вы писали:
PD>>Вдруг оказывается, что не работает ПО, которое работало более или менее нормально лет 5. CC>А что там есть из софта метрошного такое, чем реально пользуются вместо нормальных десктопных версий?
А черт его знает. Я же не могу ручаться за все ПО в мире.
Например, мой AVG имеет интерфейс, подозрительно похожий на Метро. Но бог его знает, может так и без Метро сделали.
PD>>А если еще и взять специфический для UWP API... Где он там живет, в каком user32.dll (или не user32) и что там в win32k.sys добавили... CC>Дык в том же MSDN обычно и написано где он живёт.
Живет — из 3 кольца какая DLL, да, написано. А все , что ниже — undocumented.
With best regards
Pavel Dvorkin
Re[13]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD> R>Беда в том, что с десятки началась одна сплошная бета
PD> Подожди немного, и ты (или не ты) напишешь — вот какая была хорошая десятка, а Windows 12 — форменная бета.
Здравствуйте, CreatorCray, Вы писали:
КБ>>Но вот люди, обвиняющие окружающих в том что эти лодыри и бездельники им чудес не завезли, вызывают у меня смешанные чувства. CC>Часто такие просто не понимают что и сколько для реализации сего чуда на самом деле надо сделать и потому кажется что это просто.
Вот прямо идеально точное описание индусов из МС
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Скажем так, не особенно убедительно. PD>Но если даже и так — не могу определенно сказать, что это плохо.
официально я думаю они нигде этого не признают, это репутация. Но точно то-же самое нам говорили ребята в МС в личных беседах, что отдел тестирования ликвидировали
Re[12]: Когда же винда научится извлекать устройства?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Живет — из 3 кольца какая DLL, да, написано. А все , что ниже — undocumented.
А всё, что ниже, не является UWP API
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали:
PD>>Живет — из 3 кольца какая DLL, да, написано. А все , что ниже — undocumented. CC>А всё, что ниже, не является UWP API
Не является, согласен. Но скорее всего и в win32k.sys что-то добавили, и в ntdll.dll — oskernel.
Не API — но чтобы убрать UWP , надо и оттуда выпиливать.
With best regards
Pavel Dvorkin
Re[15]: Когда же винда научится извлекать устройства?
Кстати, в Линуксе аналогичная ситуация. Если используется хэндл, и соотв. инода ФС, эту ФС нельзя размонтировать. И хотя fuser и lsof в каждом популярном дистре из коробки, и не надо шляться по всяким говнофривейр сайтам в поисках утилит, даже если послать процессу немаскируемый завершающий сигнал, он не завершится, если находится в состоянии uninterruptible (например, ждёт окончания В/В от устройства).
Здравствуйте, Sinclair, Вы писали:
S>Посмотри, @!#$@#, кто этот "кто-то". И найди способ с ним договориться, чтобы он отдал хэндл по-хорошему, или пристрели его по-плохому. S>Потому что и так понятно, что это какой-то из твоих же многочисленных говносервисов, который то ли там сканирует диск от вирусов, то ли индексирует картинки — в общем, ничем полезным не занимается, а только тратит мою батарейку.
Один из возможных вариантов, кто может держать — если у тебя запущен таск менеджер.
S>Единственное объяснение этому маразму, что мне приходит в голову — у них есть решение для этой проблемы. Но его откладывают до того момента, как выйдет очередная версия винды, настолько неудачная, что на неё согласится переходить 0% их userbase. Вот тогда фичу зарелизят — потому что она будет однозначной причиной переехать на всё что угодно, даже если там кнопку "Старт" придётся каждый раз искать при помощи Bing через AI-бота.
Ты просто не представляешь себе масштаб бардака и Содома с Гоморрой, который здесь происходит.
Ад пуст, все бесы здесь.
Re[2]: Когда же винда научится извлекать устройства?
P>Пора бы уже немножечко и линукс пробовать... Могу дистро предложить, если что Я их за год перебрал небольшое ведёрко
год перебирать дистрибутивы операционнки (и, очевидно ж, не от хорошего их поведения) — это типа такой хороший аргумент в пользу попробовать линукс %)
это из того же разряда, что если у вас есть проблема, для решения которой вы собрались использовать регулярные выражения, то теперь у вас две проблемы
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, Вумудщзук, Вы писали:
P>>Пора бы уже немножечко и линукс пробовать... Могу дистро предложить, если что Я их за год перебрал небольшое ведёрко В>год перебирать дистрибутивы операционнки (и, очевидно ж, не от хорошего их поведения) — это типа такой хороший аргумент в пользу попробовать линукс %)
Это у меня навроде хобби. Новая железяка — я на ней кучку дистров перебираю. На 5ти железяках лучше всего Манджаро себя проявила.
Даже винда не так гладко становится — виндовый ноут не обнаруживает железо, ни вайфая, ни тачпада, хрен подлезешь с дровами. А Манджаро запускает все влегкую
Здравствуйте, Sinclair, Вы писали: S>Посылаю очередной луч позора в Редмонд.
Что-то с ними творится нехорошее. Флешки не вынимаются, даже если все процессы прибьёшь. Теперь правило такое: сначала просишь, а потом ждёшь 10 сек и пока комп включен просто выдергиваешь. Чтоб комп знал и не запорол диск. Ну и вставляешь только во включенный. Вдруг выдернул у выключенного.
Но тут есть (была) проблема круче. Поиск файлов целый год не работал. Только недавно они апдейт выкатили, и опять заработало. 1 год!!! А это не какая то ерунда. Это поле ввода рядом с текущей директорией. Причём поле которое при перемещении (изменении размеров) окна постоянно увеличивается и практически полностью скрывает текущую директорию. И зря, всё равно не работало.
Ну и совсем смешное, завалил калькулятор. Копировал что-то через буфер обмена и ага... Калькулятор! За это раньше почётное звание хакера давали.
Нехорошо это всё.
Сергей
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали: S>До сих пор (Win 11, последние обновления) в 97 случаях из 100 винда продолжает с выдуманной беспомощностью рассказывать мне, что "я не смогла, наверное кто-то что-то использует"....
Вот опять — не отдаёт внешний HDD.
Ни Process Explorer, ни Resource Monitor никаких хэндлов не видят
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>>До сих пор (Win 11, последние обновления) в 97 случаях из 100 винда продолжает с выдуманной беспомощностью рассказывать мне, что "я не смогла, наверное кто-то что-то использует".... S>Вот опять — не отдаёт внешний HDD. S>Ни Process Explorer, ни Resource Monitor никаких хэндлов не видят
Прошлый раз был WSL2
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали: CC>Прошлый раз был WSL2
В прошлый раз его удалось найти монитором ресурсов. На этот раз виновник зашифровался поглубже
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, CreatorCray, Вы писали: CC>>Прошлый раз был WSL2 S>В прошлый раз его удалось найти монитором ресурсов. На этот раз виновник зашифровался поглубже
Мне кажется это снова он
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали: CC>Мне кажется это снова он
Возможно. Но это какбэ пример того, что сказки в стиле "люди, достаточно квалифицированные для того, чтобы аккуратно закрыть программу, удерживающую устройство от unmount, способны воспользоваться инструментарием для поиска такой программы" — всего лишь сказки. И что в винде стоило бы заняться не поиском места для кнопки старт или привинчиванием генератора пиктограмм по фотографиям, а, например, решением этой проблемы.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
S>сказки в стиле "люди, достаточно квалифицированные для того, чтобы аккуратно закрыть программу, удерживающую устройство от unmount, способны воспользоваться инструментарием для поиска такой программы"
Есть подозрение что как раз "люди, достаточно квалифицированные" таки нашли бы причину, имея физический доступ к девайсу, а не "напевая по телефону".
S>И что в винде стоило бы заняться не поиском места для кнопки старт или привинчиванием генератора пиктограмм по фотографиям, а, например, решением этой проблемы.
Ну напиши в Спортлото
Я вот не помню, у тебя там какая версия винды то? Если 11 то сразу на помоечку не разбираясь, это в настоящее время не полноценная ОС а сырая бета.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Когда же винда научится извлекать устройства?
Здравствуйте, CreatorCray, Вы писали: CC>Есть подозрение что как раз "люди, достаточно квалифицированные" таки нашли бы причину, имея физический доступ к девайсу, а не "напевая по телефону".
S>>И что в винде стоило бы заняться не поиском места для кнопки старт или привинчиванием генератора пиктограмм по фотографиям, а, например, решением этой проблемы. CC>Ну напиши в Спортлото
У меня достаточно опыта написания в Спортлото.
Вот, из недавнего: https://github.com/microsoft/WSL/issues/11011
Сюда — продуктивнее. CC>Я вот не помню, у тебя там какая версия винды то? Если 11 то сразу на помоечку не разбираясь, это в настоящее время не полноценная ОС а сырая бета.
11я.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Когда же винда научится извлекать устройства?
Здравствуйте, Sinclair, Вы писали:
CC>>Ну напиши в Спортлото S>У меня достаточно опыта написания в Спортлото. S>Вот, из недавнего: https://github.com/microsoft/WSL/issues/11011
Дык о том и речь
S>Сюда — продуктивнее.
Ну... Разишо тут хотя бы ответят, но пофиксить наговнокоженное в WSL это всё равно не поможет.
CC>>Я вот не помню, у тебя там какая версия винды то? Если 11 то сразу на помоечку не разбираясь, это в настоящее время не полноценная ОС а сырая бета. S>11я.
Соболезную
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока