А>Это я вижу в Task Manager, создаётся два хэндла, а закрывается только один...
А>про известный мне хэндл я знаю его значение, object address, access. Про второй же я не имею информации.
Значит так, предположений сейчас можно массу сделать, и про файловые фильтры (и не только файловые), и про user-mode перехватчики какие-нибудь. Чтобы не гадать, делаем следующее:
1. Запускаем Process Explorer (скачать можно
отсюда).
2. Запускаем нашу программу и производим в ней действия, чтобы получить второй хендл, описанные выше.
3. Выбираем в Process Explorer'е нужный процесс (наш процесс).
4. Меню View -> Show lower pane.
5. Меню View -> Lower pane view -> Handles.
6. В нижней панели копируем информацию обо всех хендлах и пишем сюда в ответ на это сообщение.
7. Меню View -> Lower pane view -> DLLs.
8. В нижней панели копируем информацию обо всех загруженных DLL и пишем сюда в ответ на это сообщение.
Вперёд, тогда можно будет что-нибудь более интересное сказать. Хотя в итоге я согласен с анонимным оратором — любой чужой код (возможно, содержащий ошибки), загруженный в твой процесс, контролировать невозможно и не нужно. Это проблема пользователя, пусть он решает, — стоит ли использовать такой код или нет (хотя, конечно, иногда трудно доказывать, что не верблюд, это да...).