完成端口
2015-10-26 22:58
323 查看
1. 创建并绑定到设备IO
BOOL Create(int nMaxConcurrency = 0) { m_hIOCP = CreateIoCompletionPort( INVALID_HANDLE_VALUE, NULL, 0, nMaxConcurrency); chASSERT(m_hIOCP != NULL); return(m_hIOCP != NULL); } BOOL AssociateDevice(HANDLE hDevice, ULONG_PTR CompKey) { BOOL fOk = (CreateIoCompletionPort(hDevice, m_hIOCP, CompKey, 0) == m_hIOCP); chASSERT(fOk); return(fOk); }
BOOL AssociateSocket(SOCKET hSocket, ULONG_PTR CompKey) { return(AssociateDevice((HANDLE) hSocket, CompKey)); }PS: 也可以直接调用
CreateIoCompletionPort一次, 这里是为了更好理解该函数.2. 得到设备I/O完成通知
BOOL GetStatus(ULONG_PTR* pCompKey, PDWORD pdwNumBytes,OVERLAPPED** ppo, DWORD dwMilliseconds = INFINITE) {return(GetQueuedCompletionStatus(m_hIOCP, pdwNumBytes,pCompKey, ppo, dwMilliseconds));}3. 主动向完成端口内核对象发送设备I/O完成通知
BOOL PostStatus(ULONG_PTR CompKey, DWORD dwNumBytes = 0,OVERLAPPED* po = NULL) {BOOL fOk = PostQueuedCompletionStatus(m_hIOCP, dwNumBytes, CompKey, po);chASSERT(fOk);return(fOk);}
相关文章推荐
- 46.Rotate List
- 题目
- [BZOJ1641][Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- Scala学习笔记<基本数据结构>
- iOS启动时如何添加引导页面 小demo
- Axis,axis2,Xfire以及cxf对比
- 存储器层次结构
- bzoj3433【Usaco2014 Jan】Recording the Moolympicx
- ubutu安装mpich3遇到的问题
- Could not find developer disk image
- 录制后没有userSession
- codeforces 589 I - Lottery(水)
- 即时聊天IM之四 Android客户端IM帮助类编写
- Android之React native的介绍和入门指南
- 面试---两个栈实现一个队列
- FFmpeg Android平台编译与使用
- python学习笔记(四)dict和set类型
- poj 2566
- 2015年10月23日作业
- hadoop2.5.1+ubantu14.04伪分布式配置及问题解答