Bagikan melalui


IOControlCode Enum

Definisi

Menentukan kode kontrol IO yang didukung oleh IOControl(Int32, Byte[], Byte[]) metode .

public enum class IOControlCode
public enum IOControlCode
type IOControlCode = 
Public Enum IOControlCode
Warisan
IOControlCode

Bidang

AbsorbRouterAlert 2550136837

Nilai ini sama dengan konstanta Winsock 2 SIO_ABSORB_RTRALERT.

AddMulticastGroupOnInterface 2550136842

Bergabunglah dengan grup multicast menggunakan antarmuka yang diidentifikasi oleh indeksnya. Nilai ini sama dengan konstanta Winsock 2 SIO_INDEX_ADD_MCAST.

AddressListChange 671088663

Aktifkan menerima pemberitahuan saat daftar antarmuka lokal untuk keluarga protokol soket berubah. Nilai ini sama dengan konstanta Winsock 2 SIO_ADDRESS_LIST_CHANGE.

AddressListQuery 1207959574

Mengembalikan daftar antarmuka lokal yang dapat diikat soket. Nilai ini sama dengan konstanta Winsock 2 SIO_ADDRESS_LIST_QUERY.

AddressListSort 3355443225

Urutkan struktur yang dikembalikan oleh AddressListQuery bidang dan tambahkan informasi ID cakupan untuk alamat IPv6. Kode kontrol ini didukung pada Windows XP dan sistem operasi yang lebih baru. Nilai ini sama dengan konstanta Winsock 2 SIO_ADDRESS_LIST_SORT.

AssociateHandle 2281701377

Kaitkan soket ini dengan handel yang ditentukan dari antarmuka pendamping. Lihat lampiran khusus protokol yang sesuai dalam referensi winsock 2 atau dokumentasi untuk antarmuka pendamping tertentu untuk detail tambahan. Disarankan agar Model Objek Komponen (COM) digunakan alih-alih IOCTL ini untuk menemukan dan melacak antarmuka lain yang mungkin didukung oleh soket. Kode kontrol ini ada untuk kompatibilitas mundur dengan sistem di mana COM tidak tersedia atau tidak dapat digunakan karena alasan lain. Nilai ini sama dengan konstanta Winsock 2 SIO_ASSOCIATE_HANDLE.

AsyncIO 2147772029

Aktifkan pemberitahuan saat data menunggu untuk diterima. Nilai ini sama dengan konstanta Winsock 2 FIOASYNC.

BindToInterface 2550136840

Ikat soket ke indeks antarmuka tertentu. Nilai ini sama dengan konstanta Winsock 2 SIO_INDEX_BIND.

DataToRead 1074030207

Mengembalikan jumlah byte yang tersedia untuk dibaca. Nilai ini sama dengan konstanta Winsock 2 FIONREAD.

DeleteMulticastGroupFromInterface 2550136843

Hapus soket dari grup multicast. Nilai ini sama dengan konstanta Winsock 2 SIO_INDEX_ADD_MCAST.

EnableCircularQueuing 671088642

Ganti datagram antrean terlama dengan datagram masuk saat antrean pesan masuk penuh. Nilai ini sama dengan konstanta Winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING.

Flush 671088644

Buang isi antrean pengiriman. Nilai ini sama dengan konstanta Winsock 2 SIO_FLUSH.

GetBroadcastAddress 1207959557

Mengembalikan struktur SOCKADDR yang berisi alamat siaran untuk keluarga alamat soket saat ini. Alamat yang dikembalikan dapat digunakan dengan SendTo metode . Nilai ini sama dengan konstanta Winsock 2 SIO_GET_BROADCAST_ADDRESS. Nilai ini hanya dapat digunakan pada soket Protokol Datagram Pengguna (UDP).

GetExtensionFunctionPointer 3355443206

Dapatkan fungsi khusus penyedia yang bukan bagian dari spesifikasi Winsock. Fungsi ditentukan menggunakan GUID yang ditetapkan penyedia. Nilai ini sama dengan konstanta Winsock 2 SIO_GET_EXTENSION_FUNCTION_POINTER.

GetGroupQos 3355443208

Mengembalikan atribut Quality of Service (QOS) untuk grup soket. Nilai ini disediakan untuk digunakan di masa mendatang, dan sama dengan konstanta Winsock 2 SIO_GET_GROUP_QOS.

GetQos 3355443207

Ambil struktur QOS yang terkait dengan soket. Nilai ini sama dengan konstanta Winsock 2 SIO_GET_QOS.

KeepAliveValues 2550136836

Kontrol pengiriman paket TCP keep-alive dan interval pengirimannya. Untuk informasi tambahan, lihat RFC 1122 bagian 4.2.3.6. Nilai ini sama dengan konstanta Winsock 2 SIO_KEEPALIVE_VALS.

LimitBroadcasts 2550136839

Nilai ini sama dengan konstanta Winsock 2 SIO_LIMIT_BROADCASTS.

MulticastInterface 2550136841

Atur antarmuka yang digunakan untuk paket multicast keluar. Antarmuka diidentifikasi oleh indeksnya. Nilai ini sama dengan konstanta Winsock 2 SIO_INDEX_MCASTIF.

MulticastScope 2281701386

Mengontrol berapa kali paket multicast dapat diteruskan oleh router, juga dikenal sebagai Time to Live (TTL), atau jumlah hop. Nilai ini sama dengan konstanta Winsock 2 SIO_MULTICAST_SCOPE.

MultipointLoopback 2281701385

Mengontrol apakah data multicast yang dikirim oleh soket muncul sebagai data masuk di soket yang menerima antrean. Nilai ini sama dengan konstanta Winsock 2 SIO_MULTIPOINT_LOOPBACK.

NamespaceChange 2281701401

Mengontrol apakah soket menerima pemberitahuan saat kueri namespace menjadi tidak valid. Kode kontrol ini didukung pada Windows XP dan sistem operasi yang lebih baru. Nilai ini sama dengan konstanta Winsock 2 SIO_NSP_NOTIFY_CHANGE.

NonBlockingIO 2147772030

Mengontrol perilaku pemblokiran soket. Jika argumen yang ditentukan dengan kode kontrol ini adalah nol, soket ditempatkan dalam mode pemblokiran. Jika argumen bukan nol, soket ditempatkan dalam mode nonblocking. Nilai ini sama dengan konstanta Winsock 2 FIONBIO.

OobDataRead 1074033415

Mengembalikan informasi tentang data di luar band yang menunggu untuk diterima. Saat menggunakan kode kontrol ini pada soket aliran, nilai yang dikembalikan menunjukkan jumlah byte yang tersedia.

QueryTargetPnpHandle 1207959576

Ambil handel SOCKET penyedia yang mendasar. Handel ini dapat digunakan untuk menerima pemberitahuan peristiwa plug-and-play. Nilai ini sama dengan konstanta Winsock 2 SIO_QUERY_TARGET_PNP_HANDLE.

ReceiveAll 2550136833

Aktifkan menerima semua paket IPv4 di jaringan. Soket harus memiliki keluarga InterNetworkalamat , jenis soket harus Raw, dan jenis protokol harus IP. Pengguna saat ini harus termasuk dalam grup Administrator di komputer lokal, dan soket harus terikat ke port tertentu. Nilai ini sama dengan konstanta Winsock 2 SIO_RCVALL.

ReceiveAllIgmpMulticast 2550136835

Aktifkan menerima semua paket Internet Group Management Protocol (IGMP) pada jaringan. Soket harus memiliki keluarga InterNetworkalamat , jenis soket harus Raw, dan jenis protokol harus Igmp. Pengguna saat ini harus termasuk dalam grup Administrator di komputer lokal, dan soket harus terikat ke port tertentu. Nilai ini sama dengan konstanta Winsock 2 SIO_RCVALL_IGMPMCAST.

ReceiveAllMulticast 2550136834

Aktifkan menerima semua paket IPv4 multicast di jaringan. Ini adalah paket dengan alamat tujuan dalam rentang 224.0.0.0 hingga 239.255.255.255. Soket harus memiliki keluarga InterNetworkalamat , jenis soket harus Raw, dan jenis protokol harus Udp. Pengguna saat ini harus termasuk dalam grup Administrator di komputer lokal, dan soket harus terikat ke port tertentu. Nilai ini sama dengan konstanta Winsock 2 SIO_RCVALL_MCAST.

RoutingInterfaceChange 2281701397

Aktifkan penerimaan pemberitahuan saat antarmuka lokal yang digunakan untuk mengakses titik akhir jarak jauh berubah. Nilai ini sama dengan konstanta Winsock 2 SIO_ROUTING_INTERFACE_CHANGE.

RoutingInterfaceQuery 3355443220

Mengembalikan alamat antarmuka yang dapat digunakan untuk menyambungkan ke alamat jarak jauh yang ditentukan. Nilai ini sama dengan konstanta Winsock 2 SIO_ROUTING_INTERFACE_QUERY.

SetGroupQos 2281701388

Atur atribut Quality of Service (QOS) untuk grup soket. Nilai ini dicadangkan untuk digunakan di masa mendatang dan sama dengan konstanta Winsock 2 SIO_SET_GROUP_QOS.

SetQos 2281701387

Atur atribut Quality of Service (QOS) untuk soket. QOS menentukan persyaratan bandwidth untuk soket. Nilai ini sama dengan konstanta Winsock 2 SIO_SET_QOS.

TranslateHandle 3355443213

Mengembalikan handel untuk soket yang valid dalam konteks antarmuka pendamping. Nilai ini sama dengan konstanta Winsock 2 SIO_TRANSLATE_HANDLE.

UnicastInterface 2550136838

Atur antarmuka yang digunakan untuk paket unicast keluar. Nilai ini sama dengan konstanta Winsock 2 SIO_UCAST_IF.

Contoh

Contoh kode berikut memanggil IOControl(IOControlCode, Byte[], Byte[]) metode dengan nilai parameter DataToRead dan membandingkan hasilnya dengan mengakses properti .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;
}

Keterangan

IOControlCode Enumerasi menyediakan nilai bernama untuk menentukan mode operasional soket. Nilai-nilai ini adalah kode kontrol yang diteruskan ke fungsi Windows Sockets 2 (Winsock 2). WSAIoctl

Berlaku untuk