HANDLE hFile = = CreateFile(this->m_linkname , GENERIC_READ ,
0 , NULL , OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, NULL);
OVERLAPPED ol = {0};
ol.hEvent = ::CreateEvent(NULL , FALSE , FALSE , NULL);
::DeviceIoControl(hFile , TESTDRIVER, 0 , NULL,
buf , 4 , &dwRet , &ol);
//等待受信,貌似不能成功
while(::WaitForSingleObject(ol.hEvent , 300) == WAIT_TIMEOUT)
{
AfxMessageBox("等待中");
}
在WaitForSingleObject的时候不会弹出对话框,貌似线程阻塞住了,一直等到DeviceIoControl执行成功之后才会恢复。请问下这个是什么原因
DeviceIoControl已然是在另一个线程中的了。现在的要解决的问题是,DeviceIoControl异步为什么会失败
又见偶像了^_^你的意思是不是说IRP_MJ_DEVICE_CONTROL中需要提供一种异步的通信方式才行?