PIMAGEHLP_STATUS_ROUTINE fungsi panggilan balik (imagehlp.h)
Fungsi panggilan balik yang ditentukan aplikasi yang digunakan dengan fungsi BindImageEx . Rutinitas status dipanggil selama proses pengikatan gambar.
Jenis PIMAGEHLP_STATUS_ROUTINE menentukan penunjuk ke fungsi panggilan balik ini. StatusRoutine adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi.
Sintaks
PIMAGEHLP_STATUS_ROUTINE PimagehlpStatusRoutine;
BOOL PimagehlpStatusRoutine(
[in] IMAGEHLP_STATUS_REASON Reason,
[in] PCSTR ImageName,
[in] PCSTR DllName,
[in] ULONG_PTR Va,
[in] ULONG_PTR Parameter
)
{...}
Parameter
[in] Reason
Status operasi ikatan saat ini. Parameter ini bisa menjadi salah satu nilai berikut.
[in] ImageName
Nama file yang akan diikat. Nilai ini bisa berupa nama file, jalur parsial, atau jalur lengkap.
[in] DllName
Nama DLL.
[in] Va
Alamat virtual yang dihitung.
[in] Parameter
Informasi status tambahan apa pun. Nilai ini tergantung pada nilai parameter Alasan . Untuk informasi selengkapnya, lihat fragmen kode di bagian Keterangan berikut.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE.
Jika fungsi gagal, nilai yang dikembalikan adalah FALSE. Untuk mengambil informasi kesalahan yang diperluas, panggil GetLastError.
Keterangan
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.
Fragmen kode berikut menjelaskan cara menggunakan nilai Va saat statusnya adalah BindImageComplete.
case BindImageComplete:
if (fVerbose) {
fprintf(stderr, "BIND: Details of binding %s\n", ImageName );
NewImports = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)Va;
NewImport = NewImports;
while (NewImport->OffsetModuleName) {
fprintf( stderr, " Import from %s [%x]",
(LPSTR)NewImports + NewImport->OffsetModuleName,
NewImport->TimeDateStamp
);
if (NewImport->NumberOfModuleForwarderRefs != 0) {
fprintf( stderr, " with %u forwarders", NewImport->
NumberOfModuleForwarderRefs );
}
fprintf( stderr, "\n" );
NewForwarder = (PIMAGE_BOUND_FORWARDER_REF)(NewImport+1);
for (i=0; i<NewImport->NumberOfModuleForwarderRefs; i++)
{
fprintf( stderr, " Forward to %s [%x]\n",
(LPSTR)NewImports + NewForwarder->OffsetModuleName,
NewForwarder->TimeDateStamp);
NewForwarder += 1;
}
NewImport = (PIMAGE_BOUND_IMPORT_DESCRIPTOR)NewForwarder;
}
}
break;
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 |
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