다음을 통해 공유


GetOwnerModuleFromTcp6Entry 함수(iphlpapi.h)

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

구문

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

매개 변수

[in] pTcpEntry

소유자 모듈을 가져오는 데 사용되는 IPv6 TCP 엔드포인트 항목이 포함된 MIB_TCP6ROW_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 매개 변수의 값으로 표시됩니다.

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

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

[in, out] pdwSize

버퍼로 반환된 구조체의 예상 크기(바이트)입니다. 이 값이 너무 작게 설정되면 함수에서 ERROR_INSUFFICIENT_BUFFER 반환되고 이 필드에 올바른 구조 크기가 포함됩니다.

반환 값

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

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

반환 코드 설명
ERROR_INSUFFICIENT_BUFFER
테이블에 공간이 부족했습니다. 테이블의 크기는 pdwSize 매개 변수에 반환되며 테이블을 성공적으로 검색하려면 이 함수에 대한 후속 호출에서 사용해야 합니다.
ERROR_INVALID_PARAMETER
매개 변수가 잘못되었습니다. pTcpEntry 또는 pdwSize 매개 변수 중 하나가 NULL인 경우 이 값이 반환됩니다. 클래스 매개 변수가 TCPIP_OWNER_MODULE_INFO_BASIC 같지 않은 경우에도 이 값이 반환됩니다.
ERROR_NOT_ENOUGH_MEMORY
메모리가 부족 하 여 작업을 완료할 수 없습니다.
ERROR_NOT_FOUND
요소를 찾을 수 없습니다. pTcpEntry 매개 변수가 가리키는 MIB_TCP6ROW_OWNER_MODULEdwOwningPid 멤버가 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 연결을 시작하는 애플리케이션은 보호된 것으로 간주됩니다. Administrators 그룹의 멤버가 아닌 사용자가 GetOwnerModuleFromTcpEntry 함수를 호출하면 함수 호출은 성공하지만 pModuleNamepModulePath 멤버는 보호된 애플리케이션에서 시작한 TCP 연결에 대한 빈 문자열이 포함된 메모리를 가리킵니다.

Windows Vista 이상에서 실행되는 컴퓨터의 경우 TCPIP_OWNER_MODULE_BASIC_INFO 구조의 pModuleNamepModulePath 멤버에 액세스하는 것은 UAC(사용자 계정 제어)에 의해 제한됩니다. 이 함수를 호출하는 애플리케이션이 기본 제공 Administrator 이외의 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_TCP6ROW_OWNER_MODULE

TCPIP_OWNER_MODULE_INFO_CLASS