Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat Anda menulis DLL ekstensi WdbgExts, Anda dapat mengekspor fungsi tertentu:
Anda harus mengekspor fungsi bernama WinDbgExtensionDllInit. Ketika debugger memuat DLL ekstensi Anda, pertama-tama memanggil WinDbgExtensionDllInit dan meneruskan tiga argumen kepadanya.
- Penunjuk ke struktur WINDBG_EXTENSION_APIS64 , yang berisi pointer ke fungsi yang diimplementasikan oleh debugger dan dideklarasikan dalam Wdbgexts.h. Anda harus menyalin seluruh struktur ke variabel global yang Anda buat di DLL Anda.
- Nomor versi utama. Anda harus menyalin nomor versi utama ke variabel global yang Anda buat di DLL Anda.
- Nomor versi yang lebih kecil. Anda harus menyalin nomor versi minor ke variabel global yang Anda buat di DLL Anda.
Misalnya, Anda dapat membuat variabel global bernama ExtensionApis, SavedMajorVersion, dan SavedMinorVersion seperti yang ditunjukkan dalam contoh berikut.
WINDBG_EXTENSION_APIS64 ExtensionApis; USHORT SavedMajorVersion; USHORT SavedMinorVersion; VOID WinDbgExtensionDllInit(PWINDBG_EXTENSION_APIS64 lpExtensionApis, USHORT MajorVersion, USHORT MinorVersion) { ExtensionApis = *lpExtensionApis; SavedMajorVersion = MajorVersion; SavedMinorVersion = MinorVersion; ... }Anda harus mengekspor fungsi yang disebut ExtensionApiVersion. Debugger memanggil fungsi ini dan mengharapkan kembali penunjuk ke struktur EXT_API_VERSION yang berisi nomor versi DLL ekstensi. Debugger menggunakan nomor versi ini saat menjalankan perintah seperti .chain dan versi yang menampilkan nomor versi ekstensi.
Anda dapat secara opsional mengekspor fungsi yang disebut CheckVersion. Debugger memanggil rutinitas ini setiap kali Anda menggunakan perintah ekstensi. Anda dapat menggunakan ini untuk mencetak peringatan ketidakcocokan versi ketika DLL Anda memiliki versi yang sedikit berbeda dari debugger, tetapi tidak cukup berbeda untuk mencegahnya berjalan.