2,640
社区成员
发帖
与我相关
我的任务
分享
ATA_PASS_THROUGH_EX stCIP={0};
ATA_PASS_THROUGH_EX stCOP={0};
BOOL bRet=FALSE;
DWORD dwRet=0;
stCIP.AtaFlags = ATA_FLAGS_DATA_IN;
stCIP.DataTransferLength = READ_ATTRIBUTE_BUFFER_SIZE;
stCIP.CurrentTaskFile[0] = 0xd0;//Features
stCIP.CurrentTaskFile[1] = 1;//Sector count
stCIP.CurrentTaskFile[2] = 0;//Sector number
stCIP.CurrentTaskFile[3] = SMART_CYL_LOW;//Cylinder low
stCIP.CurrentTaskFile[4] = SMART_CYL_HI;//Cylinder high
stCIP.CurrentTaskFile[5] = 0xE0;//Device/head
stCIP.CurrentTaskFile[6] = 0xB0;//Command
bRet=DeviceIoControl(hDevice,IOCTL_ATA_PASS_THROUGH,
&stCIP,sizeof(ATA_PASS_THROUGH_DIRECT)+READ_ATTRIBUTE_BUFFER_SIZE,
&stCOP,sizeof(ATA_PASS_THROUGH_DIRECT)+READ_ATTRIBUTE_BUFFER_SIZE,
&dwRet,NULL);