PWINDBG_IOCTL_ROUTINE回调函数 (wdbgexts.h)
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(包括 Wdbgexts.h、Dbgeng.h) |