다음을 통해 공유


GetOwnerModuleFromTcpEntry 함수(iphlpapi.h)

GetOwnerModuleFromTcpEntry 함수는 MIB 테이블 행의 특정 IPv4 TCP 엔드포인트에 대한 컨텍스트 바인딩을 실행한 모듈에 대한 데이터를 검색합니다.

구문

IPHLPAPI_DLL_LINKAGE DWORD GetOwnerModuleFromTcpEntry(
  [in]      PMIB_TCPROW_OWNER_MODULE      pTcpEntry,
  [in]      TCPIP_OWNER_MODULE_INFO_CLASS Class,
  [out]     PVOID                         pBuffer,
  [in, out] PDWORD                        pdwSize
);

매개 변수

[in] pTcpEntry

소유자 모 듈을 가져오는 데 사용되는 IPv4 TCP 엔드포인트 항목이 포함된 MIB_TCPROW_OWNER_MODULE 구조체에 대한 포인터입니다.

[in] Class

소유자 모듈과 관련하여 가져올 데이터 형식을 나타내는 TCPIP_OWNER_MODULE_INFO_CLASS 열거형 값입니다. TCPIP_OWNER_MODULE_INFO_CLASS 열거형은 Iprtrmib.h 헤더 파일에 정의되어 있습니다.

이 매개 변수는 TCPIP_OWNER_MODULE_INFO_BASIC 설정해야 합니다.

[out] pBuffer

소유자 모듈 데이터가 있는 TCPIP_OWNER_MODULE_BASIC_INFO 구조를 포함하는 버퍼를 가리키는 포인터입니다. 이 버퍼에 반환된 데이터 형식은 Class 매개 변수의 값으로 표시됩니다.

다음 구조체는 클래스가 해당 값으로 설정된 경우 Buffer의 데이터에 사용됩니다.

클래스 열거형 값 버퍼 데이터 형식
TCPIP_OWNER_MODULE_BASIC_INFO TCPIP_OWNER_MODULE_BASIC_INFO

[in, out] pdwSize

Buffer에 반환된 구조체의 예상 크기(바이트)입니다. 이 값이 너무 작게 설정되면 함수에서 ERROR_INSUFFICIENT_BUFFER 반환되고 이 필드에는 버퍼의 올바른 크기가 포함됩니다. 필요한 크기는 해당 구조체의 크기와 구조체에서 가리키는 데이터 길이(예: 이름 및 경로 문자열)와 같은 추가 바이트 수입니다.

반환 값

함수 호출이 성공하면 NO_ERROR 값이 반환됩니다.

함수가 실패하면 반환 값은 다음 오류 코드 중 하나입니다.

반환 코드 설명
ERROR_INSUFFICIENT_BUFFER
테이블에 공간이 부족합니다. 테이블의 크기는 pdwSize 매개 변수에 반환되며 테이블을 성공적으로 검색하려면 이 함수에 대한 후속 호출에 사용해야 합니다.
ERROR_INVALID_PARAMETER
매개 변수가 잘못되었습니다. pTcpEntry 또는 pdwSize 매개 변수 중 하나가 NULL인 경우 이 값이 반환됩니다. Class 매개 변수가 TCPIP_OWNER_MODULE_INFO_BASIC 같지 않은 경우에도 이 값이 반환됩니다.
ERROR_NOT_ENOUGH_MEMORY
메모리가 부족 하 여 작업을 완료할 수 없습니다.
ERROR_NOT_FOUND
요소를 찾을 수 없습니다. pTcpEntry 매개 변수가 가리키는 MIB_TCPROW_OWNER_MODULE 구조체의 dwOwningPid 멤버가 0이거나 찾을 수 없는 경우 이 값이 반환됩니다.
ERROR_PARTIAL_COPY
요청의 일부만 완료되었습니다.

설명

Buffer 매개 변수에는 특정 데이터에 대한 포인터가 있는 구조체뿐만 아니라 소유자 모듈의 이름과 경로가 포함된 0으로 끝나는 문자열에 대한 포인터뿐만 아니라 실제 데이터 자체도 포함됩니다. 이름 및 경로 문자열입니다. 따라서 버퍼 크기를 계산할 때 구조체의 멤버가 가리키는 데이터뿐만 아니라 구조체 둘 다에 충분한 공간이 있는지 확인합니다.

소유자 모듈에 대한 TCP 테이블 항목의 해결이 모범 사례입니다. 경우에 따라 TCPIP_OWNER_MODULE_BASIC_INFO 구조에 반환된 소유자 모듈 이름은 " svchost.exe "과 같은 프로세스 이름, 서비스 이름(예: "RPC") 또는 구성 요소 이름(예: "timer.dll")일 수 있습니다.

Windows Vista 이상에서 실행되는 컴퓨터의 경우 GetOwnerModuleFromTcpEntry 함수에서 검색한 TCPIP_OWNER_MODULE_BASIC_INFOpModuleNamepModulePath 멤버가 일부 TCP 연결에 대해 빈 문자열을 가리킬 수 있습니다. Windows 시스템 폴더(기본적으로 C:\Windows\System32)에 있는 TCP 연결을 시작하는 애플리케이션은 보호된 것으로 간주됩니다. 관리자 그룹의 멤버가 아닌 사용자가 GetOwnerModuleFromTcpEntry 함수를 호출하면 함수 호출은 성공하지만 pModuleNamepModulePath 멤버는 보호된 애플리케이션에서 시작한 TCP 연결에 대한 빈 문자열이 포함된 메모리를 가리킵니다.

Windows Vista 이상에서 실행되는 컴퓨터의 경우 TCPIP_OWNER_MODULE_BASIC_INFO 구조의 pModuleNamepModulePath 멤버에 액세스하는 것은 UAC(사용자 계정 컨트롤)에 의해 제한됩니다. 이 함수를 호출하는 애플리케이션이 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자에 의해 실행되는 경우 이 호출은 성공하지만 요청된 ExecutionLevel 이 requireAdministrator로 설정된 매니페스트 파일에 애플리케이션이 표시되지 않는 한 이러한 멤버에 대한 액세스는 빈 문자열을 반환합니다. Windows Vista 이상의 애플리케이션에 이 매니페스트 파일이 없는 경우 기본 제공 관리자가 아닌 Administrators 그룹의 구성원으로 로그온한 사용자는 보호된 pModuleNamepModulePath 멤버에 액세스할 수 있도록 향상된 셸에서 애플리케이션을 기본 제공 관리자(RunAs 관리자)로 실행해야 합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista, WINDOWS XP SP2 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008, Windows Server 2003 SP1 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 iphlpapi.h
라이브러리 Iphlpapi.lib
DLL Iphlpapi.dll

참고 항목

MIB_TCPROW_OWNER_MODULE

TCPIP_OWNER_MODULE_BASIC_INFO