久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4351|回復: 0
打印 上一主題 下一主題
收起左側(cè)

從系統(tǒng)中卸載 USB 設備

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90014 發(fā)表于 2015-9-13 16:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
          測試的過程中需要用到自動從系統(tǒng)中卸載 USB 設備,就從網(wǎng)上找來資料,查看 USB 設備的卸載過程。一般情況下,先查找總線類型,如果是 USB 設備,則可以考慮卸載。另外,需要檢查這個設備是屬于哪一種類型。用GetDriveType來獲取存儲設備的類型,必須是2(可移動設備)或5(CDROM)類型。因為這兩種設備都涉及到了是否存在介質(zhì)的問題,如果只是簡單的采用Dir列舉目錄的方法,可能都會出錯。甚至對于要列舉的目錄下沒有文件存在時,采用列舉目錄方法來判斷一個驅(qū)動器是否正常,都會出現(xiàn)誤判。在判斷完驅(qū)動器類型后,還可以通過GetVolumeInformation 來獲取文件卷的信息,如磁盤序列號,文件系統(tǒng)類型等內(nèi)容,進而通過GetDiskFreeSpaceEx這個函數(shù),取得磁盤容量的大小及剩余容量的大小。至此,對于一個文件卷的基本信息都可以取得了。
下面要做的事情是檢查該文件是否有被系統(tǒng)的其他進程占用。這個操作比較繁雜。首先取得當前進程的ProcessID,由此查找到系統(tǒng)的進程列表,并且采用循環(huán)的方法,從系統(tǒng)的進程列表中找出的所有使用該設備的進程。如果沒有其他進程使用,則可以關閉該設備。否則失敗。
當沒有其他進程使用時,查找該設備的連接關系,即從磁盤接口類中找到該設備的物理設備名稱,如...\\Device\Harddisk1\(lp2)VID_0x1023....類似的設備名稱,通過查找其詳細接口信息,找到其上層連接關系(CM_Get_Parent),即屬于哪一個USB Storage接口,最后通過給該端口發(fā)送CM_Request_Device_Eject請求,完成卸載過程。
需要注意的是,當一個USB 端口安裝有多個設備時,其中的一個設備卸載,會導致全部連接到該端口的設備都卸載掉,而不是單一的指定的設備。當然,如果其中有的設備在工作中,被系統(tǒng)的其他進程占用,都會導致卸載的失敗。                                                                                                                    
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美女优在线观看 | 高清亚洲 | 国产视频一区二区 | 欧美一区二区三区在线观看 | 免费在线一区二区三区 | 日韩色在线 | 久久一区二区三区四区五区 | 在线日韩福利 | 久久久久9999亚洲精品 | 欧美aaaaaa| 久久精彩视频 | 亚洲一二三区不卡 | 亚洲精品1区 | 美女黄色在线观看 | 久久国产精品72免费观看 | 黄片毛片免费观看 | 久久久精品网 | 精品啪啪 | 成人福利网站 | 国产激情网站 | 91久久综合亚洲鲁鲁五月天 | 国产免费av在线 | 亚洲免费人成在线视频观看 | 欧美精品在线一区二区三区 | 国产精品美女久久久久 | 亚洲综合热| 免费h视频| 国产精品欧美一区二区三区 | 91一区 | 色婷婷精品久久二区二区蜜臂av | 欧美日韩在线精品 | 综合成人在线 | 久久国产精品一区二区三区 | 91久色| 国产在线观看一区 | 国产亚洲精品精品国产亚洲综合 | 欧美一区在线视频 | 俺去俺来也www色官网cms | 亚洲综合免费 | 亚洲成人精品免费 | 国产精品亚洲成在人线 |