IFEntry 構造体 (tcpioctl.h)
[この構造は、今後のバージョンの Windows で変更または使用できない可能性があります。]
16 ページから 23 ページのインターネット エンジニアリング タスク フォース (IETF) Request for Comments ( RFC) 1213 で規定されているように、TCP/IP ネットワーク (MIB-II) のネットワーク管理用管理情報ベースの簡易ネットワーク管理プロトコル バージョン 2 (SNMPv2) 標準に従った TCP/IP インターフェイスについて説明します。
構文
typedef struct IFEntry {
ulong if_index;
ulong if_type;
ulong if_mtu;
ulong if_speed;
ulong if_physaddrlen;
uchar if_physaddr[MAX_PHYSADDR_SIZE];
ulong if_adminstatus;
ulong if_operstatus;
ulong if_lastchange;
ulong if_inoctets;
ulong if_inucastpkts;
ulong if_innucastpkts;
ulong if_indiscards;
ulong if_inerrors;
ulong if_inunknownprotos;
ulong if_outoctets;
ulong if_outucastpkts;
ulong if_outnucastpkts;
ulong if_outdiscards;
ulong if_outerrors;
ulong if_outqlen;
ulong if_descrlen;
uchar if_descr[1];
} IFEntry;
メンバー
if_index
現在の状態に関係なく、このシステムに存在する 1 からネットワーク インターフェイスの数までの値。このインターフェイスは一意に識別され、ネットワーク管理システムの再初期化全体で保持されます。
if_type
プロトコル スタック内のネットワーク層のすぐ下にある物理プロトコルまたはリンク プロトコルに従ったインターフェイスの種類。 次の表に、RFC 1213 の 18 ページと 19 ページで列挙されたこのif_type メンバーの使用可能な値を示します。
値 | 意味 |
---|---|
|
other (つまり、次のいずれも行いません) |
|
regular1822 |
|
hdh1822 |
|
ddn-x25 |
|
rfc877-x25 |
|
Ethernet-csmacd |
|
iso88023-csmacd |
|
iso88024-tokenBus |
|
iso88025-tokenRing |
|
iso88026-man |
|
starLan |
|
proteon-10Mbit |
|
proteon-80Mbit |
|
hyperchannel |
|
Fddi |
|
Lapb |
|
Sdlc |
|
ds1 (T-1) |
|
e1 (欧州株式 T-1) |
|
basicISDN |
|
primaryISDN (専用シリアル) |
|
propPointToPointSerial |
|
Ppp |
|
softwareLoopback |
|
eon (CLNP over IP [11]) |
|
Ethernet-3Mbit |
|
nsip (XNS over IP) |
|
slip (汎用 SLIP) |
|
Ultra (ULTRA テクノロジ) |
|
ds3 (T-3) |
|
sip (SMDS) |
|
frame-relay(32) |
これらの IP インターフェイスの種類と追加の IP インターフェイスの種類をサポートするフラグ定数には、Microsoft SDK の Ipifcons.h ヘッダー ファイルを含めます。
if_type メンバーの値を調べるときに、"ループバック" インターフェイスを識別する追加の定数を定義してテストすることもできます。#define IF_TYPE_LOOPBACK 0
if_mtu
インターフェイスで送受信できる最大データグラムのサイズ (バイト単位)。 ネットワーク データグラムの送信に使用されるインターフェイスの場合、これはインターフェイスで送信できる最大のネットワーク データグラムのサイズです。
if_speed
インターフェイスの現在の帯域幅の見積もり (ビット/秒)。 帯域幅が異なっていないインターフェイス、または正確な見積もりを行えないインターフェイスの場合、このメンバーには呼び出し帯域幅が含まれます。
if_physaddrlen
if_physaddr メンバーに含まれるアドレスの長さ (バイト単位)。 この種類のアドレスを持たないシリアル ポートなどのインターフェイスの場合、 if_physaddrlen メンバーは 0 です。
if_physaddr[MAX_PHYSADDR_SIZE]
プロトコル スタック内のネットワーク層のすぐ下にあるプロトコル層のインターフェイスのアドレス。 この種類のアドレスを持たないシリアル ポートなどのインターフェイスの場合、 if_physaddr メンバーには空の文字列が含まれます。
if_adminstatus
インターフェイスの目的の状態。 RFC 1213 の 20 ページで指定されている次のいずれかの値。
値 | 意味 |
---|---|
|
を;パケットを渡す準備ができています。 |
|
ダウン。 |
|
運用パケットを渡すことができないテスト状態。 |
if_operstatus
インターフェイスの実際の現在の動作状態。 RFC 1213 の 20 ページで指定されている次のいずれかの値。
値 | 意味 |
---|---|
|
を;パケットを渡す準備が整いました。 |
|
ダウン。 |
|
操作パケットを渡すことができないテスト状態。 |
if_lastchange
システムのネットワーク管理部分が最後に再初期化されてから 100 分の 1 秒で、このインターフェイスが実際の現在の動作状態に入った時刻。 ローカル ネットワーク管理サブシステムの最後の再初期化の前に現在の状態が入力された場合、このメンバーは 0 に設定されます。
if_inoctets
フレーミング文字を含む、このインターフェイスで受信した合計バイト数。
if_inucastpkts
上位層プロトコルに配信されるサブネットワーク ユニキャスト パケットの数。
if_innucastpkts
上位層プロトコルに配信される非ユニキャスト (サブネットワーク ブロードキャストまたはサブネットワーク マルチキャスト) パケットの数。
if_indiscards
メモリ リソースを解放するために破棄された受信パケットの数。またはその他の同様の理由により、上位層プロトコルへの配信を妨げるエラーに関連しません。
if_inerrors
上位層プロトコルへの配信を妨げるエラーを含む受信パケットの数。
if_inunknownprotos
プロトコルが不明またはサポートされていないために破棄された受信パケットの数。
if_outoctets
フレーム文字を含む、インターフェイスから送信された合計バイト数。
if_outucastpkts
上位レベルのプロトコルが要求したパケットの合計数は、破棄または送信されなかったパケットを含むサブネットワーク ユニキャスト アドレスに送信されます。
if_outnucastpkts
上位レベルのプロトコルが要求したパケットの合計数は、破棄または送信されなかったパケットを含む、非ユニキャスト (サブネットワーク ブロードキャストまたはサブネットワーク マルチキャスト) アドレスに送信されます。
if_outdiscards
メモリ リソースを解放するために破棄された送信パケットの数。またはその他の同様の理由で、送信を妨げるエラーに関連しません。
if_outerrors
エラーが原因で送信できなかった送信パケットの数。
if_outqlen
出力パケット キュー内の現在のパケット数。
if_descrlen
if_descr メンバーに含まれるインターフェイス記述テキストの、終端の null 文字をカウントしないバイト単位のサイズ。
if_descr[1]
製造元の名前、製品名、ハードウェアのバージョンなど、このインターフェイスに関する情報を含むテキスト文字列。 文字列が含まれていない場合、バッファーのサイズは 1 バイトです。
注釈
可変長 if_descr メンバーのため、 IFEntry 構造体には固定サイズがありません。 構造体の実際のインスタンスを格納するためにメモリを割り当てる目的で、合理的に安全なバッファー サイズを次のように計算できます。
maxIFEntryLen = sizeof(IFEntry) + MAX_ADAPTER_DESCRIPTION_LENGTH + 1;
要件
要件 | 値 |
---|---|
Header | tcpioctl.h |