Здравствуйте, 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, которые об этом и знать не знают, далеко не так легко этому требованию следовать, особенно если исходников нет.