IOControlCode 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定 IOControl(Int32, Byte[], Byte[]) 方法支持的 IO 控制代码。
public enum class IOControlCode
public enum IOControlCode
type IOControlCode =
Public Enum IOControlCode
- 继承
字段
AbsorbRouterAlert | 2550136837 | 此值等于 Winsock 2 SIO_ABSORB_RTRALERT 常数。 |
AddMulticastGroupOnInterface | 2550136842 | 使用按索引标识的接口联接多播组。 此值等于 Winsock 2 SIO_INDEX_ADD_MCAST 常数。 |
AddressListChange | 671088663 | 当套接字协议族的本地接口列表更改时启用接收通知。 此值等于 Winsock 2 SIO_ADDRESS_LIST_CHANGE 常数。 |
AddressListQuery | 1207959574 | 返回套接字可绑定到的本地接口列表。 此值等于 Winsock 2 SIO_ADDRESS_LIST_QUERY 常数。 |
AddressListSort | 3355443225 | 对 AddressListQuery 字段返回的结构进行排序,并为 IPv6 地址添加范围 ID 信息。 Windows XP 及更高版本的操作系统支持此控制代码。 此值等于 Winsock 2 SIO_ADDRESS_LIST_SORT 常数。 |
AssociateHandle | 2281701377 | 将此套接字与附带接口的指定句柄关联。 有关其他详细信息,请参阅 Winsock 2 参考或文档中特定于协议的相应附件,了解特定配套接口。 建议使用组件对象模型 (COM) 代替此 IOCTL,以发现并跟踪套接字可能支持的其他接口。 此控制代码是为了与某些系统保持向后兼容而提供的,在这些系统中,COM 不可用或由于某些其他原因而无法使用。 此值等于 Winsock 2 SIO_ASSOCIATE_HANDLE 常数。 |
AsyncIO | 2147772029 | 当等待接收数据时启用通知。 此值等于 Winsock 2 FIOASYNC 常数。 |
BindToInterface | 2550136840 | 将套接字绑定到指定的接口索引。 此值等于 Winsock 2 SIO_INDEX_BIND 常数。 |
DataToRead | 1074030207 | 返回可读取的字节数。 此值等于 Winsock 2 FIONREAD 常数。 |
DeleteMulticastGroupFromInterface | 2550136843 | 从多播组中移除套接字。 此值等于 Winsock 2 SIO_INDEX_ADD_MCAST 常数。 |
EnableCircularQueuing | 671088642 | 当传入的消息队列已满时,将时间最久的已排队数据报替换为传入的数据报。 此值等于 Winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING 常数。 |
Flush | 671088644 | 放弃发送队列的内容。 此值等于 Winsock 2 SIO_FLUSH 常数。 |
GetBroadcastAddress | 1207959557 | 返回一个 SOCKADDR 结构,该结构包含当前套接字地址族的广播地址。 返回的地址可与 SendTo 方法一起使用。 此值等于 Winsock 2 SIO_GET_BROADCAST_ADDRESS 常数。 此值仅可用于用户数据报协议 (UDP) 套接字。 |
GetExtensionFunctionPointer | 3355443206 | 获取提供程序特定的函数,这类函数不是 Winsock 规范的一部分。 这些函数通过使用其提供程序分配的 GUID 进行指定。 此值等于 Winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER 常数。 |
GetGroupQos | 3355443208 | 返回套接字组的服务质量 (QOS) 特性。 此值保留供将来使用,并且等于 Winsock 2 SIO_GET_GROUP_QOS 常数。 |
GetQos | 3355443207 | 检索与套接字关联的 QOS 结构。 此值等于 Winsock 2 SIO_GET_QOS 常数。 |
KeepAliveValues | 2550136836 | 控制 TCP Keep-Alive 数据包的发送以及发送间隔。 有关其他信息,请参阅 RFC 1122 的 4.2.3.6 节。 此值等于 Winsock 2 SIO_KEEPALIVE_VALS 常数。 |
LimitBroadcasts | 2550136839 | 此值等于 Winsock 2 SIO_LIMIT_BROADCASTS 常数。 |
MulticastInterface | 2550136841 | 设置用于传出多播数据包的接口。 该接口由索引进行标识。 此值等于 Winsock 2 SIO_INDEX_MCASTIF 常数。 |
MulticastScope | 2281701386 | 控制路由器可以转发多播数据包的次数,也称作生存时间 (TTL) 或跃点计数。 此值等于 Winsock 2 SIO_MULTICAST_SCOPE 常数。 |
MultipointLoopback | 2281701385 | 控制套接字发送的多播数据是否在套接字接收队列中显示为传入数据。 此值等于 Winsock 2 SIO_MULTIPOINT_LOOPBACK 常数。 |
NamespaceChange | 2281701401 | 控制套接字是否在命名空间查询无效时接收通知。 Windows XP 及更高版本的操作系统支持此控制代码。 此值等于 Winsock 2 SIO_NSP_NOTIFY_CHANGE 常数。 |
NonBlockingIO | 2147772030 | 控制套接字的阻止行为。 如果使用此控制代码指定的参数为零,套接字置于阻止模式下。 如果参数不为零,套接字置于非阻止模式下。 此值等于 Winsock 2 FIONBIO 常数。 |
OobDataRead | 1074033415 | 返回有关等待接收的带外数据的信息。 在流式套接字上使用此控制代码时,返回值指示可用的字节数。 |
QueryTargetPnpHandle | 1207959576 | 检索基础提供程序的 SOCKET 句柄。 此句柄可用于接收即插即用事件通知。 此值等于 Winsock 2 SIO_QUERY_TARGET_PNP_HANDLE 常数。 |
ReceiveAll | 2550136833 | 支持接收网络上的所有 IPv4 数据包。 套接字必须有 InterNetwork 地址族,套接字类型必须是 Raw,并且协议类型必须为 IP。 当前用户必须属于本地计算机上的管理员组,并且套接字必须绑定到特定端口。 此值等于 Winsock 2 SIO_RCVALL 常数。 |
ReceiveAllIgmpMulticast | 2550136835 | 支持接收网络上所有 Internet 组管理协议 (IGMP) 数据包。 套接字必须有 InterNetwork 地址族,套接字类型必须是 Raw,并且协议类型必须为 Igmp。 当前用户必须属于本地计算机上的管理员组,并且套接字必须绑定到特定端口。 此值等于 Winsock 2 SIO_RCVALL_IGMPMCAST 常数。 |
ReceiveAllMulticast | 2550136834 | 支持接收网络上所有多播 IPv4 数据包。 这些数据包的目标地址范围介于 224.0.0.0 到 239.255.255.255 之间。 套接字必须有 InterNetwork 地址族,套接字类型必须是 Raw,并且协议类型必须为 Udp。 当前用户必须属于本地计算机上的管理员组,并且套接字必须绑定到特定端口。 此值等于 Winsock 2 SIO_RCVALL_MCAST 常数。 |
RoutingInterfaceChange | 2281701397 | 支持在用于访问远程终结点的本地接口更改时接收通知。 此值等于 Winsock 2 SIO_ROUTING_INTERFACE_CHANGE 常数。 |
RoutingInterfaceQuery | 3355443220 | 返回可用于连接到指定远程地址的接口地址。 此值等于 Winsock 2 SIO_ROUTING_INTERFACE_QUERY 常数。 |
SetGroupQos | 2281701388 | 设置套接字组的服务质量 (QOS) 特性。 此值保留供将来使用,并且等于 Winsock 2 SIO_SET_GROUP_QOS 常数。 |
SetQos | 2281701387 | 设置套接字的服务质量 (QOS) 特性。 QOS 用于定义套接字的带宽要求。 此值等于 Winsock 2 SIO_SET_QOS 常数。 |
TranslateHandle | 3355443213 | 返回附带接口上下文中有效套接字的句柄。 此值等于 Winsock 2 SIO_TRANSLATE_HANDLE 常数。 |
UnicastInterface | 2550136838 | 设置用于传出单播数据包的接口。 此值等于 Winsock 2 SIO_UCAST_IF 常数。 |
示例
下面的代码示例使用 DataToRead 参数值调用 IOControl(IOControlCode, Byte[], Byte[]) 方法,并将结果与访问Available 属性进行比较。
void DisplayPendingByteCount( Socket^ s )
{
array<Byte>^ outValue = BitConverter::GetBytes( 0 );
// Check how many bytes have been received.
s->IOControl( IOControlCode::DataToRead, nullptr, outValue );
UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
Console::Write( "server has {0} bytes pending,",
bytesAvailable );
Console::WriteLine( "Available property says {1}.",
s->Available );
return;
}
static void DisplayPendingByteCount(Socket s)
{
byte[] outValue = BitConverter.GetBytes(0);
// Check how many bytes have been received.
s.IOControl(IOControlCode.DataToRead, null, outValue);
uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
Console.Write("server has {0} bytes pending. ",
bytesAvailable);
Console.WriteLine("Available property says {1}.",
s.Available);
return;
}
注解
IOControlCode枚举提供用于指定套接字操作模式的命名值。 这些值是传递给 Windows 套接字 2 (Winsock 2) 函数的控制 WSAIoctl
代码。