IOControlCode Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает коды управления вводом-выводом, поддерживаемые методом IOControl(Int32, Byte[], Byte[]).
public enum class IOControlCode
public enum IOControlCode
type IOControlCode =
Public Enum IOControlCode
- Наследование
Поля
AbsorbRouterAlert | 2550136837 | Это значение равно константе SIO_ABSORB_RTRALERT спецификации Winsock 2. |
AddMulticastGroupOnInterface | 2550136842 | Присоединяет к группе многоадресной рассылки с помощью интерфейса, определенного его индексом. Это значение равно константе SIO_INDEX_ADD_MCAST спецификации Winsock 2. |
AddressListChange | 671088663 | Включает получение уведомлений при изменении списка локальных интерфейсов для семейства протоколов сокета. Это значение равно константе SIO_ADDRESS_LIST_CHANGE спецификации Winsock 2. |
AddressListQuery | 1207959574 | Возвращает список локальных интерфейсов, к которым может быть привязан сокет. Это значение равно константе SIO_ADDRESS_LIST_QUERY спецификации Winsock 2. |
AddressListSort | 3355443225 | Сортирует структуру, возвращаемую полем AddressListQuery и добавляет сведения об области идентификаторов для IPv6-адресов. Этот управляющий код поддерживается в Windows XP и более поздних операционных системах. Это значение равно константе SIO_ADDRESS_LIST_SORT спецификации Winsock 2. |
AssociateHandle | 2281701377 | Связывает этот сокет с указанным дескриптором сопутствующего интерфейса. Дополнительные сведения см. в соответствующем приложении для конкретного протокола в справочнике или документации по Winsock 2 для конкретного интерфейса-компаньона. Рекомендуется использовать модель COM вместо этой функции IOCTL для обнаружения и отслеживания других интерфейсов, которые могут поддерживаться сокетом. Этот управляющий код предназначен для обратной совместимости с системами, в которых модель COM недоступна или по каким-либо причинам не может быть использована. Это значение равно константе SIO_ASSOCIATE_HANDLE спецификации Winsock 2. |
AsyncIO | 2147772029 | Включает получение уведомлений при ожидании получения данных. Это значение равно константе FIOASYNC спецификации Winsock 2. |
BindToInterface | 2550136840 | Привязывает сокет к указанному индексу интерфейса. Это значение равно константе SIO_INDEX_BIND спецификации Winsock 2. |
DataToRead | 1074030207 | Возвращает количество байтов, доступных для чтения. Это значение равно константе FIONREAD спецификации Winsock 2. |
DeleteMulticastGroupFromInterface | 2550136843 | Удаляет сокет из группы многоадресной рассылки. Это значение равно константе SIO_INDEX_ADD_MCAST спецификации Winsock 2. |
EnableCircularQueuing | 671088642 | Заменяет дольше всех находящуюся в очереди датаграмму входящей датаграммой, когда очередь входящих сообщений заполнена. Это значение равно константе SIO_ENABLE_CIRCULAR_QUEUEING спецификации Winsock 2. |
Flush | 671088644 | Удаляет содержимое очереди отправки. Это значение равно константе SIO_FLUSH спецификации Winsock 2. |
GetBroadcastAddress | 1207959557 | Возвращает структуру SOCKADDR, содержащую адрес широковещательной рассылки для семейства адресов текущего сокета. Возвращаемый адрес можно использовать с методом SendTo. Это значение равно константе SIO_GET_BROADCAST_ADDRESS спецификации Winsock 2. Это значение может быть использовано только сокетами UDP. |
GetExtensionFunctionPointer | 3355443206 | Получите специфичную для поставщика функцию, не входящую в состав спецификации Winsock. Функции указаны с использованием идентификатора GUID, назначенного поставщиком. Это значение равно константе SIO_GET_EXTENSION_FUNCTION_POINTER спецификации Winsock 2. |
GetGroupQos | 3355443208 | Возвращает атрибуты качества обслуживания (QOS) для группы сокетов. Это значение зарезервировано для использования в будущем и равно константе SIO_GET_GROUP_QOS спецификации Winsock 2. |
GetQos | 3355443207 | Возвращает структуру QOS, связанную с сокетом. Это значение равно константе SIO_GET_QOS спецификации Winsock 2. |
KeepAliveValues | 2550136836 | Управляет отправкой TCP-пакетов проверки на активность и интервалом времени, с которым они посылаются. Дополнительные сведения см. в разделе 4.2.3.6 стандарта RFC 1122. Это значение равно константе SIO_KEEPALIVE_VALS спецификации Winsock 2. |
LimitBroadcasts | 2550136839 | Это значение равно константе SIO_LIMIT_BROADCASTS спецификации Winsock 2. |
MulticastInterface | 2550136841 | Задает интерфейс, используемый для исходящих пакетов многоадресной рассылки. Интерфейс идентифицируется своим индексом. Это значение равно константе SIO_INDEX_MCASTIF спецификации Winsock 2. |
MulticastScope | 2281701386 | Управляет количеством пересылок пакета многоадресной рассылки, которое может быть выполнено маршрутизатором; также называемом сроком жизни или количеством прыжков. Это значение равно константе SIO_MULTICAST_SCOPE спецификации Winsock 2. |
MultipointLoopback | 2281701385 | Указывает, должны ли появляться данные многоадресной рассылки, отправленные сокетом, как входные данные в приемной очереди сокетов. Это значение равно константе SIO_MULTIPOINT_LOOPBACK спецификации Winsock 2. |
NamespaceChange | 2281701401 | Указывает, должны ли сокеты получать уведомление, когда запрос пространства имен становится недопустимым. Этот управляющий код поддерживается в Windows XP и более поздних операционных системах. Это значение равно константе SIO_NSP_NOTIFY_LIST_CHANGE спецификации Winsock 2. |
NonBlockingIO | 2147772030 | Управляет блокирующим режимом сокета. Если аргумент, указанный этим управляющим кодом равен нулю, сокет находится в блокирующем режиме. Если аргумент не равен нулю, сокет находится в неблокирующем режиме. Это значение равно константе FIONBIO спецификации Winsock 2. |
OobDataRead | 1074033415 | Возвращает сведения о находящихся за пределом диапазона данных, которые должны быть получены. Когда этот управляющий код используется для потока сокетов, возвращаемое значение указывает количество доступных данных. |
QueryTargetPnpHandle | 1207959576 | Получает дескриптор SOCKET основного поставщика. Этот дескриптор может быть использован для получения уведомления о событии Plug-and-Play. Это значение равно константе SIO_QUERY_TARGET_PNP_HANDLE спецификации Winsock 2. |
ReceiveAll | 2550136833 | Включает получение всех сетевых IPv4-пакетов. У сокета должно быть семейство адресов InterNetwork, типом сокета должно быть Raw, а типом протокола должен быть IP. Текущий пользователь должен быть участником группы администраторов на локальном компьютере, а сокет должен принадлежать определенному порту. Это значение равно константе SIO_RCVALL спецификации Winsock 2. |
ReceiveAllIgmpMulticast | 2550136835 | Включает получение всех сетевых IGMP-пакетов. У сокета должно быть семейство адресов InterNetwork, типом сокета должно быть Raw, а типом протокола должен быть Igmp. Текущий пользователь должен быть участником группы администраторов на локальном компьютере, а сокет должен принадлежать определенному порту. Это значение равно константе SIO_RCVALL_IGMPMCAST спецификации Winsock 2. |
ReceiveAllMulticast | 2550136834 | Включает получение всех сетевых IPv4-пакетов многоадресной рассылки. У этих пакетов адреса назначения находятся в диапазоне от 224.0.0.0 до 239.255.255.255. У сокета должно быть семейство адресов InterNetwork, типом сокета должно быть Raw, а типом протокола должен быть Udp. Текущий пользователь должен быть участником группы администраторов на локальном компьютере, а сокет должен принадлежать определенному порту. Это значение равно константе SIO_RCVALL_MCAST спецификации Winsock 2. |
RoutingInterfaceChange | 2281701397 | Включает получение уведомлений при изменении локального интерфейса, используемого для доступа к удаленной конечной точке. Это значение равно константе SIO_ROUTING_INTERFACE_CHANGE спецификации Winsock 2. |
RoutingInterfaceQuery | 3355443220 | Возвращает адреса интерфейсов, которые могут использоваться для подключения к указанному удаленному адресу. Это значение равно константе SIO_ROUTING_INTERFACE_QUERY спецификации Winsock 2. |
SetGroupQos | 2281701388 | Задает атрибуты качества обслуживания (QOS) для группы сокетов. Это значение зарезервировано для использования в будущем и равно константе SIO_SET_GROUP_QOS спецификации Winsock 2. |
SetQos | 2281701387 | Задает атрибуты качества обслуживания (QOS) для сокета. Качество обслуживания определяет требования к пропускной способности сокета. Это значение равно константе SIO_SET_QOS спецификации Winsock 2. |
TranslateHandle | 3355443213 | Возвращает дескриптор для сокета, являющегося допустимым в контексте сопутствующего интерфейса. Это значение равно константе SIO_TRANSLATE_HANDLE спецификации Winsock 2. |
UnicastInterface | 2550136838 | Задает интерфейс, используемый для исходящих пакетов одноадресной передачи. Это значение равно константе SIO_UCAST_IF спецификации Winsock 2. |
Примеры
В следующем примере кода вызывается IOControl(IOControlCode, Byte[], Byte[]) метод со значением параметра DataToRead и сравнивается результат с доступом к свойству .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 Sockets 2 (Winsock 2). WSAIoctl