Bagikan melalui


Fungsi MapFileAndCheckSumA (imagehlp.h)

Menghitung checksum file yang ditentukan.

Sintaks

DWORD IMAGEAPI MapFileAndCheckSumA(
  [in]  PCSTR  Filename,
  [out] PDWORD HeaderSum,
  [out] PDWORD CheckSum
);

Parameter

[in] Filename

Nama file file tempat checksum akan dihitung.

[out] HeaderSum

Penunjuk ke variabel yang menerima checksum asli dari file gambar, atau nol jika ada kesalahan.

[out] CheckSum

Penunjuk ke variabel yang menerima checksum komputasi.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah CHECKSUM_SUCCESS (0).

Jika fungsi gagal, nilai yang dikembalikan adalah salah satu dari berikut ini.

Mengembalikan kode/nilai Deskripsi
CHECKSUM_MAP_FAILURE
2
Tidak dapat memetakan file.
CHECKSUM_MAPVIEW_FAILURE
3
Tidak dapat memetakan tampilan file.
CHECKSUM_OPEN_FAILURE
1
Tidak dapat membuka file.
CHECKSUM_UNICODE_FAILURE
4
Tidak dapat mengonversi nama file ke Unicode.

Keterangan

Fungsi MapFileAndCheckSum menghitung checksum baru untuk file dan mengembalikannya dalam parameter CheckSum . Fungsi ini digunakan oleh aplikasi apa pun yang membuat atau memodifikasi gambar yang dapat dieksekusi. Checksum diperlukan untuk driver mode kernel dan beberapa DLL sistem. Linker menghitung checksum asli pada waktu tautan, jika Anda menggunakan sakelar linker yang sesuai. Untuk detail selengkapnya, lihat dokumentasi linker Anda.

Disarankan agar semua gambar memiliki checksum yang valid. Pemanggil bertanggung jawab untuk menempatkan checksum yang baru dihitung ke dalam gambar yang dipetakan dan memperbarui gambar pada disk file.

Meneruskan parameter Filename yang tidak menunjuk ke gambar yang dapat dieksekusi yang valid akan menghasilkan hasil yang tidak dapat diprediksi. Setiap pengguna fungsi ini didorong untuk memastikan bahwa gambar yang dapat dieksekusi yang valid sedang diteruskan.

Semua fungsi ImageHlp, seperti ini, adalah utas tunggal. Oleh karena itu, panggilan dari lebih dari satu utas ke fungsi ini kemungkinan akan mengakibatkan perilaku tak terduga atau kerusakan memori. Untuk menghindari hal ini, Anda harus menyinkronkan semua panggilan bersamaan dari lebih dari satu utas ke fungsi ini.

Catatan Implementasi Unicode dari fungsi ini memanggil implementasi ASCII dan sebagai hasilnya, fungsi dapat gagal jika codepage tidak mendukung karakter di jalur. Misalnya, jika Anda melewati jalur file Unicode non-Inggris, dan halaman kode defaultnya adalah bahasa Inggris, karakter lebar non-Inggris yang tidak dikenal dikonversi menjadi "??" dan file tidak dapat dibuka (fungsi mengembalikan CHECKSUM_OPEN_FAILURE).
 

Catatan

Header imagehlp.h mendefinisikan MapFileAndCheckSum 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 XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header imagehlp.h
Pustaka Imagehlp.lib
DLL Imagehlp.dll

Lihat juga

CheckSumMappedFile

Fungsi ImageHlp