MsiGetFileSignatureInformationW 함수(msi.h)
MsiGetFileSignatureInformation 함수는 디지털 서명된 파일의 경로를 가져와 파일의 서명자 인증서 및 해시를 반환합니다.
Windows Installer 2.0: 패치의 디지털 서명은 지원되지 않습니다. Windows Installer 2.0은 손상된 리소스를 검색하는 수단으로 디지털 서명을 사용하며 외부 캐비닛의 디지털 서명만 확인할 수 있으며,
통사론
HRESULT MsiGetFileSignatureInformationW(
[in] LPCWSTR szSignedObjectPath,
[in] DWORD dwFlags,
[out] PCCERT_CONTEXT *ppcCertContext,
[out] LPBYTE pbHashData,
[in, out] LPDWORD pcbHashData
);
매개 변수
[in] szSignedObjectPath
디지털 서명이 포함된 파일의 전체 경로를 지정하는 null로 끝나는 문자열에 대한 포인터입니다.
[in] dwFlags
특수 오류 사례 플래그입니다.
기 | 의미 |
---|---|
|
이 플래그를 설정하지 않고 인증서 컨텍스트만 요청할 때 디지털 서명의 잘못된 해시로 인해 MsiGetFileSignatureInformation 심각한 오류를 반환하지 않습니다.
잘못된 해시에 대한 심각한 오류를 반환하려면 MSI_INVALID_HASH_IS_FATAL 플래그를 설정합니다. |
[out] ppcCertContext
반환된 서명자 인증서 컨텍스트
[out] pbHashData
반환된 해시 버퍼입니다. 해시 데이터가 요청되지 않는 경우 이 매개 변수는 NULL
[in, out] pcbHashData
pbHashData 매개 변수가 가리키는 버퍼의 크기를 바이트 단위로 지정하는 변수에 대한 포인터입니다.
반환 값
값 | 의미 |
---|---|
|
성공적으로 완료되었습니다. |
|
잘못된 매개 변수를 지정했습니다. |
|
WinVerifyTrust 시스템에서 사용할 수 없습니다. MsiGetFileSignatureInformation 시스템에 Wintrust.dll 파일이 있어야 합니다. |
|
버퍼가 너무 작아서 요청된 데이터를 저장할 수 없습니다. ERROR_MORE_DATA 반환되면 pcbHashData |
|
파일이 서명되지 않았습니다. |
|
파일의 디지털 서명에 저장된 해시에 따라 파일의 현재 해시가 유효하지 않습니다. |
|
파일의 서명자 인증서가 해지되었습니다. 파일의 디지털 서명이 손상되었습니다. |
|
주체가 지정된 확인 작업에 실패했습니다. 대부분의 신뢰 공급자는 실패 이유를 설명하는 보다 자세한 오류 코드를 반환합니다. |
|
신뢰 공급자가 이 시스템에서 인식되지 않습니다. |
|
트러스트 공급자는 지정된 작업을 지원하지 않습니다. |
|
신뢰 공급자는 제목에 지정된 양식을 지원하지 않습니다. |
MsiGetFileSignatureInformationHRESULT_FROM_WIN32해당 HRESULT 데이터 형식에 매핑된 모든 Win32 오류 값도 반환합니다.
발언
인증서 컨텍스트만 요청할 때 디지털 서명의 잘못된 해시로 인해 MsiGetFileSignatureInformation 심각한 오류를 반환하지 않습니다. 잘못된 해시에 대한 심각한 오류를 반환하려면 dwFlags 매개 변수에서 MSI_INVALID_HASH_IS_FATAL 플래그를 설정합니다.
인증서 컨텍스트 및 해시 정보는 WinVerifyTrust호출하여 파일에서 추출됩니다. ppcCertContext 매개 변수는 서명자의 서명자 인증서 컨텍스트와 중복됩니다. 완료되면 인증서 컨텍스트를 해제하기 위해 CertFreeCertificateContext 호출하는 것은 호출자의 책임입니다.
msiGetFileSignatureInformation
메모
msi.h 헤더는 MSiGetFileSignatureInformation을 유니코드 전처리기 상수의 정의에 따라 이 함수의 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 Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer Run-Time 요구 사항을 참조하세요. |
대상 플랫폼 | Windows |
헤더 | msi.h |
라이브러리 | Msi.lib |
DLL | Msi.dll |
참고 항목
디지털 서명 및 Windows Installer
msiDigitalCertificate 테이블
msiDigitalSignature 테이블