WSAIoctl()

王朝百科·作者佚名  2010-01-05  
宽屏版  字体:   |    |    |  超大  

简述:控制一个套接口的模式。

#include <winsock2.h>

int WSAAPI WSAIoctl(SOCKET s, DWORD

dwIoControlCode, LPVOID lpvInBuffer, DWORD

cbInBuffer, LPVOID lpvOutBuffer, DWORD

cbOutBuffer, LPDWORD lpcbBytesReturned,

LPWSAOVERLAPPED lpOverlapped,

LPWSAOVERLAPPED_COMPLETION_ROUTINE

lpCompletionRoutine);

s:一个套接口的句柄。

dwIoControlCode:将进行的操作的控制代码。

lpvInBuffer:输入缓冲区的地址。

cbInBuffer:输入缓冲区的大小。

lpvOutBuffer:输出缓冲区的地址。

cbOutBuffer:输出缓冲区的大小。

lpcbBytesReturned:输出实际字节数的地址。

lpOverlapped:WSAOVERLAPPED结构的地址。

lpCompletionRoutine:一个指向操作结束后调用的例程指针。

返回值:

调用成功后,WSAIoctl ()函数返回0。否则的话,将返回INVALID_SOCKET错误,应用程序可通过WSAGetLastError()来获取相应的错误代码。

错误代码:

WSANOTINITIALISED 在调用本API之前应成功调用WSAStartup()。

WSAENETDOWN 网络子系统失效。

WSAEINVAL cmd不是一个合法的命令;或者一个输入参数非法;或者命令对于该种类型的套接口不适用。

WSAEINPROGRESS 在一个回调函数运行时调用了该函数。

WSAENOTSOCK 描述字不是一个套接口。

WSAEOPNOTSUPP 指定的ioctl命令无法实现,例如在SIO_SET_QOS或 SIO_SET_GROUP_QOS中指定的流描述无法实现。

WSA_IO_PENDING 一个重叠操作被成功启动,过后将报告完成情况。

WSAEWOULDBLOCK 套接口标志为非阻塞,且所需操作将产生阻塞。

另请参阅: socket(), ioctlsocket(), WSASocket(),setsockopt(), getsockopt().

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有