|
scsi 中SendASPI32Command的问题,急!!!高手进
[复制链接]
我的程序为什么跑一段时间就会在waitforsingleobject 处死等然后超时
部分代码如下:
// Create Event
hSrbEvent= CreateEvent(NULL, TRUE, FALSE, NULL);
if(!hSrbEvent)
{
strcpy(sErrMsg, "AspiExeCmd 执行失败(CreateEvent),请检查...");
#ifdef _DEBUG
sDebug.Format("\t%s\n", sErrMsg);
TRACE(sDebug);
#endif
return FALSE;
}
// Initial
strcpy(sErrMsg, "");
pSrbExec->SRB_PostProc= (LPVOID)hSrbEvent;
// Reset Event
if(!ResetEvent(hSrbEvent))
{
strcpy(sErrMsg, "AspiExeCmd 执行失败(ResetEvent)执行失败,请检查...");
#ifdef _DEBUG
sDebug.Format("\t%s\n", sErrMsg);
TRACE(sDebug);
#endif
return FALSE;
}
// Send Cmd
#ifdef _DLL_
dwStatus= _SendASPI32Command((LPSRB)pSrbExec);
#endif
#ifdef _LIB_
dwStatus= SendASPI32Command((LPSRB)pSrbExec);
#endif
if(dwStatus== SS_PENDING)//asynchronous
{
dwStatus= WaitForSingleObject(hSrbEvent, INFINITE);
if(dwStatus!=WAIT_OBJECT_0)
{
return false;
}
}
else if(pSrbExec->SRB_Status!= SS_COMP)//synchronous
{
。。。
}
CloseHandle(hSrbEvent);
return TRUE;
|
|