Можно ли получать уведомления, когда файл удаляется с / копируется на / устройство хранения с помощью (IPortableDeviceEventCallback
).
До сих пор я был только уведомлен, когда флешка была отключена или ее имя было изменено извне пользователем.
редактировать: Я заинтересован в получении WPD_EVENT_OBJECT_ADDED
событие.
IPortableDeviceCapabilities::GetSupportedEvents
показывает, что необходимое событие поддерживается, но при новой копии файла ничего не отправляется
WPD_EVENT_OBJECT_ADDED соответствует событию MTP ObjectAdded.
https://msdn.microsoft.com/en-us/microsoft-r/dn932706
Я думаю, что то, какие события действительно отправляются, зависит от конкретной реализации протокола MTP на конкретном портативном устройстве.
Я верю, что основной целью WPD API является управление портативными устройствами, такими как телефоны и музыкальные плееры, доступ и методы работы с USB-флешками экспортируются только как некоторый уровень совместимости и могут не содержать всех функций.
Если вы хотите получать такие уведомления не от переносных устройств, реализующих MTP, а только от USB-флешек, вам стоит взглянуть, например, на минифильтры файловой системы.
https://msdn.microsoft.com/en-us/windows/hardware/drivers/ifs/file-system-minifilter-drivers
Они могут дать вам необходимые обратные вызовы.
Других решений пока нет …