Итак, вчера я спросил, как происходит определение точки монтирования, Мне удалось запустить его несколько, но некоторые сообщения, похоже, не проходят.Точное монтирование/демонтаж не обнаружено должным образом
При использовании кода найден in this question (click here) written by the user Aid Vllasaliu (me) мое приложение уведомляется Windows, всякий раз, когда задана точка монтирования (в данном случае «E:») установлен ... иногда ...
Точка монтирования «E: «в моем случае это SD-карта, вставленная в устройство чтения карт памяти USB SD.
Проблема Подход:
Установка USB ридера SD Card БЕЗ SD-карты, вставленной дает уведомление
GUID_IO_VOLUME_MOUNT
, и он делает это каждую минуту или двекак читатель карточки USB SD вставлен, я вставляю в него карту SD и получаю следующие уведомления:
GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE
,GUID_IO_VOLUME_FVE_STATUS_CHANGE
иGUID_IO_VOLUME_MOUNT
и 1 минута -GUID_IO_VOLUME_MOUNT
- остановки обновления. Это кажется правильным.Когда я иду выбросить SD-карту, я получаю уведомления
GUID_IO_VOLUME_LOCK
иGUID_IO_VOLUME_UNLOCK
. Хмммм ... не должен ли я также получить уведомлениеGUID_IO_VOLUME_DISMOUNT
? Или что-то, что указывает на то, что точка монтирования была снята? Также снова начинается 1-минутныйGUID_IO_VOLUME_MOUNT
-update.Когда SD-карта снята с USB-устройства чтения карт SD и вставлена снова, когда устройство SD Card Reader подключено, уведомление о точке монтирования не получено повторно. Я должен физически отключить SD Card Reader и снова подключить его. Зачем?
Проблема
Как получилось, что никакого уведомления отправляется Windows, когда демонтируется объем, выталкивается или что-нибудь в этой моде?
Что я сделал до сих пор
Я прочитал, перечитал и вновь перечитать статью MSDN о Device Events, а также искали образцы кода в Интернете, а также статьи о устройстве События, и даже посмотрел код C++, чтобы полностью понять, что может вызвать проблемы, которые у меня возникают.