Бөлісу құралы:


IOControlCode Перечисление

Определение

Задает коды элементов управления ввода-вывода, поддерживаемые методом IOControl(Int32, Byte[], Byte[]).

public enum class IOControlCode
public enum IOControlCode
type IOControlCode = 
Public Enum IOControlCode
Наследование
IOControlCode

Поля

Имя Значение Описание
EnableCircularQueuing 671088642

Замените старую диаграмму данных очереди на входящие данные при заполнении входящих очередей сообщений. Это значение равно константе Winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING.

Flush 671088644

Отмените содержимое очереди отправки. Это значение равно константе Winsock 2 SIO_FLUSH.

AddressListChange 671088663

Включите получение уведомления при изменении списка локальных интерфейсов для изменения семейства протоколов сокета. Это значение равно константе Winsock 2 SIO_ADDRESS_LIST_CHANGE.

DataToRead 1074030207

Возвращает количество байтов, доступных для чтения. Это значение равно константе Winsock 2 FIONREAD.

OobDataRead 1074033415

Возвращает сведения о внеполосных данных, ожидающих получения. При использовании этого кода элемента управления в сокетах потоков возвращаемое значение указывает количество доступных байтов.

GetBroadcastAddress 1207959557

Возвращает структуру SOCKADDR, содержащую широковещательный адрес для семейства адресов текущего сокета. Возвращаемый адрес можно использовать с методом SendTo . Это значение равно константе Winsock 2 SIO_GET_BROADCAST_ADDRESS. Это значение можно использовать только для сокетов протокола UDP.

AddressListQuery 1207959574

Возвращает список локальных интерфейсов, к которым может привязаться сокет. Это значение равно константе Winsock 2 SIO_ADDRESS_LIST_QUERY.

QueryTargetPnpHandle 1207959576

Получение дескриптора СОКЕТа базового поставщика. Этот дескриптор можно использовать для получения уведомлений о событиях подключаемых модулей и воспроизведения. Это значение равно константе Winsock 2 SIO_QUERY_TARGET_PNP_HANDLE.

AsyncIO 2147772029

Включите уведомление о том, когда данные ожидают получения. Это значение равно константе Winsock 2 FIOASYNC.

NonBlockingIO 2147772030

Управление поведением блокировки сокета. Если аргумент, указанный с этим кодом элемента управления, равен нулю, сокет помещается в режим блокировки. Если аргумент ненулевой, сокет помещается в режим неблокировки. Это значение равно константе Winsock 2 FIONBIO.

AssociateHandle 2281701377

Свяжите этот сокет с указанным дескриптором интерфейса компаньона. Дополнительные сведения см. в соответствующем приложении для конкретного протокола в справочнике или документации по Winsock 2. Рекомендуется использовать объектную модель компонента (COM) вместо этого IOCTL для обнаружения и отслеживания других интерфейсов, которые могут поддерживаться сокетом. Этот код элемента управления присутствует для обратной совместимости с системами, где COM недоступен или не может использоваться по какой-либо другой причине. Это значение равно константе Winsock 2 SIO_ASSOCIATE_HANDLE.

MultipointLoopback 2281701385

Определите, отображаются ли многоадресные данные, отправленные сокетом, как входящие данные в очереди получения сокетов. Это значение равно константе Winsock 2 SIO_MULTIPOINT_LOOPBACK.

MulticastScope 2281701386

Управление количеством раз, когда пакет многоадресной рассылки можно перенаправить маршрутизатором, который также называется временем жизни (TTL) или числом прыжков. Это значение равно константе Winsock 2 SIO_MULTICAST_SCOPE.

SetQos 2281701387

Задайте атрибуты качества обслуживания (QOS) для сокета. QOS определяет требования к пропускной способности для сокета. Это значение равно константе Winsock 2 SIO_SET_QOS.

SetGroupQos 2281701388

Задайте атрибуты качества обслуживания (QOS) для группы сокетов. Это значение зарезервировано для дальнейшего использования и равно константе Winsock 2 SIO_SET_GROUP_QOS.

RoutingInterfaceChange 2281701397

Включите получение уведомлений, когда локальный интерфейс, используемый для доступа к изменениям удаленной конечной точки. Это значение равно константе Winsock 2 SIO_ROUTING_INTERFACE_CHANGE.

NamespaceChange 2281701401

Определяет, получает ли сокет уведомление, когда запрос пространства имен становится недопустимым. Этот код управления поддерживается в Windows XP и более поздних операционных системах. Это значение равно константе Winsock 2 SIO_NSP_NOTIFY_CHANGE.

ReceiveAll 2550136833

Включите получение всех пакетов IPv4 в сети. Сокет должен иметь семейство InterNetworkадресов, тип сокета должен быть Raw, а тип протокола должен быть IP. Текущий пользователь должен принадлежать группе администраторов на локальном компьютере, а сокет должен быть привязан к конкретному порту. Это значение равно константе Winsock 2 SIO_RCVALL.

ReceiveAllMulticast 2550136834

Включите получение всех пакетов IPv4 многоадресной рассылки в сети. Это пакеты с адресами назначения в диапазоне 224.0.0.0 до 239.255.255.255.255. Сокет должен иметь семейство InterNetworkадресов, тип сокета должен быть Raw, а тип протокола должен быть Udp. Текущий пользователь должен принадлежать группе администраторов на локальном компьютере, а сокет должен быть привязан к конкретному порту. Это значение равно константе Winsock 2 SIO_RCVALL_MCAST.

ReceiveAllIgmpMulticast 2550136835

Включите получение всех пакетов протокола управления группами Интернета (IGMP) в сети. Сокет должен иметь семейство InterNetworkадресов, тип сокета должен быть Raw, а тип протокола должен быть Igmp. Текущий пользователь должен принадлежать группе администраторов на локальном компьютере, а сокет должен быть привязан к конкретному порту. Это значение равно константе Winsock 2 SIO_RCVALL_IGMPMCAST.

KeepAliveValues 2550136836

Управление отправкой пакетов TCP в режиме поддержания активности и интервалом, с которыми они отправляются. Дополнительные сведения см. в разделе RFC 1122 4.2.3.6. Это значение равно константе Winsock 2 SIO_KEEPALIVE_VALS.

AbsorbRouterAlert 2550136837

Это значение равно константе Winsock 2 SIO_ABSORB_RTRALERT.

UnicastInterface 2550136838

Задайте интерфейс, используемый для исходящих одноадресных пакетов. Это значение равно константе Winsock 2 SIO_UCAST_IF.

LimitBroadcasts 2550136839

Это значение равно константе Winsock 2 SIO_LIMIT_BROADCASTS.

BindToInterface 2550136840

Привязка сокета к указанному индексу интерфейса. Это значение равно константе Winsock 2 SIO_INDEX_BIND.

MulticastInterface 2550136841

Задайте интерфейс, используемый для исходящих пакетов многоадресной рассылки. Интерфейс определяется его индексом. Это значение равно константе Winsock 2 SIO_INDEX_MCASTIF.

AddMulticastGroupOnInterface 2550136842

Присоединяйтесь к группе многоадресной рассылки с помощью интерфейса, определяемого его индексом. Это значение равно константе Winsock 2 SIO_INDEX_ADD_MCAST.

DeleteMulticastGroupFromInterface 2550136843

Удалите сокет из группы многоадресной рассылки. Это значение равно константе Winsock 2 SIO_INDEX_ADD_MCAST.

GetExtensionFunctionPointer 3355443206

Получите функции, относящиеся к поставщику, которые не являются частью спецификации Winsock. Функции задаются с помощью guid, назначаемого поставщиком. Это значение равно константе Winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER.

GetQos 3355443207

Получите структуру QOS, связанную со сокетом. Это значение равно константе Winsock 2 SIO_GET_QOS.

GetGroupQos 3355443208

Возвращает атрибуты качества обслуживания (QOS) для группы сокетов. Это значение зарезервировано для будущего использования и равно константе Winsock 2 SIO_GET_GROUP_QOS.

TranslateHandle 3355443213

Возвращает дескриптор сокета, допустимого в контексте интерфейса компаньона. Это значение равно константе Winsock 2 SIO_TRANSLATE_HANDLE.

RoutingInterfaceQuery 3355443220

Возвращает адреса интерфейса, которые можно использовать для подключения к указанному удаленному адресу. Это значение равно константе Winsock 2 SIO_ROUTING_INTERFACE_QUERY.

AddressListSort 3355443225

Отсортируйте структуру, возвращаемую полем AddressListQuery , и добавьте сведения об идентификаторе области для адресов IPv6. Этот код управления поддерживается в Windows XP и более поздних операционных системах. Это значение равно константе Winsock 2 SIO_ADDRESS_LIST_SORT.

Примеры

В следующем примере кода вызывается IOControl(IOControlCode, Byte[], Byte[]) метод со значением параметра DataToRead и сравнивается результат с доступом к свойству.Available

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

Применяется к