MsiDetermineApplicablePatchesA 함수(msi.h)

MsiDetermineApplicablePatches 함수는 패치 파일, XML 파일 및 XML Blob 집합을 사용하고 지정된 Windows Installer 패키지 및 시퀀스에 적용되는 패치를 결정합니다. 이 함수는 대체되거나 사용되지 않는 패치를 설명할 수 있습니다. 이 함수는 집합에 지정되지 않은 시스템에 설치된 제품이나 패치를 고려하지 않습니다.

구문

UINT MsiDetermineApplicablePatchesA(
  [in] LPCSTR                 szProductPackagePath,
  [in] DWORD                  cPatchInfo,
  [in] PMSIPATCHSEQUENCEINFOA pPatchInfo
);

매개 변수

[in] szProductPackagePath

.msi 파일의 전체 경로입니다. 함수는 이 패키지 및 시퀀스에 적용할 수 있는 패치를 결정합니다.

[in] cPatchInfo

배열의 패치 수입니다. 0보다 커야 합니다.

[in] pPatchInfo

MSIPATCHSEQUENCEINFO 구조체의 배열에 대한 포인터입니다.

반환 값

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

의미
ERROR_FUNCTION_FAILED
함수가 다른 오류 코드에서 다루지 않는 방식으로 실패했습니다.
ERROR_INVALID_PARAMETER
인수가 잘못되었습니다.
ERROR_PATCH_NO_SEQUENCE
패치 세트에 대한 유효한 시퀀스를 찾을 수 없습니다.
ERROR_SUCCESS
패치가 성공적으로 정렬되었습니다.
ERROR_FILE_NOT_FOUND
.msi 파일을 찾을 수 없습니다.
ERROR_PATH_NOT_FOUND
.msi 파일의 경로를 찾을 수 없습니다.
ERROR_INVALID_PATCH_XML
XML 패치 데이터가 잘못되었습니다.
ERROR_INSTALL_PACKAGE_OPEN_FAILED
경로에서 참조하는 설치 패키지를 열 수 없습니다.
ERROR_CALL_NOT_IMPLEMENTED
이 오류는 사용자 지정 작업 에서 함수가 호출되었거나 MSXML 3.0이 설치되지 않은 경우 반환될 수 있습니다.

설명

이 함수가 사용자 지정 작업에서 호출되면 실패하고 ERROR_CALL_NOT_IMPLEMENTED 반환합니다. 함수는 XML을 처리하려면 MSXML 버전 3.0이 필요하며 MSXML 3.0이 설치되어 있지 않으면 ERROR_CALL_NOT_IMPLEMENTED 반환합니다.

MsiDetermineApplicablePatches 함수는 pPatchInfo가 가리키는 각 MSIPATCHSEQUENCEINFO 구조체의 uStatusdwOrder 멤버를 설정합니다. 각 구조에는 특정 패치에 대한 정보가 포함됩니다.

함수가 성공하면 제품에 적용할 수 있는 모든 패치의 MSIPATCHSEQUENCEINFO 구조는 uStatus 가 ERROR_SUCCESS dwOrder 가 0보다 크거나 같으면 반환됩니다. 0보다 크거나 같은 dwOrder 값은 0으로 시작하는 패치에 가장 적합한 애플리케이션 시퀀스를 나타냅니다.

함수가 성공하면 최상의 패치 시퀀스에서 제외된 패치는 dwOrder가 -1인 MSIPATCHSEQUENCEINFO 구조를 반환합니다. 이러한 경우 ERROR_SUCCESS uStatus 필드는 제품에 대해 사용되지 않거나 대체되는 패치를 나타냅니다. ERROR_PATCH_TARGET_NOT_FOUND uStatus 필드는 제품에 적용할 수 없는 패치를 나타냅니다.

함수가 실패하면 모든 패치에 대한 MSIPATCHSEQUENCEINFO 구조체는 -1과 동일한 dwOrder 를 반환합니다. 이 경우 uStatus 필드에 개별 패치에 대한 자세한 정보가 포함된 오류가 포함될 수 있습니다. 예를 들어 순환 시퀀싱 정보가 있는 패치에 대해 ERROR_PATCH_NO_SEQUENCE 반환됩니다.

참고

msi.h 헤더는 MSiDetermineApplicablePatches를 유니코드 전처리기 상수의 정의에 따라 이 함수의 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 Server 2003 또는 Windows XP의 Windows Installer 3.0 이상. Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer 런타임 요구 사항을 참조하세요.
대상 플랫폼 Windows
헤더 msi.h
라이브러리 Msi.lib
DLL Msi.dll

참고 항목

MsiDeterminePatchSequence

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

ProductCode