2017-03-07 67 views
0

使用(IPortableDeviceEventCallback)將文件從/複製到/存儲設備中刪除時是否可以通知?Windows便攜式設備 - 創建/複製/刪除新文件時通知

到目前爲止,我只有在閃存驅動器斷開連接或其名稱由用戶在外部更改時才被通知。

編輯:我有興趣收到WPD_EVENT_OBJECT_ADDED事件。

IPortableDeviceCapabilities::GetSupportedEvents 

顯示了支持所需的事件,但沒有什麼是在新的文件拷貝

回答

0

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

他們可以給你所需要的回調。

+0

正如我的「編輯」代碼片段所述,閃存驅動程序確實支持Object_Added事件。那麼它怎麼永遠不會發送它? –

+0

就「支持」而言,這裏只是一層抽象,我認爲這取決於你如何測試它。 我已經嘗試過使用我的閃存盤的MS WPD API示例上的這種情況,並且似乎WPD事件只有在使用WPD方法的內容時纔會觸發:通過IPortableDevice方法傳輸內容等等。 但是,使用該閃存作爲USB存儲設備的操作不存在任何事件,例如從資源管理器創建文件夾等。 –