摘要: 直接上代码VOID CALLBACK test_io_completion_routine( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped){ printf("dwErrorCode %d,... 阅读全文
posted @ 2015-04-10 17:42 sysnap 阅读(774) 评论(0) 推荐(0)
摘要: 1 KQUEUE KeInitializeQueueVOID KeInitializeQueue( IN PKQUEUE Queue, IN ULONG Count OPTIONAL );lkd> dt _KQUEUEnt!_KQUEUE +0x000 Header : _DISPATCHER_HE... 阅读全文
posted @ 2015-04-10 17:41 sysnap 阅读(1187) 评论(1) 推荐(0)
摘要: 1 前面说到 GetOverlappedResult的bWait含义GetOverlappedResult的bWait含义表示是否需要等待,如果IO还处于PENDING状态,内部大概实现是这样 hObject = lpOverlapped->hEvent ? lpOverlapped->hEven... 阅读全文
posted @ 2015-04-10 14:56 sysnap 阅读(397) 评论(0) 推荐(0)
摘要: 1ReadFileEx定义BOOL WINAPI ReadFileEx( __in HANDLE hFile, __out LPVOID lpBuffer, __in DWORD nNumberOfBytesToRead, ... 阅读全文
posted @ 2015-04-10 14:42 sysnap 阅读(2740) 评论(0) 推荐(0)
摘要: APC :An asynchronous procedure call,异步过程调用,是微软提供的一种在线程上下文中执行代码的机制。当向一个线程插入一个USER APC时,如果线程进入alertable状态,将会触发该APC的执行线程调用哪些函数会进入alertable状态:SleepExSigna... 阅读全文
posted @ 2015-04-10 14:15 sysnap 阅读(319) 评论(0) 推荐(0)