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) |