IOControlCode 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
IOControl(Int32, Byte[], Byte[]) メソッドでサポートされている I/O 制御コードを指定します。
public enum class IOControlCode
public enum IOControlCode
type IOControlCode =
Public Enum IOControlCode
- 継承
フィールド
AbsorbRouterAlert | 2550136837 | この値は、Winsock 2 の SIO_ABSORB_RTRALERT 定数に相当します。 |
AddMulticastGroupOnInterface | 2550136842 | インデックスで識別されるインターフェイスを使用して、マルチキャスト グループに参加します。 この値は、Winsock 2 の SIO_INDEX_ADD_MCAST 定数に相当します。 |
AddressListChange | 671088663 | ソケットのプロトコル ファミリのローカル インターフェイスのリストが変更されたときの通知の受信を有効にします。 この値は、Winsock 2 の SIO_ADDRESS_LIST_CHANGE 定数に相当します。 |
AddressListQuery | 1207959574 | ソケットがバインドできるローカル インターフェイスのリストを返します。 この値は、Winsock 2 の SIO_ADDRESS_LIST_QUERY 定数に相当します。 |
AddressListSort | 3355443225 | AddressListQuery フィールドで返される構造体をソートし、IPv6 アドレスのスコープ ID 情報を追加します。 この制御コードは、Windows XP 以降のオペレーティング システムでサポートされます。 この値は、Winsock 2 SIO_ADDRESS_LIST_SORT 定数に相当します。 |
AssociateHandle | 2281701377 | このソケットを、対応するインターフェイスの指定したハンドルに関連付けます。 追加の詳細については、Winsock 2 のリファレンスまたは特定のコンパニオン インターフェイスに関するドキュメントの適切なプロトコル固有の付録を参照してください。 ソケットでサポートされる他のインターフェイスを検出し、追跡するには、この IOCTL ではなく、コンポーネント オブジェクト モデル (COM: Component Object Model) を使用することをお勧めします。 この制御コードは、COM に対応していないシステムや、その他の理由で COM を使用できないシステムの下位互換性を維持するために存在します。 この値は、Winsock 2 の SIO_ASSOCIATE_HANDLE 定数に相当します。 |
AsyncIO | 2147772029 | データが受信を待機しているときの通知を有効にします。 この値は、Winsock 2 の FIOASYNC 定数に相当します。 |
BindToInterface | 2550136840 | 指定したインターフェイス インデックスにソケットをバインドします。 この値は、Winsock 2 の SIO_INDEX_BIND 定数に相当します。 |
DataToRead | 1074030207 | 読み取り可能なバイト数を返します。 この値は、Winsock 2 の FIONREAD 定数に相当します。 |
DeleteMulticastGroupFromInterface | 2550136843 | マルチキャスト グループからソケットを削除します。 この値は、Winsock 2 の SIO_INDEX_ADD_MCAST 定数に相当します。 |
EnableCircularQueuing | 671088642 | 受信メッセージ キューがフルの場合、キューに格納されている最も古いデータグラムを受信データグラムに置き換えます。 この値は、Winsock 2 の SIO_ENABLE_CIRCULAR_QUEUEING 定数に相当します。 |
Flush | 671088644 | 送信キューの内容を破棄します。 この値は、Winsock 2 の SIO_FLUSH 定数に相当します。 |
GetBroadcastAddress | 1207959557 | 現在のソケットのアドレス ファミリのブロードキャスト アドレスが格納された SOCKADDR 構造体を返します。 返されたアドレスは、SendTo メソッドで使用できます。 この値は、Winsock 2 の SIO_GET_BROADCAST_ADDRESS 定数に相当します。 この値は、ユーザー データグラム プロトコル (UDP) のソケットのみで使用できます。 |
GetExtensionFunctionPointer | 3355443206 | Winsock 仕様の一部ではない、プロバイダー固有の関数を取得します。 関数はプロバイダーによって割り当てられた GUID を使用して指定されます。 この値は、Winsock 2 の SIO_GET_EXTENSION_FUNCTION_POINTER 定数に相当します。 |
GetGroupQos | 3355443208 | ソケット グループの QOS (Quality of Service) 属性を返します。 この値は、今後使用するために予約されており、Winsock 2 の SIO_GET_GROUP_QOS 定数に相当します。 |
GetQos | 3355443207 | ソケットに関連付けられた QOS 構造体を取得します。 この値は、Winsock 2 の SIO_GET_QOS 定数に相当します。 |
KeepAliveValues | 2550136836 | TCP Keep-alive パケットの送信とそれらの送信間隔を制御します。 詳細については、RFC 1122 セクション 4.2.3.6 をご覧ください。 この値は、Winsock 2 の SIO_KEEPALIVE_VALS 定数に相当します。 |
LimitBroadcasts | 2550136839 | この値は、Winsock 2 の SIO_LIMIT_BROADCASTS 定数に相当します。 |
MulticastInterface | 2550136841 | 発信マルチキャスト パケットで使用するインターフェイスを設定します。 インターフェイスはインデックスで識別されます。 この値は、Winsock 2 の SIO_INDEX_MCASTIF 定数に相当します。 |
MulticastScope | 2281701386 | ルーターがマルチキャスト パケットを転送できる回数 (有効時間 (TTL: Time to Live))、またはホップ数を制御します。 この値は、Winsock 2 の SIO_MULTICAST_SCOPE 定数に相当します。 |
MultipointLoopback | 2281701385 | ソケットによって送信されたマルチキャスト データが、ソケットの受信キューで受信データとして表示されるかどうかを制御します。 この値は、Winsock 2 の SIO_MULTIPOINT_LOOPBACK 定数に相当します。 |
NamespaceChange | 2281701401 | 名前空間のクエリが無効になったときの通知を、ソケットが受け取るかどうかを制御します。 この制御コードは、Windows XP 以降のオペレーティング システムでサポートされます。 この値は、Winsock 2 の SIO_NSP_NOTIFY_CHANGE 定数に相当します。 |
NonBlockingIO | 2147772030 | ソケットのブロック動作を制御します。 この制御コードに指定された引数が 0 の場合、ソケットはブロッキング モードに設定されます。 引数が 0 以外の場合、ソケットは非ブロッキング モードに設定されます。 この値は、Winsock 2 の FIONBIO 定数に相当します。 |
OobDataRead | 1074033415 | 受信を待機している帯域外データに関する情報を返します。 この制御コードをストリーム ソケットで使用した場合、戻り値は受信できるバイト数を示します。 |
QueryTargetPnpHandle | 1207959576 | 基になるプロバイダーの SOCKET ハンドルを取得します。 このハンドルを使用して、プラグ アンド プレイのイベント通知を受信できます。 この値は、Winsock 2 の SIO_QUERY_TARGET_PNP_HANDLE 定数に相当します。 |
ReceiveAll | 2550136833 | ネットワーク上のすべての IPv4 パケットの受信を有効にします。 ソケットは、アドレス ファミリ InterNetwork を取得している必要があります。また、ソケット タイプは Raw、プロトコル タイプはIP である必要があります。 現在のユーザーがローカル コンピューターの Administrators グループに属し、ソケットが特定のポートにバインドされている必要があります。 この値は、Winsock 2 の SIO_RCVALL 定数に相当します。 |
ReceiveAllIgmpMulticast | 2550136835 | ネットワーク上のすべてのインターネット グループ管理プロトコル (IGMP) パケットの受信を有効にします。 ソケットは、アドレス ファミリ InterNetwork を取得している必要があります。また、ソケット タイプは Raw、プロトコル タイプはIgmp である必要があります。 現在のユーザーがローカル コンピューターの Administrators グループに属し、ソケットが特定のポートにバインドされている必要があります。 この値は、Winsock 2 の SIO_RCVALL_IGMPMCAST 定数に相当します。 |
ReceiveAllMulticast | 2550136834 | ネットワーク上のすべてのマルチキャスト IPv4 パケットの受信を有効にします。 これらは、224.0.0.0 から 239.255.255.255 の範囲の宛先アドレスを持ったパケットです。 ソケットは、アドレス ファミリ InterNetwork を取得している必要があります。また、ソケット タイプは Raw、プロトコル タイプはUdp である必要があります。 現在のユーザーがローカル コンピューターの Administrators グループに属し、ソケットが特定のポートにバインドされている必要があります。 この値は、Winsock 2 の SIO_RCVALL_MCAST 定数に相当します。 |
RoutingInterfaceChange | 2281701397 | リモート エンドポイントにアクセスするために使用するローカル インターフェイスが変更されたときの通知の受信を有効にします。 この値は、Winsock 2 の SIO_ROUTING_INTERFACE_CHANGE 定数に相当します。 |
RoutingInterfaceQuery | 3355443220 | 指定されたリモート アドレスへの接続に使用できるインターフェイスのアドレスを返します。 この値は、Winsock 2 の SIO_ROUTING_INTERFACE_QUERY 定数に相当します。 |
SetGroupQos | 2281701388 | ソケット グループの QOS (Quality of Service) 属性を設定します。 この値は、今後使用するために予約されており、Winsock 2 の SIO_SET_GROUP_QOS 定数に相当します。 |
SetQos | 2281701387 | ソケットの QOS (Quality of Service) 属性を設定します。 QOS は、ソケットの帯域幅の要件を定義します。 この値は、Winsock 2 の SIO_SET_QOS 定数に相当します。 |
TranslateHandle | 3355443213 | 対応するインターフェイスのコンテキスト内で有効なソケットのハンドルを返します。 この値は、Winsock 2 の SIO_TRANSLATE_HANDLE 定数に相当します。 |
UnicastInterface | 2550136838 | 発信ユニキャスト パケットで使用するインターフェイスを設定します。 この値は、Winsock 2 の SIO_UCAST_IF 定数に相当します。 |
例
次のコード例では、 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
関数に渡されるコントロール コードです。
適用対象
.NET