异步读
异步与同步的概念:同步:必须等待函数执行的操作完成,才返回
异步:只发送请求,不用等待函数执行完成,立即返回
异步的实现:
HANDLE g_hOverlappedEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
OVERLAPPED Overlapped;
memset(&Overlapped, 0, sizeof(OVERLAPPED));
ULONG ulRet= 0;
Overlapped.hEvent = g_hOverlappedEvent;
ulRet = ReadFile(gh_Device, &OpInfo, sizeof(OP_INFO), &ulBytesReturn, &Overlapped);
if (ulRet == 0)
{
if (GetLastError() == ERROR_IO_PENDING)
{
ULONG ulReturn = WaitForSingleObject(Overlapped.hEvent, INFINITE);
if (ulReturn == WAIT_FAILED)
{
break;
}
}
}
具体的可以参考这篇文章
http://www.blogfshare.com/irp-synchronization-asynchronous.html
页:
[1]