Changeset 7567 for trunk/src/kernel32/overlappedio.h
- Timestamp:
- Dec 7, 2001, 3:13:39 PM (24 years ago)
- File:
-
- 1 edited
-
trunk/src/kernel32/overlappedio.h (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/overlappedio.h
r7564 r7567 1 /* $Id: overlappedio.h,v 1. 5 2001-12-07 11:28:11sandervl Exp $ */1 /* $Id: overlappedio.h,v 1.6 2001-12-07 14:13:38 sandervl Exp $ */ 2 2 3 3 /* … … 13 13 #define __OVERLAPPEDIO_H__ 14 14 15 #define NR_ASYNC_OPERATIONS 315 #define NR_ASYNC_OPERATIONS 4 16 16 #define ASYNC_INDEX_READ 0 17 17 #define ASYNC_INDEX_WRITE 1 18 18 #define ASYNC_INDEX_POLL 2 19 #define ASYNC_INDEX_BUSY 3 19 20 20 21 #define ASYNCIO_READ 1 … … 31 32 } OVERLAPPED_THREAD_PARAM, *LPOVERLAPPED_THREAD_PARAM; 32 33 33 typedef struct tagOVERLAPPED_ODIN{34 DWORD dwAsyncType;35 HANDLE hHandle;36 LPCVOID lpBuffer;37 DWORD nNumberOfBytes;38 DWORD dwTimeOut;39 LPOVERLAPPED lpOverlapped;40 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine;41 DWORD *lpdwResult;42 DWORD dwLastError;43 DWORD dwUserData;44 tagOVERLAPPED_ODIN *next;45 } ASYNCIOREQUEST, *LPASYNCIOREQUEST;46 34 47 typedef BOOL (* LPOVERLAPPED_HANDLER)(LPASYNCIOREQUEST lpRequest, DWORD *lpdwResult, DWORD *lpdwTimeOut); 35 class ASYNCIOREQUEST 36 { 37 public: 38 ASYNCIOREQUEST() 39 { 40 memset(this, 0, sizeof(ASYNCIOREQUEST)); 41 hEventCancel = ::CreateEventA(NULL, TRUE, FALSE, NULL); 42 if(hEventCancel == 0) DebugInt3(); 43 }; 44 45 ~ASYNCIOREQUEST() 46 { 47 ::CloseHandle(hEventCancel); 48 }; 49 50 DWORD dwAsyncType; 51 HANDLE hHandle; 52 LPCVOID lpBuffer; 53 DWORD nNumberOfBytes; 54 DWORD dwTimeOut; 55 LPOVERLAPPED lpOverlapped; 56 LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine; 57 DWORD *lpdwResult; 58 DWORD dwLastError; 59 DWORD dwEventMask; 60 DWORD dwUserData; 61 HANDLE hEventCancel; 62 ASYNCIOREQUEST *next; 63 }; 64 65 typedef ASYNCIOREQUEST *LPASYNCIOREQUEST; 66 67 typedef DWORD (* LPOVERLAPPED_HANDLER)(LPASYNCIOREQUEST lpRequest, DWORD *lpdwResult, DWORD *lpdwTimeOut); 48 68 49 69 enum OverlappedIOError { … … 78 98 79 99 BOOL WaitForEvent(HANDLE hHandle, 100 DWORD dwEventMask, 80 101 LPDWORD lpfdwEvtMask, 81 102 LPOVERLAPPED lpOverlapped, … … 116 137 //[ASYNC_INDEX_WRITE] list of pending write (full-duplex mode) operations 117 138 //[ASYNC_INDEX_POLL] list of pending poll operations 139 //[ASYNC_INDEX_BUSY] list of operations that are being handled 118 140 LPASYNCIOREQUEST pending[NR_ASYNC_OPERATIONS]; 119 141
Note:
See TracChangeset
for help on using the changeset viewer.
