WSAIoctl
来源:互联网 发布:为什么wifi网络不稳定 编辑:程序博客网 时间:2024/05/20 05:25
int WSAAPI WSAIoctl(SOCKET s,//一个套接口的句柄。
DWORD dwIoControlCode,//将进行的操作的控制代码
LPVOID lpvInBuffer, //输入缓冲区的地址
DWORD cbInBuffer,//输出缓冲区的地址
LPVOID lpvOutBuffer, //输入缓冲区的大小
DWORD cbOutBuffer, //输出缓冲区的大小
LPDWORD lpcbBytesReturned,//输出实际字节数的地址
LPWSAOVERLAPPED lpOverlapped,//WSAOVERLAPPED结构的地址
LPWSAOVERLAPPED lpCompletionRoutine//一个指向操作结束后调用的例程指针
)
返回值:
调用成功后,WSAIoctl ()函数返回0。否则的话,将返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()来获取相应的错误代码。
错误代码:
WSANOTINITIALISED 在调用本API之前应成功调用WSAStartup()。
WSAENETDOWN 网络子系统失效。
WSAEINVAL cmd不是一个合法的命令;或者一个输入参数非法;或者命令对于该种类型的套接口不适用。
WSAEINPROGRESS 在一个回调函数运行时调用了该函数。
WSAENOTSOCK 描述字不是一个套接口。
WSAEOPNOTSUPP 指定的ioctl命令无法实现,例如在SIO_SET_QOS或 SIO_SET_GROUP_QOS中指定的流描述无法实现。
WSA_IO_PENDING 一个重叠操作被成功启动,过后将报告完成情况。
WSAEWOULDBLOCK 套接口标志为非阻塞,且所需操作将产生阻塞。
为什么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.
- WSAIoctl
- WSAIoctl()
- WSAIoctl
- WSAIoctl Function
- WSAIoctl Function
- (转)WSAIoctl Function
- (转)WSAIoctl Function
- (转)WSAIoctl Function
- WSAIoctl 的SIO_GET_EXTENSION_FUNCTION_POINTER用法
- WSAIoctl返回10045错误
- WSAIoctl 函数详解
- WSAIoctl 的SIO_GET_EXTENSION_FUNCTION_POINTER用法
- WSAIoctl函数SIO_GET_EXTENSION_FUNCTION_POINTER参数的意义
- [ILINK32 Error] Error: Unresolved external 'WSAIoctl'
- 使用WSAIoctl和SIO_ADDRESS_LIST_QUERY去查询本机ip
- IOCP中为什么使用WSAIoctl获取AcceptEx函数指针
- IOCP中为什么使用WSAIoctl获取AcceptEx函数指针
- 使用WSAIoctl获取socket扩展函数(如AcceptEx)的指针
- 写论文时word2007的一些问题
- android NFC学习笔记
- 杭电ACM-1237-简单计算器
- 集合框架(Collection)
- 阿斯打扫打扫打扫阿斯打扫气温千瓦时的啊死党
- WSAIoctl
- org.dom4j.DocumentException: Error on line 1 of document : Premature end of file. Nested exception:
- iOS 8 AutoLayout与Size Class
- 词组缩写 2564HDU
- 手机页面优化几点(bbs 1)
- MFC编写的小游戏过程中的收获
- 一个简单的ini文件Loader
- openCV学习笔记(6):Mat类/数据结构详解(1)
- hdu1106(排序,java水过)