DWORD dwRead;
HANDLE hEvent;
HANDLE hFile = CreateFile("E:\\Company\\Project\\CallAnly\\db\\dz_ex50a",GENERIC_READ,0,
NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED|FILE_ATTRIBUTE_NORMAL,NULL);
if( INVALID_HANDLE_VALUE != hFile )
{
OVERLAPPED oplus;
OVERLAPPED overlap;
DWORD dwTrans;

BYTE *pbRead = new BYTE[MAX_FILE_SIZE]; ZeroMemory(pbRead ,MAX_FILE_SIZE);
ZeroMemory(&oplus ,sizeof(oplus));
int nResult;

nResult = ReadFile(hFile ,pbRead ,MAX_FILE_SIZE ,&dwRead,&(oplus));
hEvent = CreateEvent(NULL ,TRUE ,FALSE,NULL); ZeroMemory(&overlap ,sizeof(overlap));
overlap.hEvent = hEvent;
nResult = GetOverlappedResult(hFile ,&overlap ,&dwTrans ,TRUE);
WaitForSingleObject(hEvent ,INFINITE);
CloseHandle(hEvent);
//操作完成
CloseHandle(hFile);
delete []pbRead;
}为什么GetOverlappedResult立即返回呢?