全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2556
推到 Plurk!
推到 Facebook!

如何存取外接的USB 硬碟??

尚未結案
KuengYan
一般會員


發表:18
回覆:17
積分:7
註冊:2002-08-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-15 11:27:57 IP:211.23.xxx.xxx 未訂閱
各位前輩, 小弟有個問題. 我要如何對外接的USB 硬碟做直接存取的動作. 我曾試過以 "\\\\.\\PHYSICALDRIVE" 找到在系統中存在的硬碟. 再來以DeviceIoControl --> "IOCTL_SCSI_GET_ADDRESS" 這個command 去得到該硬碟的 TargetID、PathID 和LUN. 但是當它找到外接的那顆硬碟時. 可以得到該裝置的HANDLE但是此command卻無支援usb外接的裝置(ErrorCode-->50). 我亦曾試過以"wnaspi32.dll"這隻DLL來試(不知是否有版權的問題)...它可以很順利的得到. 且對它下達標準的UFI command. 想請教的是要如何可以對USB硬碟做直接存取的動作?? Best Regards, Yan
KuengYan
一般會員


發表:18
回覆:17
積分:7
註冊:2002-08-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-19 16:50:47 IP:211.23.xxx.xxx 未訂閱
各位好, 經過幾天的實驗, 發現有些DeviceIOControl的Command無法支援USB界面的裝置. 但是若是要在WIN2K上直接存取有個方法可以用...可以參考DDK下SPTI一章.有詳盡的說明. 透過SCSI_PASS_THROUGH來下UFI Command...即可達到存取的目地. Yan
bio
一般會員


發表:42
回覆:36
積分:20
註冊:2003-03-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-13 00:34:37 IP:218.165.xxx.xxx 未訂閱
KuengYan您好 沒想到你也遇到這樣問題 我於日前也遇到這樣的問題 是這樣 我有一台photo storage 透過外接式USB本想透過SPTI提供的 "IOCTL_SCSI_GET_CAPACITY" status=DeviceIoControl(...IOCTL_SCSI_GET_CAPACITY) 卻發現status=0這就錯拉 但是可以得到HANDLE 但是為啥SCSI_PASS_THROUGH,SCSI_PASS_DIRECT_THROUGH 就沒問題status=1 是SPTI沒辦法支援USB的device嗎
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-16 15:20:01 IP:61.66.xxx.xxx 未訂閱
SPTI當然可以對USB做控制,不過我是對光碟機,而不是對硬碟 不過不知道你要對USB硬碟做什麼事 你是要單純的存取(對某個Drive Label)作讀寫 還是要下ATA command 下面是我下ATAPI command的方式,可以參考一下 (ATA的語法好像是用IOCTL_ATA_PASS_THROUGH_DIRECT,不太確定)  
 
                status = DeviceIoControl(fileHandle[ucCurDrv],
                             IOCTL_SCSI_PASS_THROUGH_DIRECT,
                             &sptdwb,
                             sizeof(SCSI_PASS_THROUGH_DIRECT),
                             &sptdwb,
                             length,
                             &ulByteReturned,
                             FALSE);
系統時間:2024-04-30 2:59:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!