关于SIO_RCVALL
為什么SIO_RCVALL=0x98000001 ?是有根據的。?
在winsock2.h中定義了以下宏:?
#define IOC_VOID 0x20000000 /* no parameters */?
#define IOC_OUT 0x40000000 /* copy out parameters */?
#define IOC_IN 0x80000000 /* copy in parameters */?
#define IOC_UNIX 0x00000000?
#define IOC_WS2 0x08000000?
#define IOC_PROTOCOL 0x10000000?
#define IOC_VENDOR 0x18000000?
#define _WSAIO(x,y) (IOC_VOID|(x)|(y))?
#define _WSAIOR(x,y) (IOC_OUT|(x)|(y))?
#define _WSAIOW(x,y) (IOC_IN|(x)|(y))?
#define _WSAIORW(x,y) (IOC_INOUT|(x)|(y))?
里面沒有SIO_RCVALL的定義,但是你可以查看msdn中的ms-help://MS.MSDNQTR.2003FEB.2052/winsock/winsock/wsaioctl_2.htm看WSAIoctl函數中的SIO_RCVALL 的說明,你可以知道它是這樣定義的:?
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)?
即:?
0x80000000|0x18000000|0x00000001=0x98000001?
其中IOC_VENDOR 實際上是IOC_WS2|IOC_PROTOCOL ,因為要receive all IP packets on the network on win32 platform.?
總結
以上是生活随笔為你收集整理的关于SIO_RCVALL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10 种常用的CSS框架,收藏一下
- 下一篇: lucas–kanade_Lucas-K