Информация об изменениях

Сообщение Re[7]: Когда же винда научится извлекать устройства? от 10.01.2024 15:59

Изменено 10.01.2024 15:59 m2user

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 всё равно не отрабатывает (проверял на виртуалке).
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 всё равно не отрабатывает (проверял на виртуалке).