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 함수 호출과 동일한 결과를 검색합니다.
GetIfTable2Ex 는 Table 매개 변수가 가리키는 버퍼의 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 |