다음을 통해 공유


GetIfTable2Ex 함수

GetIfTable2Ex 함수는 검색할 인터페이스 정보의 수준이 지정된 MIB-II 인터페이스 테이블을 검색합니다.

구문

NETIOAPI_API GetIfTable2Ex(
  _In_  MIB_IF_TABLE_LEVEL Level,
  _Out_ PMIB_IF_TABLE2     *Table
);

매개 변수

  • 수준 [in]
    검색할 인터페이스 정보의 수준입니다. 이 매개 변수는 MIB_IF_TABLE_LEVEL 열거형의 값 중 하나일 수 있습니다.

  • [out]
    MIB_IF_TABLE2 구조체의 인터페이스 테이블을 수신하는 버퍼에 대한 포인터입니다.

반환 값

GetIfTable2Ex는 함수가 성공하면 STATUS_SUCCESS 반환합니다.

함수가 실패하면 GetIfTable2Ex 는 다음 오류 코드 중 하나를 반환합니다.

반환 코드 설명
STATUS_INVALID_PARAMETER

잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 Level 매개 변수에 잘못된 값이 전달된 경우 반환됩니다.

STATUS_NOT_ENOUGH_MEMORY

메모리 리소스가 부족하여 작업을 완료할 수 있습니다.

기타

FormatMessage 함수를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다.

설명

GetIfTable2Ex 함수는 로컬 컴퓨터의 논리 및 물리적 인터페이스를 열거하고 이 정보를 MIB_IF_TABLE2 구조로 반환합니다.

드라이버는 유사한 함수 GetIfTable2를 사용하여 인터페이스를 검색할 수 있지만 GetIfTable2 는 드라이버가 반환할 인터페이스 수준을 지정하도록 설정하지 않습니다. Level 매개 변수가 MibIfTableNormal로 설정된 GetIfTable2Ex 함수에 대한 호출은 GetIfTable2 함수 호출과 동일한 결과를 검색합니다.

GetIfTable2ExTable 매개 변수가 가리키는 버퍼의 MIB_IF_TABLE2 구조체에서 인터페이스를 반환합니다. MIB_IF_TABLE2 구조체에는 인터페이스 수와 각 인터페이스에 대한 MIB_IF_ROW2 구조체 배열이 포함됩니다. GetIfTable2 는 이 구조체의 MIB_IF_TABLE2 구조체 및 MIB_IF_ROW2 항목에 대해 mmory를 할당합니다. 이러한 반환된 구조체가 더 이상 필요하지 않은 경우 드라이버는 FreeMibTable을 호출하여 메모리를 해제해야 합니다.

NDIS 중간 드라이버 인터페이스 및 NDIS 필터 드라이버 인터페이스를 포함한 모든 인터페이스는 Level 매개 변수에 대해 가능한 값 중 하나에 대해 반환됩니다. Level 매개 변수에 대한 설정은 인터페이스에 대한 Table 매개 변수가 가리키는 MIB_IF_TABLE2 구조체에서 MIB_IF_ROW2 구조체의 통계 및 상태 멤버가 반환되는 방식에 영향을 줍니다. 예를 들어 NIC(네트워크 인터페이스 카드)에는 NDIS 미니포트 드라이버가 있습니다. 상위 수준 프로토콜 드라이버와 NDIS 미니포트 드라이버 간의 인터페이스에 NDIS 중간 드라이버를 설치할 수 있습니다. NDIS 필터 드라이버는 NDIS 중간 드라이버 위에 연결할 수 있습니다. NIC가 MIB_IF_ROW2 구조체의 MediaConnectState 멤버를 MediaConnectStateConnected로 보고하지만 NDIS 필터 드라이버는 상태를 수정하고 상태를 MediaConnectStateDisconnected로 보고한다고 가정합니다. Level 매개 변수를 MibIfTableNormal로 설정하여 인터페이스 정보를 쿼리하면 필터 스택의 맨 위에 있는 상태(MediaConnectStateDisconnected)가 보고됩니다. Level 매개 변수를 MibIfTableRaw로 설정하여 인터페이스를 쿼리하면 인터페이스 수준의 상태가 직접 반환됩니다(MediaConnectStateConnected).

Table 매개 변수가 가리키는 반환된 MIB_IF_TABLE2 구조체에는 NumEntries 멤버와 MIB_IF_TABLE2 구조체의 Table 멤버에 있는 첫 번째 MIB_IF_ROW2 배열 항목 간의 맞춤을 위한 안쪽 여백이 포함될 수 있습니다. 맞춤을 위한 안쪽 여백은 MIB_IF_ROW2 배열 항목 사이에도 있을 수 있습니다. MIB_IF_ROW2 배열 항목에 대한 액세스는 패딩이 있을 수 있다고 가정해야 합니다.

요구 사항

대상 플랫폼

유니버설

버전

Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.

헤더

Netioapi.h(Netioapi.h 포함)

라이브러리

Netio.lib

Irql

< DISPATCH_LEVEL

추가 정보

FreeMibTable

GetIfTable2

MIB_IF_TABLE_LEVEL

MIB_IF_TABLE2

MIB_IF_ROW2