Hello,
I am sorry to bother you with a non-NT related question, but I don?t
know where else to turn to (if there still are out there win 9x DDK
developer sites, I would appreciate if you let me know).
This is my problem:
I have a client program that is performing asynchronous IO with this
driver I?m working on. It works just fine for a while, and then the
driver doesn?t receive any more calls to its device IO control routine.
The system keeps running normally.
I have this routine that does something like:
?
Wait_Semaphore(getEvent, BLOCK_SVC_INTS);
memcpy(cc.lpBuffer, pdb, sizeof(DataBundle));
*cc.lpcbBytesReturned = sizeof(DataBundle);
cc.lpoOverlapped->O_InternalHigh = sizeof(DataBundle);
VWIN32_DIOCCompletionRoutine(cc.lpoOverlapped->O_Internal);
PageUnlock((DWORD)cc.lpBuffer, sizeof(DataBundle));
PageUnlock((DWORD)cc.lpoOverlapped, sizeof(OVERLAPPED));
PageUnlock((DWORD)cc.lpcbBytesReturned, sizeof(DWORD));
Wait_Semaphore(chkEvent, BLOCK_SVC_INTS);
memcpy(pdb, cc.lpBuffer, sizeof(DataBundle));
cc.lpcbBytesReturned = 0;
cc.lpoOverlapped->O_InternalHigh = 0;
VWIN32_DIOCCompletionRoutine(cc.lpoOverlapped->O_Internal);
PageUnlock((DWORD)cc.lpBuffer, sizeof(DataBundle));
PageUnlock((DWORD)cc.lpoOverlapped, sizeof(OVERLAPPED));
PageUnlock((DWORD)cc.lpcbBytesReturned, sizeof(DWORD));
?
The two semaphores are signaled in the device IO control routine on two
separate control codes.
Can anyone tell me what may cause this?
Many thanks,
Andrei Zlate-Podani