Fungsi MsiGetFileSignatureInformationA (msi.h)
Fungsi MsiGetFileSignatureInformation mengambil jalur ke file yang telah ditandatangani secara digital dan mengembalikan sertifikat dan hash penanda tangan file. MsiGetFileSignatureInformation dapat dipanggil untuk mendapatkan sertifikat penanda tangan dan hash yang diperlukan untuk mengisi tabel MsiDigitalCertificate, MsiPatchCertificate, dan MsiDigitalSignature .
Pemasang Windows 3.0 dan yang lebih baru: Dimulai dengan Pemasang Windows 3.0, Pemasang Windows dapat memverifikasi tanda tangan digital patch (file .msp) dengan menggunakan tabel MsiPatchCertificate dan MsiDigitalCertificate . Untuk informasi selengkapnya, lihat Panduan penulisan Penginstalan Aman dan Patching Kontrol Akun Pengguna (UAC).
Pemasang Windows 2.0: Tanda tangan digital patch tidak didukung. Pemasang Windows 2.0 menggunakan tanda tangan digital sebagai sarana untuk mendeteksi sumber daya yang rusak, dan hanya dapat memverifikasi tanda tangan digital kabinet eksternal, dan hanya dengan menggunakan tabel MsiDigitalSignature dan MsiDigitalCertificate .
Sintaks
HRESULT MsiGetFileSignatureInformationA(
[in] LPCSTR szSignedObjectPath,
[in] DWORD dwFlags,
[out] PCCERT_CONTEXT *ppcCertContext,
[out] LPBYTE pbHashData,
[in, out] LPDWORD pcbHashData
);
Parameter
[in] szSignedObjectPath
Penunjuk ke string yang dihentikan null yang menentukan jalur lengkap ke file yang berisi tanda tangan digital.
[in] dwFlags
Bendera kasus kesalahan khusus.
[out] ppcCertContext
Konteks sertifikat penanda tangan yang dikembalikan
[out] pbHashData
Buffer hash yang dikembalikan. Parameter ini dapat berupa NULL jika data hash tidak diminta.
[in, out] pcbHashData
Penunjuk ke variabel yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh parameter pbHashData . Parameter ini tidak boleh NULL jika pbHashData bukan NULL. Jika ERROR_MORE_DATA dikembalikan, pbHashData memberikan ukuran buffer yang diperlukan untuk menyimpan data hash. Jika ERROR_SUCCESS dikembalikan, ia memberikan jumlah byte yang ditulis ke buffer hash. Parameter pcbHashData diabaikan jika pbHashData adalah NULL.
Mengembalikan nilai
Nilai | Makna |
---|---|
|
Penyelesaian berhasil. |
|
Parameter tidak valid ditentukan. |
|
WinVerifyTrust tidak tersedia di sistem. MsiGetFileSignatureInformation memerlukan keberadaan file Wintrust.dll pada sistem. |
|
Buffer terlalu kecil untuk menyimpan data yang diminta. Jika ERROR_MORE_DATA dikembalikan, pcbHashData memberikan ukuran buffer yang diperlukan untuk menyimpan data hash. |
|
File tidak ditandatangani |
|
Hash file saat ini tidak valid sesuai dengan hash yang disimpan dalam tanda tangan digital file. |
|
Sertifikat penanda tangan file telah dicabut. Tanda tangan digital file disusupi. |
|
Subjek gagal dalam tindakan verifikasi yang ditentukan. Sebagian besar penyedia kepercayaan mengembalikan kode kesalahan yang lebih rinci yang menjelaskan alasan kegagalan tersebut. |
|
Penyedia kepercayaan tidak dikenal pada sistem ini. |
|
Penyedia kepercayaan tidak mendukung tindakan yang ditentukan. |
|
Penyedia kepercayaan tidak mendukung formulir yang ditentukan untuk subjek. |
MsiGetFileSignatureInformation juga mengembalikan semua nilai kesalahan Win32 yang dipetakan ke jenis data HRESULT yang setara dengan HRESULT_FROM_WIN32.
Keterangan
Saat hanya meminta konteks sertifikat, hash yang tidak valid dalam tanda tangan digital tidak menyebabkan MsiGetFileSignatureInformation mengembalikan kesalahan fatal. Untuk mengembalikan kesalahan fatal untuk hash yang tidak valid, atur bendera MSI_INVALID_HASH_IS_FATAL di parameter dwFlags .
Konteks sertifikat dan informasi hash diekstrak dari file dengan panggilan ke WinVerifyTrust. Parameter ppcCertContext adalah duplikat konteks sertifikat penanda tangan dari tanda tangan. Pemanggil bertanggung jawab untuk memanggil CertFreeCertificateContext untuk membebaskan konteks sertifikat setelah selesai.
Perhatikan bahwa MsiGetFileSignatureInformation memerlukan keberadaan file Wintrust.dll pada sistem.
Catatan
Header msi.h mendefinisikan MsiGetFileSignatureInformation sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Installer 5.0 di Windows Server 2012, Windows 8, Windows Server 2008 R2 atau Windows 7. Windows Installer 4.0 atau Windows Installer 4.5 di Windows Server 2008 atau Windows Vista. Pemasang Windows pada Windows Server 2003 atau Windows XP. Lihat Persyaratan Run-Time Penginstal Windows untuk informasi tentang paket layanan Windows minimum yang diperlukan oleh versi Pemasang Windows. |
Target Platform | Windows |
Header | msi.h |
Pustaka | Msi.lib |
DLL | Msi.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk