IOControlCode Výčet

Definice

Určuje řídicí kódy vstupně-výstupních operací podporovaných metodou IOControl(Int32, Byte[], Byte[]) .

public enum class IOControlCode
public enum IOControlCode
type IOControlCode = 
Public Enum IOControlCode
Dědičnost
IOControlCode

Pole

AbsorbRouterAlert 2550136837

Tato hodnota se rovná konstantě winsock 2 SIO_ABSORB_RTRALERT.

AddMulticastGroupOnInterface 2550136842

Připojte se ke skupině vícesměrového vysílání pomocí rozhraní určeného jejím indexem. Tato hodnota se rovná konstantě Winsock 2 SIO_INDEX_ADD_MCAST.

AddressListChange 671088663

Povolte příjem oznámení, když se změní seznam místních rozhraní pro řadu protokolů soketů. Tato hodnota se rovná konstantě winsock 2 SIO_ADDRESS_LIST_CHANGE.

AddressListQuery 1207959574

Vrátí seznam místních rozhraní, se kterými může soket vytvořit vazbu. Tato hodnota se rovná konstantě winsock 2 SIO_ADDRESS_LIST_QUERY.

AddressListSort 3355443225

Seřaďte strukturu vrácenou polem AddressListQuery a přidejte informace o ID oboru pro adresy IPv6. Tento řídicí kód je podporován ve Windows XP a novějších operačních systémech. Tato hodnota se rovná konstantě winsock 2 SIO_ADDRESS_LIST_SORT.

AssociateHandle 2281701377

Přidružte tento soket k zadanému popisovači doprovodného rozhraní. Další podrobnosti najdete v příslušné příloze specifické pro protokol v referenčních informacích k rozhraní Winsock 2 nebo v dokumentaci pro konkrétní doprovodné rozhraní. Místo této hodnoty IOCTL se doporučuje použít model COM (Component Object Model) ke zjišťování a sledování dalších rozhraní, která můžou být podporována soketem. Tento řídicí kód je k dispozici pro zpětnou kompatibilitu se systémy, kde com není k dispozici nebo nelze použít z nějakého jiného důvodu. Tato hodnota se rovná konstantě Winsock 2 SIO_ASSOCIATE_HANDLE.

AsyncIO 2147772029

Povolte oznámení o tom, kdy data čekají na přijetí. Tato hodnota se rovná konstantě Winsock 2 FIOASYNC.

BindToInterface 2550136840

Vytvořte vazbu soketu na zadaný index rozhraní. Tato hodnota se rovná konstantě Winsock 2 SIO_INDEX_BIND.

DataToRead 1074030207

Vrátí počet bajtů, které jsou k dispozici pro čtení. Tato hodnota se rovná konstantě Winsock 2 FIONREAD.

DeleteMulticastGroupFromInterface 2550136843

Odeberte soket ze skupiny vícesměrového vysílání. Tato hodnota se rovná konstantě winsock 2 SIO_INDEX_ADD_MCAST.

EnableCircularQueuing 671088642

Pokud jsou fronty příchozích zpráv plné, nejstarší datagram ve frontě nahraďte příchozím datagramem. Tato hodnota se rovná konstantě winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING.

Flush 671088644

Zahoďte obsah odesílající fronty. Tato hodnota se rovná konstantě SIO_FLUSH winsock 2.

GetBroadcastAddress 1207959557

Vrátí strukturu SOCKADDR, která obsahuje adresu všesměrového vysílání pro rodinu adres aktuálního soketu. Vrácenou adresu lze použít s metodou SendTo . Tato hodnota se rovná konstantě winsock 2 SIO_GET_BROADCAST_ADDRESS. Tuto hodnotu lze použít pouze v soketech protokolu UDP (User Datagram Protocol).

GetExtensionFunctionPointer 3355443206

Získejte funkce specifické pro zprostředkovatele, které nejsou součástí specifikace rozhraní Winsock. Funkce se zadají pomocí identifikátoru GUID přiřazeného poskytovatelem. Tato hodnota se rovná konstantě winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER.

GetGroupQos 3355443208

Vrátí atributy QOS (Quality of Service) pro skupinu soketů. Tato hodnota je vyhrazena pro budoucí použití a je rovna winsock 2 SIO_GET_GROUP_QOS konstanty.

GetQos 3355443207

Načte strukturu QOS přidruženou k soketu. Tato hodnota se rovná konstantě winsock 2 SIO_GET_QOS.

KeepAliveValues 2550136836

Řídit odesílání paketů TCP keep-alive a interval, ve kterém jsou odesílány. Další informace najdete v dokumentu RFC 1122 v části 4.2.3.6. Tato hodnota se rovná konstantě winsock 2 SIO_KEEPALIVE_VALS.

LimitBroadcasts 2550136839

Tato hodnota se rovná konstantě winsock 2 SIO_LIMIT_BROADCASTS.

MulticastInterface 2550136841

Nastavte rozhraní používané pro odchozí pakety vícesměrového vysílání. Rozhraní je identifikováno jeho indexem. Tato hodnota se rovná konstantě winsock 2 SIO_INDEX_MCASTIF.

MulticastScope 2281701386

Určete, kolikrát může směrovač předat paket vícesměrového vysílání, označovaný také jako hodnota TTL (Time to Live) neboli počet segmentů směrování. Tato hodnota se rovná konstantě winsock 2 SIO_MULTICAST_SCOPE.

MultipointLoopback 2281701385

Určuje, zda se data vícesměrového vysílání odeslaná soketem zobrazí jako příchozí data ve frontě příjmu soketů. Tato hodnota se rovná konstantě winsock 2 SIO_MULTIPOINT_LOOPBACK.

NamespaceChange 2281701401

Určete, jestli soket obdrží oznámení, když se dotaz oboru názvů stane neplatným. Tento řídicí kód je podporován ve Windows XP a novějších operačních systémech. Tato hodnota se rovná konstantě winsock 2 SIO_NSP_NOTIFY_CHANGE.

NonBlockingIO 2147772030

Řídit chování blokování soketu. Pokud je argument zadaný tímto řídicím kódem nula, soket se umístí do režimu blokování. Pokud je argument nenulový, soket se umístí do režimu odblokování. Tato hodnota se rovná konstantě Winsock 2 FIONBIO.

OobDataRead 1074033415

Vrátit informace o datech mimo pásmo, která čekají na přijetí. Při použití tohoto řídicího kódu na sokety streamu vrácené hodnoty označuje počet dostupných bajtů.

QueryTargetPnpHandle 1207959576

Načte popisovač soketu podkladového zprostředkovatele. Tento popisovač se dá použít k příjmu oznámení o události plug-and-play. Tato hodnota se rovná konstantě winsock 2 SIO_QUERY_TARGET_PNP_HANDLE.

ReceiveAll 2550136833

Povolte příjem všech paketů IPv4 v síti. Soket musí mít řadu InterNetworkadres , typ soketu musí být Rawa typ protokolu musí být IP. Aktuální uživatel musí patřit do skupiny Administrators v místním počítači a soket musí být svázán s určitým portem. Tato hodnota se rovná konstantě winsock 2 SIO_RCVALL.

ReceiveAllIgmpMulticast 2550136835

Povolte příjem všech paketů protokolu IGMP (Internet Group Management Protocol) v síti. Soket musí mít řadu InterNetworkadres , typ soketu musí být Rawa typ protokolu musí být Igmp. Aktuální uživatel musí patřit do skupiny Administrators v místním počítači a soket musí být svázán s určitým portem. Tato hodnota se rovná konstantě winsock 2 SIO_RCVALL_IGMPMCAST.

ReceiveAllMulticast 2550136834

Povolte příjem všech paketů IPv4 vícesměrového vysílání v síti. Jedná se o pakety s cílovými adresami v rozsahu 224.0.0.0 až 239.255.255.255. Soket musí mít řadu InterNetworkadres , typ soketu musí být Rawa typ protokolu musí být Udp. Aktuální uživatel musí patřit do skupiny Administrators v místním počítači a soket musí být svázán s určitým portem. Tato hodnota se rovná konstantě winsock 2 SIO_RCVALL_MCAST.

RoutingInterfaceChange 2281701397

Povolte příjem oznámení, když se změní místní rozhraní použité pro přístup ke vzdálenému koncovému bodu. Tato hodnota se rovná konstantě winsock 2 SIO_ROUTING_INTERFACE_CHANGE.

RoutingInterfaceQuery 3355443220

Vrátí adresy rozhraní, které lze použít pro připojení k zadané vzdálené adrese. Tato hodnota se rovná konstantě winsock 2 SIO_ROUTING_INTERFACE_QUERY.

SetGroupQos 2281701388

Nastavte atributy QOS (Quality of Service) pro skupinu soketů. Tato hodnota je vyhrazena pro budoucí použití a je rovna konstantě winsock 2 SIO_SET_GROUP_QOS.

SetQos 2281701387

Nastavte atributy QOS (Quality of Service) pro soket. QOS definuje požadavky na šířku pásma pro soket. Tato hodnota se rovná konstantě winsock 2 SIO_SET_QOS.

TranslateHandle 3355443213

Vrátí popisovač soketu, který je platný v kontextu doprovodného rozhraní. Tato hodnota se rovná konstantě winsock 2 SIO_TRANSLATE_HANDLE.

UnicastInterface 2550136838

Nastavte rozhraní používané pro odchozí pakety jednosměrového vysílání. Tato hodnota se rovná konstantě winsock 2 SIO_UCAST_IF.

Příklady

Následující příklad kódu volá metodu IOControl(IOControlCode, Byte[], Byte[]) s hodnotou parametru DataToRead a porovná výsledek s přístupem k vlastnosti .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;
}

Poznámky

Výčet IOControlCode poskytuje pojmenované hodnoty pro určení provozních režimů soketů. Tyto hodnoty jsou řídicí kódy předané funkci Windows Sockets 2 (Winsock 2). WSAIoctl

Platí pro