DeviceIoControl 占用CPU资源过高如何解决?

土掉渣 2013-04-28 10:21:50
我用如下代码操作优盘,发现循环使用时会占用大量CPU资源,请问大虾们,是我参数设置有误呢,还是需要其它方法来解决?先谢过!

CTest::WriteToScsi(
HANDLE fileHandle,
int cdbLen,
void *cdb,
int dataLen,
BYTE *data
)
{
BOOL status;
ULONG length = 0, returned = 0;
SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER sptdwb;
sptdwb.sptd.Length = sizeof(SCSI_PASS_THROUGH_DIRECT);
sptdwb.sptd.PathId = 0;
sptdwb.sptd.TargetId = 1;
sptdwb.sptd.Lun = 0;
sptdwb.sptd.CdbLength = cdbLen;
sptdwb.sptd.SenseInfoLength = 26;
sptdwb.sptd.DataIn = SCSI_IOCTL_DATA_OUT;
sptdwb.sptd.DataTransferLength = dataLen;
sptdwb.sptd.TimeOutValue = 60;
sptdwb.sptd.DataBuffer = data;
sptdwb.sptd.SenseInfoOffset =
offsetof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER,ucSenseBuf);
memcpy(sptdwb.sptd.Cdb, cdb, cdbLen);
length = sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER);
status = DeviceIoControl(fileHandle,
IOCTL_SCSI_PASS_THROUGH_DIRECT,
&sptdwb,
length,
&sptdwb,
length,
&returned,
FALSE);
if(status == 0)
{
int iErr = GetLastError() ;
}
return status;
}
...全文
124 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧