다음을 통해 공유


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 멤버의 가능한 값을 나열합니다.

의미
1
기타(즉, 다음 중 어느 것도 없음)
2
regular1822
3
hdh1822
4
ddn-x25
5
rfc877-x25
6
이더넷 csmacd
7
iso88023-csmacd
8
iso88024-tokenBus
9
iso88025-tokenRing
10
iso88026-man
11
starLan
12
proteon-10Mbit
13
proteon-80Mbit
14
하이퍼채널
15
Fddi
16
lapb
17
Sdlc
18
ds1(T-1)
19
e1(유럽 등가 T-1)
20
basicISDN
21
primaryISDN(독점 직렬)
22
propPointToPointSerial
23
Ppp
24
softwareLoopback
25
eon(IP를 통해 CLNP [11])
26
이더넷-3Mbit
27
nsip(IP를 통해 XNS)
28
slip(일반 SLIP)
29
ultra(ULTRA 기술)
30
ds3(T-3)
31
sip(SMDS)
32
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페이지에 지정된 다음 값 중 하나입니다.

의미
1
위쪽; 패킷을 전달할 준비가 된 것입니다.
2
작동 안 함.
3
테스트 상태에서는 작동 패킷을 전달할 수 없습니다.

if_operstatus

인터페이스의 실제 현재 작동 상태; RFC 1213의 20페이지에 지정된 다음 값 중 하나입니다.

의미
1
위쪽; 패킷을 전달할 준비가 된 것입니다.
2
작동 안 함.
3
테스트 상태에서는 작동 패킷을 전달할 수 없습니다.

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

추가 정보

IOCTL_TCP_QUERY_INFORMATION_EX

관리 정보 기본 참조