IFEntry 구조체(tcpioctl.h)
[이 구조는 이후 버전의 Windows에서 변경되거나 사용할 수 없습니다.]
16~23페이지의 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 멤버의 가능한 값을 나열합니다.
값 | 의미 |
---|---|
|
기타(즉, 다음 중 어느 것도 없음) |
|
regular1822 |
|
hdh1822 |
|
ddn-x25 |
|
rfc877-x25 |
|
이더넷 csmacd |
|
iso88023-csmacd |
|
iso88024-tokenBus |
|
iso88025-tokenRing |
|
iso88026-man |
|
starLan |
|
proteon-10Mbit |
|
proteon-80Mbit |
|
하이퍼채널 |
|
Fddi |
|
lapb |
|
Sdlc |
|
ds1(T-1) |
|
e1(유럽 등가 T-1) |
|
basicISDN |
|
primaryISDN(독점 직렬) |
|
propPointToPointSerial |
|
Ppp |
|
softwareLoopback |
|
eon(IP를 통해 CLNP [11]) |
|
이더넷-3Mbit |
|
nsip(IP를 통해 XNS) |
|
slip(일반 SLIP) |
|
ultra(ULTRA 기술) |
|
ds3(T-3) |
|
sip(SMDS) |
|
frame-relay(32) |
이러한 및 추가 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초)입니다. 로컬 네트워크 관리 하위 시스템을 마지막으로 다시 초기화하기 전에 현재 상태를 입력한 경우 이 멤버는 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 구조체의 크기가 고정되어 있지 않습니다. 구조체의 실제 instance 포함하도록 메모리를 할당하기 위해 다음과 같이 합리적으로 안전한 버퍼 크기를 계산할 수 있습니다.
maxIFEntryLen = sizeof(IFEntry) + MAX_ADAPTER_DESCRIPTION_LENGTH + 1;
요구 사항
요구 사항 | 값 |
---|---|
헤더 | tcpioctl.h |