В зависимости от серийного номера флешки необходимо разрешить/запретить монтирование файловой системы. Грубо говоря если флешка "не наша", то пользователь ее не должен увидеть ни в одном файловом менеджере. Я подобное реализовывал в считывая InstanceId из реестра, а потом просто отключал флешку. Проблема в том, что на некоторых машинах флешка отключается не сразу, а через несколько секунд, что не приемлемо, да и желательно, чтобы ФС не монтировалась вообще. Как я понял,чтобы такое реализовать необходимо написать драйвер-фильтр. Драйверов я до этого не писал(иначе не было бы этого поста), поэтому есть несколько вопросов.
К какому драйверу лучше всего приаттачить такой фильтр(в будущем я хотел бы реализовать функцию "только чтение")? Исходя из картинки
MSDN его необходимо аттачить как верхний фильтр usbstor.sys(наверное можно и как верхний фильтр disk.sys, но я где-то видел, что partmgr.sys также является upper filter над disk.sys, а порядок загрузки фильтров нигде не определяется), но тогда достаточно сложно реализовать "только четние"(хотя может мне так только кажется...).
ps: по форуму искал, нашел много всего, кроме того как запретить монтировать ФС. В
этой темеАвтор: dimb82
Дата: 09.07.10
человек получал серийный номер в файловом фильтре, а можно ли в нем запретить монтирование ФС?
Я когда писал, не подумал, что если ФС неизвестна или ее просто нет на диске, то диск все равно отобразиться для пользователя и он его сможет отформатировать. Все равно вопросы остаются:
1. Куда присоединить фильтр?
2. Как узнать SerialNumber flash накопителя?
Здравствуйте, hwe.exe, Вы писали:
HE>Я когда писал, не подумал, что если ФС неизвестна или ее просто нет на диске, то диск все равно отобразиться для пользователя и он его сможет отформатировать. Все равно вопросы остаются:
HE>1. Куда присоединить фильтр?
HE>2. Как узнать SerialNumber flash накопителя?
не знаю, поможет иль нет:
http://www.emmet-gray.com/Articles/USB_SerialNumbers.htm
наткнулся случайно
Здравствуйте, v.tatischev, Вы писали:
VT>не знаю, поможет иль нет: http://www.emmet-gray.com/Articles/USB_SerialNumbers.htm
VT>наткнулся случайно
Спасибо, но я так реализовал уже. Мне необходимо получить serial number до того как пользователь "увидит" флешку в системе и "отключить" ее или "пропустить", плюс хотелось бы реализовать "только чтение". В общем все упирается, по видимому, в драйвер.
Здравствуйте, 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
Здравствуйте, 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 не всегда работает(не помню где видел, сам не проверял)). По теме получения серийника флешки, если кому понадобится, есть
здесь и
здесь более подробно.
Меня интересует как сделать так, чтобы флешку система не видела как дисковый накопитель и
как узнать серийный номер именно в драйвере(хотя думаю, что в ходе написания драйвера проблема решиться).
Здравствуйте, 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
Здравствуйте, hwe.exe, Вы писали:
HE>как узнать серийный номер именно в драйвере(хотя думаю, что в ходе написания драйвера проблема решиться).
При наличии нужного PDEVICE_OBJECT использовать
http://msdn.microsoft.com/en-us/library/windows/hardware/ff551679(v=vs.85).aspx.