Возник такой вопрос. Возможно ли на флешке драйвером открыть так директорию, чтобы не закрывая хендла можно было безопано извлечь устройсвто и при этом не выскакивало сообщение "Устройство еще используется". Подбирал различные флаги для ZwCreateFile , но так ни чего и не вышло. Кстати не ясно как влияет флаг FILE_SYNCHRONOUS_IO_NONALERT на директорию.. Подозреваю что механизм безапасного извлечения проверяет все открыте хендлы и если таковые есть, то выскакивает соответствующее сообщение. Понятно что можно отреверсить этот механизм, влепить где-нибудь хуки(хуки - для меня это не приемлемый вариант) или затирать инфу об открытых директориях(если таковая есть и является эталоном проверки ). Но может кто-нибудь сталкивался с данной проблемой и сможет прояснть ситуацию..
Ну, как минимум, два варианта могу подсказать. Во-первых, можно работать с папкой через файловые объекты, без хендлов. Правда, я не уверен, что это 100% будет работать. Во-вторых, можно повесить фильтр на "Mass Storage", и ловить попытки извлечения диска, при обнаружении такой попытки - закрывать файлы и далее тупо пропускать запрос ниже. Начать стоит, думаю, с IRP_MN_QUERY_REMOVE_DEVICE запроса.