다음을 통해 공유


MsiEnumPatchesExA 함수(msi.h)

MsiEnumPatchesEx 함수는 특정 컨텍스트 또는 모든 컨텍스트에서 모든 패치를 열거합니다. 제품에 이미 적용된 패치가 열거됩니다. 등록되었지만 아직 제품에 적용되지 않은 패치도 열거됩니다.

구문

UINT MsiEnumPatchesExA(
  [in, optional]      LPCSTR            szProductCode,
  [in, optional]      LPCSTR            szUserSid,
  [in]                DWORD             dwContext,
  [in]                DWORD             dwFilter,
  [in]                DWORD             dwIndex,
  [out, optional]     CHAR [39]         szPatchCode,
  [out, optional]     CHAR [39]         szTargetProductCode,
  [out, optional]     MSIINSTALLCONTEXT *pdwTargetProductContext,
  [out, optional]     LPSTR             szTargetUserSid,
  [in, out, optional] LPDWORD           pcchTargetUserSid
);

매개 변수

[in, optional] szProductCode

패치가 열거된 제품의 ProductCode GUID를 지정하는 null로 끝나는 문자열입니다. NULL이 아닌 경우 패치 열거형은 szUserSiddwContext로 지정된 사용자 및 컨텍스트에서 이 제품의 인스턴스로 제한됩니다. NULL인 경우 지정된 컨텍스트 아래의 모든 제품에 대한 패치가 열거됩니다.

[in, optional] szUserSid

열거형의 컨텍스트를 제한하는 SID(보안 식별자)를 지정하는 null로 종료된 문자열입니다. 특수 SID 문자열 "S-1-1-0"(모두)은 시스템의 모든 사용자에 대한 열거형을 지정합니다. "S-1-1-0" 이외의 SID 값은 사용자 SID로 간주되며 해당 사용자로 열거형을 제한합니다. 현재 사용자가 아닌 다른 사용자에 대해 열거하는 경우 Windows Installer 버전 3.0보다 작은 버전을 사용하여 사용자별 관리되지 않는 컨텍스트에 적용된 패치는 열거되지 않습니다. 이 매개 변수를 NULL 로 설정하여 현재 사용자를 지정할 수 있습니다.

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만 설정되면 szUserSidNULL이어야 합니다.
 

[in] dwContext

열거형을 하나 또는 컨텍스트의 조합으로 제한합니다. 이 매개 변수는 하나 또는 다음 값의 조합일 수 있습니다.

Context 의미
MSIINSTALLCONTEXT_USERMANAGED
szUserSid가 지정하는 사용자의 모든 사용자별 관리 설치로 확장되는 열거형입니다. 잘못된 SID는 항목을 반환하지 않습니다.
MSIINSTALLCONTEXT_USERUNMANAGED
이 컨텍스트에서는 Windows Installer 버전 3.0과 함께 설치된 패치만 현재 사용자가 아닌 사용자에 대해 열거됩니다. 현재 사용자의 경우 함수는 설치된 모든 패치와 새 패치를 열거합니다. szUserSid에 대한 잘못된 SID는 항목을 반환하지 않습니다.
MSIINSTALLCONTEXT_MACHINE
모든 컴퓨터별 설치로 확장되는 열거형입니다. dwContextMSIINSTALLCONTEXT_MACHINE만 설정되면 szUserSid 매개 변수는 NULL이어야 합니다.

[in] dwFilter

열거형에 대한 필터입니다. 이 매개 변수는 하나 또는 다음 매개 변수의 조합일 수 있습니다.

필터 의미
MSIPATCHSTATE_APPLIED
1
열거형에는 적용된 패치가 포함됩니다. 열거형에는 대체되거나 사용되지 않는 패치가 포함되지 않습니다.
MSIPATCHSTATE_SUPERSEDED
2
열거형에는 대체된 것으로 표시된 패치가 포함됩니다.
MSIPATCHSTATE_OBSOLETED
4
열거형에는 사용되지 않는 것으로 표시된 패치가 포함됩니다.
MSIPATCHSTATE_REGISTERED
8
열거형에는 등록되었지만 아직 적용되지 않은 패치가 포함됩니다. MsiSourceListAddSourceEx 함수는 새 패치를 등록할 수 있습니다.
참고 현재 사용자 이외의 사용자에 대해 등록되고 사용자별 관리되지 않는 컨텍스트에 적용된 패치는 열거되지 않습니다.
 
MSIPATCHSTATE_ALL
15
열거형에는 적용된 모든, 사용되지 않는 패치, 대체된 패치 및 등록된 패치가 포함됩니다.

[in] dwIndex

검색할 패치의 인덱스입니다. 이 매개 변수는 MsiEnumPatchesEx 함수에 대한 첫 번째 호출에 대해 0이어야 하며 이후 호출에 대해 증가해야 합니다. dwIndex 매개 변수는 이전 호출이 ERROR_SUCCESS 반환된 경우에만 증가해야 합니다.

[out, optional] szPatchCode

열거되는 패치의 GUID를 포함할 출력 버퍼입니다. 버퍼는 GUID를 보유할 수 있을 만큼 커야 합니다. 이 매개 변수는 NULL일 수 있습니다.

[out, optional] szTargetProductCode

이 패치를 수신하는 제품의 ProductCode GUID를 포함할 출력 버퍼입니다. 버퍼는 GUID를 보유할 수 있을 만큼 커야 합니다. 이 매개 변수는 NULL일 수 있습니다.

[out, optional] pdwTargetProductContext

열거 중인 패치의 컨텍스트를 반환합니다. 출력 값은 MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED 또는 MSIINSTALLCONTEXT_MACHINE 수 있습니다. 이 매개 변수는 NULL일 수 있습니다.

[out, optional] szTargetUserSid

이 패치가 있는 계정의 문자열 SID를 수신하는 출력 버퍼 instance. 이 버퍼는 컴퓨터별 컨텍스트에 대한 빈 문자열을 반환합니다.

이 버퍼는 SID를 포함할 수 있을 만큼 커야 합니다. 버퍼가 너무 작으면 함수는 ERROR_MORE_DATA 반환하고 *pcchTargetUserSid 를 종료 NULL 문자를 포함하지 않고 값의 TCHAR 수로 설정합니다.

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

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

[in, out, optional] pcchTargetUserSid

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

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

반환 값

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

반환 코드 설명
ERROR_ACCESS_DENIED
권한이 부족한 리소스에 액세스하려고 하면 함수가 실패합니다.
ERROR_BAD_CONFIGURATION
구성 데이터가 손상되었습니다.
ERROR_INVALID_PARAMETER
잘못된 매개 변수가 함수에 전달됩니다.
ERROR_NO_MORE_ITEMS
더 이상 열거할 패치가 없습니다.
ERROR_SUCCESS
패치가 성공적으로 열거되었습니다.
ERROR_UNKNOWN_PRODUCT
szProduct에서 지정하는 제품은 지정된 컨텍스트에서 컴퓨터에 설치되지 않습니다.
ERROR_MORE_DATA
pcchTargetUserSid가 SID를 복사하는 데 필요한 것보다 작은 버퍼 크기를 가리키는 경우 반환됩니다. 이 경우 사용자는 버퍼를 수정하고 동일한 인덱스 값에 대해 MsiEnumPatchesEx 를 다시 호출할 수 있습니다.

설명

비관리자는 표시 유형 내에서만 패치를 열거할 수 있습니다. 관리자는 다른 사용자 컨텍스트에 대한 패치를 열거할 수 있습니다.

참고

msi.h 헤더는 MSiEnumPatchesEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 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

추가 정보

설치 컨텍스트

MsiSourceListAddSourceEx

Windows Installer 2.0 이하에서 지원되지 않음

ProductCode