PWINDBG_IOCTL_ROUTINE fungsi panggilan balik (wdbgexts.h)
Fungsi PWINDBG_IOCTL_ROUTINE (Ioctl) melakukan berbagai operasi yang berbeda. Sebagian besar fungsinya mencerminkan fungsionalitas fungsi lain dalam wdbgexts.h.
Sintaks
PWINDBG_IOCTL_ROUTINE PwindbgIoctlRoutine;
ULONG PwindbgIoctlRoutine(
USHORT IoctlType,
PVOID lpvData,
ULONG cbSize
)
{...}
Parameter
IoctlType
Menentukan operasi Ioctl mana yang akan dilakukan. Untuk daftar kemungkinan nilai IoctlType , lihat bagian "Keterangan".
lpvData
Menunjuk ke alamat struktur data. Jenis struktur yang diperlukan tergantung pada nilai IoctlType.
cbSize
Menentukan ukuran struktur yang dituju lpvData .
Nilai kembali
Arti nilai yang dikembalikan tergantung pada IoctlType. Lihat halaman untuk operasi Ioctl terkait untuk arti dari nilai yang dikembalikan.
Keterangan
Fungsi Ioctl adalah titik masuk untuk banyak fungsi yang disediakan untuk ekstensi WdbgExts. Banyak fungsi lain dalam wdbgexts.h hanyalah pembungkus untuk panggilan ke Ioctl.
Tabel berikut ini mencantumkan kemungkinan nilai IoctlType . Jika IoctlType sesuai dengan fungsi lain, fungsi tersebut disediakan; jika tidak, tautan ke halaman yang menjelaskan operasi Ioctl disediakan.
Konstanta IoctlType | Fungsi yang setara | Struktur lpData |
---|---|---|
IG_KD_CONTEXT | ||
IG_READ_CONTROL_SPACE |
ReadControlSpace64 |
|
IG_WRITE_CONTROL_SPACE | WriteControlSpace | |
IG_READ_IO_SPACE |
ReadIoSpace64 |
|
IG_WRITE_IO_SPACE |
WriteIoSpace64 |
|
IG_READ_PHYSICAL | ||
IG_WRITE_PHYSICAL | ||
IG_READ_IO_SPACE_EX |
ReadIoSpaceEx64 |
|
IG_WRITE_IO_SPACE_EX |
WriteIoSpaceEx64 |
|
IG_SET_THREAD |
SetThreadForOperation64 |
|
IG_READ_MSR | ||
IG_WRITE_MSR | ||
IG_GET_DEBUGGER_DATA | ||
IG_GET_KERNEL_VERSION |
||
IG_RELOAD_SYMBOLS | ReloadSymbols | |
IG_GET_SET_SYMPATH | ||
IG_GET_EXCEPTION_RECORD | ||
IG_IS_PTR64 | IsPtr64 | |
IG_GET_BUS_DATA |
||
IG_SET_BUS_DATA |
||
IG_LOWMEM_CHECK |
Lihat Keterangan. | |
IG_SEARCH_MEMORY | SearchMemory | |
IG_GET_CURRENT_THREAD | GetCurrentThreadAddr | |
IG_GET_CURRENT_PROCESS | GetCurrentProcessAddr | |
IG_GET_TYPE_SIZE | GetTypeSize | |
IG_GET_CURRENT_PROCESS_HANDLE | GetCurrentProcessHandle | |
IG_GET_INPUT_LINE | GetInputLine | |
IG_GET_EXPRESSION_EX | GetExpressionEx | |
IG_TRANSLATE_VIRTUAL_TO_PHYSICAL | TranslateVirtualToPhysical | |
IG_GET_CACHE_SIZE | GetDebuggerCacheSize | |
IG_READ_PHYSICAL_WITH_FLAGS | ReadPhysicalWithFlags | |
IG_WRITE_PHYSICAL_WITH_FLAGS | WritePhysicalWithFlags | |
IG_POINTER_SEARCH_PHYSICAL |
||
IG_GET_THREAD_OS_INFO |
||
IG_GET_CLR_DATA_INTERFACE | ||
IG_GET_TEB_ADDRESS | GetTebAddress | |
IG_GET_PEB_ADDRESS | GetPebAddress |
Operasi Ioctl IG_LOWMEM_CHECK mencari kerusakan memori dalam memori 4 GB rendah.
Operasi Ioctl ini tidak mengambil parameter apa pun dan parameter lpvData dan cbSizeOfContext masing-masing harus diatur ke NULL dan nol.
Nilai Yang Dikembalikan
Jika tidak ada memori rusak yang ditemukan, nilai yang dikembalikan adalah TRUE; jika tidak, itu adalah FALSE.Operasi ini hanya tersedia dalam penelusuran kesalahan mode kernel, dan hanya berguna ketika kernel dimulai menggunakan opsi /nolowmem .
Ketika kernel dimulai dengan opsi /nolowmem , kernel, driver, sistem operasi, dan aplikasi dimuat dalam memori di atas 4 GB, sementara memori 4 GB rendah diisi dengan pola unik. Operasi Ioctl IG_LOWMEM_CHECK memeriksa pola ini untuk kerusakan.
Ini dapat digunakan untuk memverifikasi bahwa driver berfungsi dengan benar saat menggunakan alamat fisik yang panjangnya lebih besar dari 32 bit. Lihat Ekstensi Alamat Fisik (PAE), /pae, dan /nolowmem di Windows Driver Kit.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | wdbgexts.h (termasuk Wdbgexts.h, Dbgeng.h) |