用IDE排線及USB 介面控制光碟機問題 |
尚未結案
|
Sarick
一般會員 發表:14 回覆:19 積分:6 註冊:2004-01-19 發送簡訊給我 |
各位前輩, 小弟有一是想要請教,就是小弟用IDE排線及USB 介面控制光碟機可是USB正常但是用IDE確不正常,可是所有的中斷點結取的數值卻一模一樣,是不是有小弟沒有注意到的地方,謝謝各位前輩指點!! 程式如下 : Ale Sarick BYTE temp[512];
SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER sptdwb;
char bDeviceName[20];
char j;
BOOL status = 0;
ULONG length = 0, returned = 0; strcpy(bDeviceName,"?:");
bDeviceName[0] = DeviceID;
strcpy(buffer,"\\\\.\\");
strcat(buffer,bDeviceName);
hSCSIDevice0 = CreateFile(TEXT(buffer), GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,0,
NULL);
if(hSCSIDevice0 != INVALID_HANDLE_VALUE)
{
ZeroMemory(&sptdwb, sizeof(SCSI_PASS_THROUGH_DIRECT));
FillMemory(temp, sizeof(temp), 0x00);
FillMemory(sptdwb.ucSenseBuf, sizeof(sptdwb.ucSenseBuf), 0x00); sptdwb.sptd.Length = sizeof(SCSI_PASS_THROUGH_DIRECT);
sptdwb.sptd.PathId = sptdwb.sptd.TargetId = sptdwb.sptd.Lun = 0;
sptdwb.sptd.CdbLength = 12;
sptdwb.sptd.DataIn = SCSI_IOCTL_DATA_IN;
sptdwb.sptd.SenseInfoLength = 24;
sptdwb.sptd.DataTransferLength = bufferL;
sptdwb.sptd.TimeOutValue = 0xff;
sptdwb.sptd.DataBuffer = temp;
sptdwb.sptd.SenseInfoOffset =
offsetof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER,ucSenseBuf); sptdwb.sptd.Cdb[0] = CDB0;
sptdwb.sptd.Cdb[1] = CDB1;
sptdwb.sptd.Cdb[2] = CDB2;
sptdwb.sptd.Cdb[3] = CDB3;
sptdwb.sptd.Cdb[4] = CDB4;
sptdwb.sptd.Cdb[5] = CDB5;
sptdwb.sptd.Cdb[6] = CDB6;
sptdwb.sptd.Cdb[7] = CDB7;
sptdwb.sptd.Cdb[8] = CDB8;
sptdwb.sptd.Cdb[9] = CDB9;
sptdwb.sptd.Cdb[10] = CDB10;
sptdwb.sptd.Cdb[11] = CDB11; length = sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER); status = DeviceIoControl(hSCSIDevice0,
IOCTL_SCSI_PASS_THROUGH_DIRECT,
&sptdwb,
length,
&sptdwb,
length,
&returned,
FALSE);< face='Arial'>
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |