MsiGetPatchInfoExA 함수(msi.h)

MsiGetPatchInfoEx 함수는 제품의 지정된 instance 패치 적용에 대한 정보를 쿼리합니다.

구문

UINT MsiGetPatchInfoExA(
  [in]            LPCSTR            szPatchCode,
  [in]            LPCSTR            szProductCode,
  [in]            LPCSTR            szUserSid,
  [in]            MSIINSTALLCONTEXT dwContext,
  [in]            LPCSTR            szProperty,
  [out, optional] LPSTR             lpValue,
  [in, out]       LPDWORD           pcchValue
);

매개 변수

[in] szPatchCode

패치의 GUID를 포함하는 null로 끝나는 문자열입니다. 이 매개 변수는 NULL일 수 없습니다.

[in] szProductCode

제품 instance ProductCode GUID를 포함하는 null로 종료된 문자열입니다. 이 매개 변수는 NULL일 수 없습니다.

[in] szUserSid

쿼리되는 패치의 instance 있는 SID(보안 식별자)를 지정하는 null로 종료된 문자열입니다. NULL 값을 사용하면 현재 사용자가 지정됩니다.

SID 의미
NULL
로그온한 사용자를 지정합니다.
사용자 SID
시스템의 특정 사용자 ID에 대한 열거형을 지정합니다. 다음 예제에서는 가능한 사용자 SID를 식별합니다. "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
참고 특수 SID 문자열 "S-1-5-18"(시스템)은 컴퓨터별로 설치된 제품을 열거하는 데 사용할 수 없습니다. dwContextMSIINSTALLCONTEXT_MACHINE 경우 szUserSidNULL이어야 합니다.
 

[in] dwContext

열거형을 관리되지 않는 사용자별, 사용자 단위 관리형 또는 컴퓨터별 컨텍스트로 제한합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

Context 의미
MSIINSTALLCONTEXT_USERMANAGED
1
szUserSid가 지정하는 사용자에 대한 모든 사용자별 관리 설치로 확장되는 쿼리입니다.
MSIINSTALLCONTEXT_USERUNMANAGED
2
szUserSid가 지정하는 사용자에 대한 모든 사용자별 관리되지 않는 설치로 확장되는 쿼리입니다.
MSIINSTALLCONTEXT_MACHINE
4
모든 컴퓨터별 설치로 확장되는 쿼리입니다.

[in] szProperty

검색할 속성 값을 지정하는 null로 끝나는 문자열입니다. szProperty 매개 변수는 다음 중 하나일 수 있습니다.

Name 의미
INSTALLPROPERTY_LOCALPACKAGE
"LocalPackage"
제품이 사용하는 캐시된 패치 파일을 가져옵니다.
INSTALLPROPERTY_TRANSFORMS
"변환"
마지막 패치 설치가 제품에 적용된 패치 변환 집합을 가져옵니다. 사용자가 로그온하지 않은 경우 관리되지 않는 사용자별 애플리케이션에는 이 값을 사용할 수 없습니다.
INSTALLPROPERTY_INSTALLDATE
"InstallDate"
이 제품이 서비스를 마지막으로 받은 시간을 가져옵니다. 이 속성의 값은 제품에서 패치가 적용되거나 제거되거나 제품을 수리하는 데 /v 명령줄 옵션이 사용될 때마다 바뀝니다. 제품이 수리 또는 패치를 받지 않은 경우 이 속성에는 이 제품이 이 컴퓨터에 설치된 시간이 포함됩니다.
INSTALLPROPERTY_UNINSTALLABLE
"제거할 수 없음"
패치가 제품에서 제거할 수 있는 것으로 표시된 경우 “1”을 반환합니다. 이 경우 제거할 수 없는 다른 패치에 이 패치가 필요한 경우 설치 관리자는 여전히 제거를 차단할 수 있습니다.
INSTALLPROPERTY_PATCHSTATE
"상태"
이 패치가 현재 제품에 적용된 경우 “1”을 반환합니다. 이 패치가 다른 패치로 대체되면 "2"를 반환합니다. 이 패치가 사용되지 않는 경우 "4"를 반환합니다. 이러한 값은 MsiEnumPatchesEx에서 사용하는 dwFilter 매개 변수의 상수에 해당합니다.
INSTALLPROPERTY_DISPLAYNAME
"DisplayName"
패치에 대해 등록된 표시 이름을 가져옵니다. MsiPatchMetadata 테이블에 DisplayName 속성이 포함되지 않은 패치의 경우 반환된 표시 이름은 빈 문자열("")입니다.
INSTALLPROPERTY_MOREINFOURL
"MoreInfoURL"
패치에 대해 등록된 지원 정보 URL을 가져옵니다. MsiPatchMetadata 테이블에 MoreInfoURL 속성이 포함되지 않은 패치의 경우 반환된 지원 정보 URL은 빈 문자열("")입니다.

[out, optional] lpValue

이 매개 변수는 속성 값을 받는 버퍼에 대한 포인터입니다. 이 버퍼는 정보를 포함할 수 있을 만큼 커야 합니다. 버퍼가 너무 작으면 함수는 ERROR_MORE_DATA 반환하고 *pcchValue를 종결 NULL 문자를 포함하지 않고 속성 값의 TCHAR 수로 설정합니다.

lpValueNULL로 설정되고 pcchValue가 유효한 포인터로 설정된 경우 함수는 ERROR_SUCCESS 반환하고 *pcchValue를 종료 NULL 문자를 포함하지 않고 값의 TCHAR 수로 설정합니다. 그런 다음 함수를 다시 호출하여 값을 검색할 수 있으며 lpValue 버퍼는 *pcchValue + 1자를 포함할 만큼 충분히 큽니다.

lpValuepcchValue가 모두 NULL로 설정된 경우 함수는 값을 검색하지 않고 값이 있는 경우 ERROR_SUCCESS 반환합니다.

[in, out] pcchValue

함수를 호출할 때 이 매개 변수는 lpValue 버퍼의 TCHAR 수를 지정하는 변수에 대한 포인터여야 합니다. 함수가 반환될 때 이 매개 변수는 함수가 지정된 버퍼에 값을 복사하는지 여부에 관계없이 요청된 값의 크기로 설정됩니다. 크기는 종료 null 문자를 포함하지 않고 요청된 값의 TCHAR 수로 반환됩니다.

lpValueNULL인 경우에만 이 매개 변수를 NULL로 설정할 수 있습니다. 그렇지 않으면 함수는 ERROR_INVALID_PARAMETER 반환합니다.

반환 값

MsiGetPatchInfoEx 함수는 다음 값을 반환합니다.

반환 코드 설명
ERROR_ACCESS_DENIED
권한이 부족한 리소스에 액세스하려고 하면 함수가 실패합니다.
ERROR_BAD_CONFIGURATION
구성 데이터가 손상되었습니다.
ERROR_FUNCTION_FAILED
함수가 실패하고 오류가 다른 오류 코드에서 식별되지 않습니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달됩니다.
ERROR_MORE_DATA
값이 제공된 버퍼에 맞지 않습니다.
ERROR_SUCCESS
패치가 성공적으로 열거되었습니다.
ERROR_UNKNOWN_PRODUCT
szProduct에서 지정하는 제품은 컴퓨터에 설치되어 있지 않습니다.
ERROR_UNKNOWN_PROPERTY
속성을 인식할 수 없는 경우
ERROR_UNKNOWN_PATCH
패치를 인식할 수 없는 경우

설명

Windows Installer 2.0: 지원되지 않습니다. 이 함수는 Windows Installer 버전 3.0부터 사용할 수 있습니다.

사용자는 표시되는 제품 instance 대한 패치 데이터를 쿼리할 수 있습니다. 관리자 그룹은 모든 제품 instance 컴퓨터의 모든 사용자에 대한 패치 데이터를 쿼리할 수 있습니다. 사용자가 로그온하지 않은 경우 관리되지 않는 사용자별 애플리케이션에 모든 값을 사용할 수 있는 것은 아닙니다.

참고

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

요구 사항

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

참고 항목

ProductCode

패치 삭제