Обнаружение того, что съемный диск будет извлечен (перед извлечением), чтобы закрыть дескрипторы открытых файлов - PullRequest
0 голосов
/ 18 сентября 2018

Мое приложение delphi открывает дескриптор диска для съемного диска.Дескриптор необходим для получения изменений файла через ReadDirectoryChangesW.Дескриптор открывается с помощью:

CreateFile(PChar(fFilePath), FILE_LIST_DIRECTORY or GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE, nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS or FILE_FLAG_OVERLAPPED, 0);

Если я пытаюсь удалить диск через «Безопасное извлечение устройства» в системном трее, я получаю диалоговое окно с сообщением: «Windows не может остановить ваше устройство, потому что программа все еще работает».используй это'.Я пытался прослушать события изменения, такие как WM_DEVICECHANGE, DBT_DEVICEREMOVEPENDING, DBT_DEVICEREMOVECOMPLETE или аналогичные, чтобы получить информацию об ожидающей операции извлечения, но, похоже, уже слишком поздно, так как диалоговое окно отображается до того, как эти события запущены.Есть ли событие, которое вызывается прямо перед отображением этого диалога?Или есть какие-то другие варианты, чтобы обнаружить, что USB-накопитель должен быть удален?Любая помощь приветствуется.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...