如何存取外接的USB 硬碟?? |
尚未結案
|
KuengYan
一般會員 發表:18 回覆:17 積分:7 註冊:2002-08-02 發送簡訊給我 |
各位前輩, 小弟有個問題.
我要如何對外接的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 發送簡訊給我 |
|
bio
一般會員 發表:42 回覆:36 積分:20 註冊:2003-03-05 發送簡訊給我 |
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 發送簡訊給我 |
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); |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |