Поделиться через


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

Определение

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

public enum class IOControlCode
public enum IOControlCode
type IOControlCode = 
Public Enum IOControlCode
Наследование
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

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