PWINDBG_IOCTL_ROUTINE (Ioctl) 函式會執行各種不同的作業。 其大部分功能都反映了 wdbgexts.h 中其他函式的功能。
語法
PWINDBG_IOCTL_ROUTINE PwindbgIoctlRoutine;
ULONG PwindbgIoctlRoutine(
USHORT IoctlType,
PVOID lpvData,
ULONG cbSize
)
{...}
參數
IoctlType
指定要執行的 Ioctl 作業。 如需可能 IoctlType 值的清單,請參閱一節。
lpvData
指向數據結構的位址。 所需的結構類型取決於 IoctlType的值。
cbSize
指定 lpvData 指向的結構大小。
傳回值
傳回值的意義取決於IoctlType 。 如需傳回值的意義,請參閱對應 Ioctl 作業的頁面。
言論
Ioctl 函式是 WdbgExts 延伸模組所提供之許多功能的進入點。 wdbgexts.h 中的許多其他函式只是呼叫 Ioctl的包裝函式。
下表列出可能 IoctlType 值。 如果 IoctlType 對應至另一個函式,則會提供該函式;否則,會提供描述 Ioctl 作業的頁面連結。
| IoctlType 常數 | 對等函式 | 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 |
請參閱。 | |
| 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 |
IG_LOWMEM_CHECK Ioctl 作業會在記憶體不足 4 GB 時尋找記憶體損毀。
此 Ioctl 作業不會採用任何參數,lpvData 和 cbSizeOfContext 參數應該分別設定為 NULL 和零。
傳回值
如果找不到損毀的記憶體,則傳回值會 TRUE;否則,它會 FALSE。這項作業只能在內核模式偵錯中使用,而且只有在使用 /nolowmem 選項啟動核心時才有用。
當核心以 /nolowmem 選項啟動時,核心、驅動程式、作系統和應用程式會以超過 4 GB 的記憶體載入,而低 4 GB 的記憶體會填入唯一模式。 IG_LOWMEM_CHECK Ioctl 作業會檢查此模式是否有損毀。
這可用來確認驅動程式在使用長度大於32位的實體位址時正常運作。 請參閱 Windows 驅動程式套件中的 實體位址延伸模組 (PAE)、/pae和 /nolowmem。
要求
| 要求 | 價值 |
|---|---|
| 目標平臺 | 桌面 |
| 標頭 | wdbgexts.h (include Wdbgexts.h, Dbgeng.h) |