GetIpInterfaceEntry 함수
GetIpInterfaceEntry 함수는 로컬 컴퓨터에서 지정된 인터페이스에 대한 IP 정보를 검색합니다.
구문
NETIOAPI_API GetIpInterfaceEntry(
_Inout_ PMIB_IPINTERFACE_ROW Row
);
매개 변수
- 행 [in, out]
반환이 성공하면 로컬 컴퓨터의 인터페이스에 대한 정보를 수신하는 MIB_IPINTERFACE_ROW 구조체에 대한 포인터입니다. 입력 시 드라이버는 정보를 검색할 인터페이스에 MIB_IPINTERFACE_ROW InterfaceLuid 멤버 또는 InterfaceIndex 멤버를 설정해야 합니다.
반환 값
GetIpInterfaceEntry 는 함수가 성공하면 STATUS_SUCCESS 반환합니다.
함수가 실패하면 GetIpInterfaceEntry 는 다음 오류 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_INVALID_PARAMETER | 잘못된 매개 변수가 함수에 전달되었습니다. 이 오류는 Row 매개 변수에 NULL 포인터가 전달되거나 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조의 Family 멤버가 AF_INET 또는 AF_INET6 지정되지 않았거나 MIB_IPINTERFACE_ROW 구조체의 InterfaceLuid 및 InterfaceIndex 멤버가 지정되지 않은 경우 반환됩니다. |
STATUS_NOT_FOUND | 지정된 인터페이스를 찾을 수 없습니다. 이 오류는 함수가 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조체의 InterfaceLuid 또는 InterfaceIndex 멤버에 의해 지정된 네트워크 인터페이스를 찾을 수 없는 경우 반환됩니다. |
기타 | FormatMessage 함수를 사용하여 반환된 오류에 대한 메시지 문자열을 가져옵니다. |
설명
입력 시 드라이버는 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조체의 다음 멤버를 초기화해야 합니다.
패밀리
AF_INET 또는 AF_INET6 설정합니다.InterfaceLuid 또는 InterfaceIndex
이러한 멤버는 이전에 나열된 순서대로 사용됩니다. 따라서 InterfaceLuid 를 지정하면 이 멤버를 사용하여 인터페이스를 확인합니다. InterfaceLuid 멤버에 대해 값이 설정되지 않은 경우(이 멤버의 값이 0으로 설정된 경우) InterfaceIndex 멤버가 인터페이스를 확인하는 데 다음에 사용됩니다.
출력에서 GetIpInterfaceEntry 는 Row 매개 변수가 가리키는 MIB_IPINTERFACE_ROW 구조체의 나머지 멤버를 채웁니다.
드라이버는 InitializeIpInterfaceEntry 함수를 사용하여 기본값으로 MIB_IPINTERFACE_ROW 구조체 항목의 필드를 초기화해야 합니다. 그런 다음 드라이버는 수정하려는 MIB_IPINTERFACE_ROW 항목의 필드를 변경한 다음 SetIpInterfaceEntry 함수를 호출할 수 있습니다.
서로 다른 보안 요구 사항의 여러 네트워크에 대한 권한 없는 동시 액세스는 보안 허점을 만들고 권한 없는 드라이버가 실수로 두 네트워크 간에 데이터를 릴레이할 수 있도록 합니다. 일반적인 예는 VPN(가상 사설망) 및 인터넷에 대한 동시 액세스입니다. Windows Server 2003 및 Windows XP 운영 체제는 약한 호스트 모델을 사용합니다. 여기서 RAS(원격 액세스 서비스)는 다른 인터페이스를 통해 모든 기본 경로의 경로 메트릭을 늘려 이러한 동시 액세스를 방지합니다. 따라서 모든 트래픽이 VPN 인터페이스를 통해 라우팅되어 다른 네트워크 연결이 중단됩니다.
Windows Vista 이상 버전의 Windows 운영 체제에서는 기본적으로 강력한 호스트 모델이 사용됩니다. GetBestRoute2 함수를 사용하여 경로 조회에 원본 IP 주소를 지정하면 경로 조회가 원본 IP 주소의 인터페이스로 제한됩니다. 잠재적 경로 목록에 인터넷 트래픽을 가능하게 하는 VPN 인터페이스에 대한 경로도 없으므로 RAS의 경로 메트릭 수정은 영향을 주지 않습니다. 드라이버는 MIB_IPINTERFACE_ROW DisableDefaultRoutes 멤버를 사용하여 인터페이스의 기본 경로를 사용하지 않도록 설정할 수 있습니다. VPN 클라이언트는 VPN 클라이언트에서 분할 터널링이 필요하지 않은 경우 분할 터널링을 제한하는 보안 조치로 이 멤버를 사용할 수 있습니다. VPN 클라이언트는 SetIpInterfaceEntry 함수를 호출하여 필요한 경우 DisableDefaultRoutes 멤버를 TRUE 로 설정할 수 있습니다. VPN 클라이언트는 GetIpInterfaceEntry 함수를 호출하여 DisableDefaultRoutes 멤버의 현재 상태를 쿼리할 수 있습니다.
요구 사항
대상 플랫폼 |
유니버설 |
버전 |
Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
헤더 |
Netioapi.h(Netioapi.h 포함) |
라이브러리 |
Netio.lib |
Irql |
< DISPATCH_LEVEL |