Bagikan melalui


Fungsi MiniDumpWriteDump (minidumpapiset.h)

Menulis informasi minidump mode pengguna ke file yang ditentukan.

Sintaks

BOOL MiniDumpWriteDump(
  [in] HANDLE                            hProcess,
  [in] DWORD                             ProcessId,
  [in] HANDLE                            hFile,
  [in] MINIDUMP_TYPE                     DumpType,
  [in] PMINIDUMP_EXCEPTION_INFORMATION   ExceptionParam,
  [in] PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
  [in] PMINIDUMP_CALLBACK_INFORMATION    CallbackParam
);

Parameter

[in] hProcess

Handel untuk proses yang informasinya akan dihasilkan.

Handel ini harus memiliki akses PROCESS_QUERY_INFORMATION dan PROCESS_VM_READ ke proses. Jika menangani informasi akan dikumpulkan, akses PROCESS_DUP_HANDLE juga diperlukan. Untuk informasi selengkapnya, lihat Keamanan Proses dan Hak Akses. Pemanggil juga harus bisa mendapatkan akses THREAD_ALL_ACCESS ke utas dalam prosesnya. Untuk informasi selengkapnya, lihat Keamanan Utas dan Hak Akses.

[in] ProcessId

Pengidentifikasi proses yang informasinya akan dihasilkan.

[in] hFile

Handel ke file tempat informasi akan ditulis.

[in] DumpType

Jenis informasi yang akan dihasilkan. Parameter ini bisa menjadi satu atau beberapa nilai dari enumerasi MINIDUMP_TYPE .

[in] ExceptionParam

Penunjuk ke struktur MINIDUMP_EXCEPTION_INFORMATION yang menjelaskan pengecualian klien yang menyebabkan minidump dihasilkan. Jika nilai parameter ini adalah NULL, tidak ada informasi pengecualian yang disertakan dalam file minidump.

[in] UserStreamParam

Penunjuk ke struktur MINIDUMP_USER_STREAM_INFORMATION . Jika nilai parameter ini ADALAH NULL, tidak ada informasi yang ditentukan pengguna yang disertakan dalam file minidump.

[in] CallbackParam

Penunjuk ke struktur MINIDUMP_CALLBACK_INFORMATION yang menentukan rutinitas panggilan balik yaitu menerima informasi minidump yang diperluas. Jika nilai parameter ini ADALAH NULL, tidak ada panggilan balik yang dilakukan.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE; jika tidak, nilai yang dikembalikan adalah FALSE. Untuk mengambil informasi kesalahan yang diperluas, panggil GetLastError. Perhatikan bahwa kesalahan terakhir akan menjadi nilai HRESULT .

Jika operasi dibatalkan, kode kesalahan terakhir adalah HRESULT_FROM_WIN32(ERROR_CANCELLED).

Keterangan

Fungsi MiniDumpCallback menerima informasi minidump yang diperluas dari MiniDumpWriteDump. Ini juga menyediakan cara bagi pemanggil untuk menentukan granularitas informasi yang ditulis ke file minidump, karena fungsi panggilan balik dapat memfilter informasi default.

MiniDumpWriteDump harus dipanggil dari proses terpisah jika memungkinkan, daripada dari dalam proses target yang dicadangkan. Ini terutama berlaku ketika proses target sudah tidak stabil. Misalnya, jika hanya crash. Kebuntuan loader adalah salah satu dari banyak potensi efek samping dari panggilan MiniDumpWriteDump dari dalam proses target. Jika memanggil MiniDumpWriteDump dari proses terpisah tidak dimungkinkan, maka disarankan untuk memiliki utas khusus yang tujuan utamanya adalah memanggil MiniDumpWriteDump. Ini dapat membantu memastikan bahwa tumpukan belum habis sebelum panggilan ke MiniDumpWriteDump.

MiniDumpWriteDump mungkin tidak menghasilkan jejak tumpukan yang valid untuk utas panggilan. Untuk mengatasi masalah ini, Anda harus mengambil status utas panggilan sebelum memanggil MiniDumpWriteDump dan menggunakannya sebagai parameter ExceptionParam . Salah satu cara untuk melakukan ini adalah dengan memaksa pengecualian di dalam blok __try/__except dan menggunakan informasi EXCEPTION_POINTERS yang disediakan oleh GetExceptionInformation. Atau, Anda dapat memanggil fungsi dari utas pekerja baru dan memfilter utas pekerja ini dari cadangan.

Semua fungsi DbgHelp, 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.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header minidumpapiset.h (termasuk Dbghelp.h)
Pustaka Dbghelp.lib
DLL Dbghelp.dll; Dbgcore.dll
Redistribusi DbgHelp.dll dan Dbgcore.dll

Lihat juga

Fungsi DbgHelp

MINIDUMP_CALLBACK_INFORMATION

MINIDUMP_EXCEPTION_INFORMATION

MINIDUMP_USER_STREAM_INFORMATION

MiniDumpCallback

MiniDumpReadDumpStream