MsiEnumClientsExA 함수(msi.h)

MsiEnumClientsEx 함수는 지정된 구성 요소를 사용하는 설치된 애플리케이션을 열거합니다. 함수는 호출할 때마다 애플리케이션에 대한 제품 코드를 검색합니다.

Windows Installer 4.5 이하: 지원되지 않습니다. 이 함수는 Windows Installer 5.0부터 사용할 수 있습니다.

구문

UINT MsiEnumClientsExA(
  [in]                LPCSTR            szComponent,
  [in, optional]      LPCSTR            szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwProductIndex,
  [out, optional]     CHAR [39]         szProductBuf,
  [out, optional]     MSIINSTALLCONTEXT *pdwInstalledContext,
  [out, optional]     LPSTR             szSid,
  [in, out, optional] LPDWORD           pcchSid
);

매개 변수

[in] szComponent

구성 요소를 식별하는 구성 요소 코드 GUID입니다. 함수는 이 구성 요소를 사용하는 애플리케이션을 열거합니다.

[in, optional] szUserSid

SID(보안 식별자)를 포함하는 null로 끝나는 문자열 값입니다. 애플리케이션의 열거형은 이 SID로 식별된 사용자로 확장됩니다. 특수 SID 문자열 s-1-1-0(모두)은 시스템의 모든 사용자에 대한 모든 애플리케이션을 열거합니다. s-1-1-0 이외의 SID 값은 특정 사용자의 사용자 SID를 지정하고 지정된 사용자가 설치한 애플리케이션의 인스턴스를 열거합니다.

SID 유형 의미
NULL
현재 로그온한 사용자를 지정합니다.
사용자 SID
특정 사용자의 열거형을 지정합니다. 사용자 SID의 예는 "S-1-3-64-2415071341-1358098788-3127455600-2561"입니다.
s-1-1-0
시스템의 모든 사용자에 대한 열거형을 지정합니다.
 
참고 특수 SID 문자열 s-1-5-18(시스템)은 컴퓨터별 설치 컨텍스트에 있는 애플리케이션을 열거하는 데 사용할 수 없습니다. SID 값을 s-1-5-18로 설정하면 ERROR_INVALID_PARAMETER 반환됩니다. dwContextMSIINSTALLCONTEXT_MACHINE 전용으로 설정된 경우 szUserSid 값은 NULL이어야 합니다.
 

[in] dwContext

열거형을 지정된 설치 컨텍스트에 설치된 애플리케이션 인스턴스로 확장하는 플래그입니다. 열거형에는 szUserSid로 식별된 사용자가 설치한 애플리케이션의 인스턴스만 포함됩니다.

다음 값의 조합일 수 있습니다.

Context 의미
MSIINSTALLCONTEXT_USERMANAGED
1
사용자별 관리형 설치 컨텍스트에 설치된 애플리케이션을 포함합니다.
MSIINSTALLCONTEXT_USERUNMANAGED
2
사용자별 관리되지 않는 설치 컨텍스트에 설치된 애플리케이션을 포함합니다.
MSIINSTALLCONTEXT_MACHINE
4
컴퓨터별 설치 컨텍스트에 설치된 애플리케이션을 포함합니다. dwInstallContextMSIINSTALLCONTEXT_MACHINE 전용으로 설정된 경우 szUserSID 매개 변수의 값은 NULL이어야 합니다.

[in] dwProductIndex

검색할 애플리케이션의 인덱스를 지정합니다. 이 매개 변수의 값은 함수에 대한 첫 번째 호출에서 0이어야 합니다. 후속 호출마다 인덱스가 1씩 증가해야 합니다. 함수에 대한 이전 호출이 ERROR_SUCCESS 반환하는 경우에만 인덱스가 증가해야 합니다.

[out, optional] szProductBuf

애플리케이션에 대한 제품 코드를 수신하는 문자열 값입니다. 이 위치에 있는 버퍼의 길이는 제품 코드가 포함된 null로 끝나는 문자열 값을 보유할 수 있을 만큼 커야 합니다. 처음 38개의 TCHAR 문자는 구성 요소에 대한 GUID를 수신하고 39번째 문자는 종료되는 NULL 문자를 받습니다.

[out, optional] pdwInstalledContext

애플리케이션의 설치 컨텍스트를 제공하는 플래그입니다.

다음 값의 조합일 수 있습니다.

Context 의미
MSIINSTALLCONTEXT_USERMANAGED
1
애플리케이션은 사용자별 관리형 설치 컨텍스트에 설치됩니다.
MSIINSTALLCONTEXT_USERUNMANAGED
2
애플리케이션은 사용자별 관리되지 않는 설치 컨텍스트에 설치됩니다.
MSIINSTALLCONTEXT_MACHINE
4
애플리케이션은 컴퓨터별 설치 설치 컨텍스트에 있습니다.

[out, optional] szSid

애플리케이션을 설치한 사용자를 식별하는 SID(보안 식별자)를 받습니다. 애플리케이션의 이 instance 컴퓨터별 설치 컨텍스트에 있는 경우 위치는 빈 문자열 값을 받습니다.

버퍼의 길이는 SID를 포함하는 null로 끝나는 문자열 값을 보유할 수 있을 만큼 커야 합니다. 버퍼가 너무 작으면 함수는 ERROR_MORE_DATA 반환하고 pcchSid 가 가리키는 위치는 종료되는 NULL 문자를 포함하지 않고 SID의 TCHAR 수를 받습니다.

szSidNULL로 설정되고 pcchSid가 메모리의 위치에 대한 유효한 포인터인 경우 함수는 ERROR_SUCCESS 반환하고 위치는 종료 null 문자를 포함하지 않고 SID의 TCHAR 수를 받습니다. 그런 다음 함수를 다시 호출하여 값을 검색할 수 있으며, szSid 버퍼의 크기는 *pcchSid + 1자를 포함할 만큼 크게 조정됩니다.

SID 유형 의미
빈 문자열
애플리케이션은 컴퓨터별 설치 컨텍스트에 설치됩니다.
사용자 SID
제품을 설치한 사용자의 SID입니다.

[in, out, optional] pcchSid

종료 null 문자를 포함하지 않고 SID의 TCHAR 수를 지정하는 변수가 포함된 메모리의 위치에 대한 포인터입니다. 함수가 반환될 때 이 변수는 함수가 SID를 성공적으로 복사하고 null 문자를 szSid가 가리키는 버퍼 위치에 종료할 수 있는지 여부를 요청한 SID의 크기로 설정합니다. 크기는 종료 null 문자를 포함하지 않고 요청된 값의 TCHAR 수로 반환됩니다.

이 매개 변수는 szSidNULL인 경우에만 NULL로 설정할 수 있으며, 그렇지 않으면 함수가 ERROR_INVALID_PARAMETER 반환합니다. szSidpcchSid가 모두 NULL로 설정된 경우 함수는 SID 값을 검색하지 않고 SID가 있는 경우 ERROR_SUCCESS 반환합니다.

반환 값

MsiEnumClientsEx 함수는 다음 값 중 하나를 반환합니다.

반환 코드 설명
ERROR_ACCESS_DENIED
현재 사용자 이외의 사용자가 설치한 애플리케이션의 구성 요소를 열거하려면 관리자 권한이 필요합니다.
ERROR_BAD_CONFIGURATION
구성 데이터가 손상되었습니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달됩니다.
ERROR_NO_MORE_ITEMS
열거할 애플리케이션이 더 이상 없습니다.
ERROR_SUCCESS
함수가 성공했습니다.
ERROR_MORE_DATA
제공된 버퍼가 너무 작아서 전체 값을 보유할 수 없습니다.
ERROR_FUNCTION_FAILED
함수가 실패했습니다.

설명

참고

msi.h 헤더는 MSiEnumClientsEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer 런타임 요구 사항을 참조하세요.
대상 플랫폼 Windows
헤더 msi.h
라이브러리 Msi.lib
DLL Msi.dll