Запрет монтирования ФС flash накопителя
От: hwe.exe Украина  
Дата: 19.03.12 17:53
Оценка:
В зависимости от серийного номера флешки необходимо разрешить/запретить монтирование файловой системы. Грубо говоря если флешка "не наша", то пользователь ее не должен увидеть ни в одном файловом менеджере. Я подобное реализовывал в считывая InstanceId из реестра, а потом просто отключал флешку. Проблема в том, что на некоторых машинах флешка отключается не сразу, а через несколько секунд, что не приемлемо, да и желательно, чтобы ФС не монтировалась вообще. Как я понял,чтобы такое реализовать необходимо написать драйвер-фильтр. Драйверов я до этого не писал(иначе не было бы этого поста), поэтому есть несколько вопросов.

К какому драйверу лучше всего приаттачить такой фильтр(в будущем я хотел бы реализовать функцию "только чтение")? Исходя из картинки MSDN его необходимо аттачить как верхний фильтр usbstor.sys(наверное можно и как верхний фильтр disk.sys, но я где-то видел, что partmgr.sys также является upper filter над disk.sys, а порядок загрузки фильтров нигде не определяется), но тогда достаточно сложно реализовать "только четние"(хотя может мне так только кажется...).

ps: по форуму искал, нашел много всего, кроме того как запретить монтировать ФС. В этой теме
Автор: dimb82
Дата: 09.07.10
человек получал серийный номер в файловом фильтре, а можно ли в нем запретить монтирование ФС?
flash
Re: Запрет монтирования ФС flash накопителя
От: hwe.exe Украина  
Дата: 19.03.12 21:10
Оценка:
Я когда писал, не подумал, что если ФС неизвестна или ее просто нет на диске, то диск все равно отобразиться для пользователя и он его сможет отформатировать. Все равно вопросы остаются:
1. Куда присоединить фильтр?
2. Как узнать SerialNumber flash накопителя?
Re[2]: Запрет монтирования ФС flash накопителя
От: v.tatischev Россия  
Дата: 20.03.12 11:28
Оценка:
Здравствуйте, hwe.exe, Вы писали:

HE>Я когда писал, не подумал, что если ФС неизвестна или ее просто нет на диске, то диск все равно отобразиться для пользователя и он его сможет отформатировать. Все равно вопросы остаются:

HE>1. Куда присоединить фильтр?
HE>2. Как узнать SerialNumber flash накопителя?

не знаю, поможет иль нет: http://www.emmet-gray.com/Articles/USB_SerialNumbers.htm
наткнулся случайно
Re[3]: Запрет монтирования ФС flash накопителя
От: hwe.exe Украина  
Дата: 20.03.12 12:38
Оценка:
Здравствуйте, v.tatischev, Вы писали:

VT>не знаю, поможет иль нет: http://www.emmet-gray.com/Articles/USB_SerialNumbers.htm

VT>наткнулся случайно

Спасибо, но я так реализовал уже. Мне необходимо получить serial number до того как пользователь "увидит" флешку в системе и "отключить" ее или "пропустить", плюс хотелось бы реализовать "только чтение". В общем все упирается, по видимому, в драйвер.
Re[4]: Запрет монтирования ФС flash накопителя
От: v.tatischev Россия  
Дата: 20.03.12 13:06
Оценка:
Здравствуйте, hwe.exe, Вы писали:

HE>Здравствуйте, v.tatischev, Вы писали:


VT>>не знаю, поможет иль нет: http://www.emmet-gray.com/Articles/USB_SerialNumbers.htm

VT>>наткнулся случайно

HE>Спасибо, но я так реализовал уже. Мне необходимо получить serial number до того как пользователь "увидит" флешку в системе и "отключить" ее или "пропустить", плюс хотелось бы реализовать "только чтение". В общем все упирается, по видимому, в драйвер.


я тут подумал и посмотрел на msdn: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363411%28v=vs.85%29.aspx.
Ну и тут посмотреть можно: http://exelab.ru/f/index.php?action=vthread&forum=2&topic=10008&page=2
Re[5]: Запрет монтирования ФС flash накопителя
От: hwe.exe Украина  
Дата: 20.03.12 17:03
Оценка:
Здравствуйте, v.tatischev, Вы писали:

VT>я тут подумал и посмотрел на msdn: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363411%28v=vs.85%29.aspx.

VT>Ну и тут посмотреть можно: http://exelab.ru/f/index.php?action=vthread&forum=2&topic=10008&page=2

Я про это знаю. Я делал немного не так(брал серийник из InstanceId), но про этот способ знаю(кстати IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER не всегда работает(не помню где видел, сам не проверял)). По теме получения серийника флешки, если кому понадобится, есть здесь и здесь более подробно.

Меня интересует как сделать так, чтобы флешку система не видела как дисковый накопитель и
как узнать серийный номер именно в драйвере(хотя думаю, что в ходе написания драйвера проблема решиться).
Re[6]: Запрет монтирования ФС flash накопителя
От: v.tatischev Россия  
Дата: 20.03.12 18:40
Оценка:
Здравствуйте, hwe.exe, Вы писали:

HE>Здравствуйте, v.tatischev, Вы писали:


VT>>я тут подумал и посмотрел на msdn: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363411%28v=vs.85%29.aspx.

VT>>Ну и тут посмотреть можно: http://exelab.ru/f/index.php?action=vthread&forum=2&topic=10008&page=2

HE>Я про это знаю. Я делал немного не так(брал серийник из InstanceId), но про этот способ знаю(кстати IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER не всегда работает(не помню где видел, сам не проверял)). По теме получения серийника флешки, если кому понадобится, есть здесь и здесь более подробно.


HE>Меня интересует как сделать так, чтобы флешку система не видела как дисковый накопитель и

HE>как узнать серийный номер именно в драйвере(хотя думаю, что в ходе написания драйвера проблема решиться).

Вообще на wasm.ru было обсуждение. Ну и потом в блогах x64 и Great, например http://x64blog.name/blog
Re[6]: Запрет монтирования ФС flash накопителя
От: kuso  
Дата: 21.03.12 11:37
Оценка:
Здравствуйте, hwe.exe, Вы писали:

HE>как узнать серийный номер именно в драйвере(хотя думаю, что в ходе написания драйвера проблема решиться).


При наличии нужного PDEVICE_OBJECT использовать http://msdn.microsoft.com/en-us/library/windows/hardware/ff551679(v=vs.85).aspx.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.