IOControlCode 列挙体とは? わかりやすく解説

IOControlCode 列挙体

メモ : この列挙体は、.NET Framework version 2.0 で新しく追加されたものです。

IOControl メソッドでサポートされている I/O 制御コードを指定します。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Dim instance As IOControlCode
public enum IOControlCode : long
public enum class IOControlCode : long long
public enum IOControlCode
public enum IOControlCode
メンバメンバ
 メンバ名説明
AbsorbRouterAlertこの値は、Winsock 2 の SIO_ABSORB_RTRALERT 定数に相当します。 
AddMulticastGroupOnInterfaceインデックスで識別されるインターフェイスを使用して、マルチキャスト グループに参加します。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_INDEX_ADD_MCAST 定数に相当します。 
AddressListChangeソケットのプロトコル ファミリのローカル インターフェイスのリストが変更されたときの通知の受信を有効にします。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_ADDRESS_LIST_CHANGE 定数に相当します。 
AddressListQueryソケットがバインドできるローカル インターフェイスのリストを返します。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_ADDRESS_LIST_QUERY 定数に相当します。 
AddressListSortAddressListQuery フィールドで返される構造体をソートし、IPv6 アドレスのスコープ ID 情報を追加します。この制御コードは、Windows XP 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 SIO_ADDRESS_LIST_SORT 定数に相当します。 
AssociateHandleこのソケットを、対応するインターフェイスの指定したハンドルに関連付けます。詳細については、Winsock 2 リファレンスで適切なプロトコル仕様が記載された付録を参照するか、特定の対応するインターフェイスのドキュメントを参照してください。この IOCTL の代わりにコンポーネント オブジェクト モデル (COM: Component Object Model) を使用して、ソケットでサポートされている可能性がある他のインターフェイスの検出とトレースを行うことをお勧めします。この制御コードは、COM に対応していない、または何らかの理由で COM を使用できないシステム用の下位互換性を維持するために存在します。この値は、Winsock 2 の SIO_ASSOCIATE_HANDLE 定数に相当します。  
AsyncIOデータが受信を待機しているときの通知を有効にします。この値は、Winsock 2 の FIOASYNC 定数に相当します。 
BindToInterfaceソケットを指定したインターフェイス インデックスにバインドします。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_INDEX_BIND 定数に相当します。 
DataToRead読み取りができるバイト数を返します。この値は、Winsock 2 の FIONREAD 定数に相当します。 
DeleteMulticastGroupFromInterfaceマルチキャスト グループからソケットを削除します。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_INDEX_ADD_MCAST 定数に相当します。 
EnableCircularQueuing受信メッセージ キューが満杯の場合、キューに格納されている最も古いデータグラムを受信データグラムで置き換えます。この値は、Winsock 2 の SIO_ENABLE_CIRCULAR_QUEUEING 定数に相当します。 
Flush送信キューの内容を破棄します。この値は、Winsock 2 の SIO_FLUSH 定数に相当します。 
GetBroadcastAddress現在のソケットのアドレス ファミリのブロードキャスト アドレスを格納している SOCKADDR 構造体を返します。返されたアドレスは、SendTo メソッドで使用できます。この値は、Winsock 2 の SIO_GET_BROADCAST_ADDRESS 定数に相当します。この値は、ユーザー データグラム プロトコル (UDP: User Datagram Protocol) ソケットでだけ使用できます。 
GetExtensionFunctionPointerWinsock 仕様の一部ではないプロバイダ固有の関数を取得します。関数はそれらのプロバイダによって割り当てられた GUID を使用して指定されます。この値は、Winsock 2 の SIO_GET_EXTENSION_FUNCTION_POINTER 定数に相当します。 
GetGroupQosソケット グループの QOS (Quality of Service) 属性を返します。この値は、今後使用するために予約されており、Winsock 2 の SIO_GET_GROUP_QOS 定数に相当します。  
GetQosソケットに関連付けられた QOS 構造体を取得します。この制御コードは、QOS 対応の伝送機能を提供しているプラットフォーム (Windows Me、Windows 2000、およびそれ以降) でだけサポートされます。この値は、Winsock 2 の SIO_GET_QOS 定数に相当します。 
KeepAliveValuesTCP Keep-alive パケットの送信とそれらの送信間隔を制御します。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。追加情報については、RFC 1122 セクション 4.2.3.6 を参照してください。この値は、Winsock 2 の SIO_KEEPALIVE_VALS 定数に相当します。 
LimitBroadcastsこの値は、Winsock 2 の SIO_LIMIT_BROADCASTS 定数に相当します。 
MulticastInterface発信マルチキャスト パケットで使用するインターフェイスを設定します。インターフェイスはインデックスで識別されます。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_INDEX_MCASTIF 定数に相当します。 
MulticastScopeルーターがマルチキャスト パケットを転送できる回数 (有効期間 (TTL: Time to Live))、またはホップ数を制御します。この値は、Winsock 2 の SIO_MULTICAST_SCOPE 定数に相当します。 
MultipointLoopbackソケットによって送信されたマルチキャスト データが、ソケットの受信キューの受信データとして表示されるかどうかを制御します。この値は、Winsock 2 の SIO_MULTIPOINT_LOOPBACK 定数に相当します。 
NamespaceChange名前空間のクエリが無効になったときの通知を、ソケットが受け取るかどうかを制御します。この制御コードは、Windows XP 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_NSP_NOTIFY_CHANGE 定数に相当します。 
NonBlockingIOソケットのブロッキングの動作を制御します。この制御コードに指定された引数が 0 の場合、ソケットはブロッキング モードに設定されます。引数が 0 以外の場合、ソケットは非ブロッキング モードに設定されます。この値は、Winsock 2 の FIONBIO 定数に相当します。 
OobDataRead受信を待機している帯域外データに関する情報を返します。この制御コードをストリーム ソケットで使用した場合、返される値は受信できるバイト数を示します。 
QueryTargetPnpHandle基になるプロバイダの SOCKET ハンドルを取得します。このハンドルを使用して、プラグ アンド プレイのイベント通知を受信できます。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_QUERY_TARGET_PNP_HANDLE 定数に相当します。 
ReceiveAllネットワーク上のすべての IPv4 パケットの受信を有効にします。ソケットは、アドレス ファミリ InterNetwork を取得している必要があります。また、ソケット タイプは Raw、プロトコル タイプはIP である必要があります。現在のユーザーがローカル コンピュータの管理者グループに属していて、ソケットが特定のポートにバインドされている必要があります。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_RCVALL 定数に相当します。 
ReceiveAllIgmpMulticastネットワーク上のすべてのインターネット グループ管理プロトコル (IGMP) パケットの受信を有効にします。ソケットは、アドレス ファミリ InterNetwork を取得している必要があります。また、ソケット タイプは Raw、プロトコル タイプはIgmp である必要があります。現在のユーザーがローカル コンピュータの管理者グループに属していて、ソケットが特定のポートにバインドされている必要があります。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_RCVALL_IGMPMCAST 定数に相当します。 
ReceiveAllMulticastネットワーク上のすべてのマルチキャスト IPv4 パケットの受信を有効にします。これらは、224.0.0.0 から 239.255.255.255 の範囲の終点アドレスを持ったパケットです。ソケットは、アドレス ファミリ InterNetwork を取得している必要があります。また、ソケット タイプは Raw、プロトコル タイプは Udp である必要があります。現在のユーザーがローカル コンピュータの管理者グループに属していて、ソケットが特定のポートにバインドされている必要があります。この制御コードは、Windows 2000 以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_RCVALL_MCAST 定数に相当します。 
RoutingInterfaceChangeリモート エンドポイントにアクセスするために使用するローカル インターフェイスが変更されたときの通知の受信を有効にします。この値は、Winsock 2 の SIO_ROUTING_INTERFACE_CHANGE 定数に相当します。 
RoutingInterfaceQuery指定したリモート アドレスに接続するために使用できるインターフェイス アドレスを返します。この値は、Winsock 2 の SIO_ROUTING_INTERFACE_QUERY 定数に相当します。 
SetGroupQosソケット グループの QOS (Quality of Service) 属性を設定します。この値は、今後使用するために予約されており、Winsock 2 の SIO_SET_GROUP_QOS 定数に相当します。 
SetQosソケットの QOS (Quality of Service) 属性を設定します。QOS は、ソケットの帯域幅の要件を定義します。この制御コードは、Windows Me、Windows 2000、およびそれ以降のオペレーティング システムでサポートされます。この値は、Winsock 2 の SIO_SET_QOS 定数に相当します。 
TranslateHandle対応するインターフェイスのコンテキスト内で有効なソケットのハンドルを返します。この値は、Winsock 2 の SIO_TRANSLATE_HANDLE 定数に相当します。 
UnicastInterface発信ユニキャスト パケットで使用するインターフェイスを設定します。この値は、Winsock 2 の SIO_UCAST_IF 定数に相当します。 
解説解説

IOControlCode 列挙体には、ソケットの操作モードを指定する名前付きの値が用意されています。これらの値は、Windows Socket 2 (Winsock 2) WSAIoctl 関数に渡される制御コードです。

使用例使用例

DataToRead パラメータ値を使用して IOControl(IOControlCode,Byte[],Byte[]) メソッドを呼び出し、その結果と 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;
}
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)
{
    ubyte outValue[] = BitConverter.GetBytes(0);
    // Check how many bytes have been received.
    s.IOControl(IOControlCode.DataToRead, null, outValue);
    UInt32 bytesAvailable = BitConverter.ToUInt32(outValue, 0);
    //ToDo: Unsigned Integers not supported- converted to int
    Console.Write("server has {0} bytes pending. ",
        bytesAvailable.ToString());
    Console.WriteLine("Available property says {1}.", 
        (System.Int32)s.get_Available());
    return;
} //DisplayPendingByteCount
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
System.Net.Sockets 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「IOControlCode 列挙体」の関連用語

IOControlCode 列挙体のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



IOControlCode 列挙体のページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS