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

GetKdContext

IG_READ_CONTROL_SPACE

ReadControlSpace

ReadControlSpace64

IG_WRITE_CONTROL_SPACE WriteControlSpace
IG_READ_IO_SPACE

ReadIoSpace

ReadIoSpace64

IG_WRITE_IO_SPACE

WriteIoSpace

WriteIoSpace64

IG_READ_PHYSICAL

ReadPhysical

IG_WRITE_PHYSICAL

WritePhysical

IG_READ_IO_SPACE_EX

ReadIoSpaceEx

ReadIoSpaceEx64

IG_WRITE_IO_SPACE_EX

WriteIoSpaceEx

WriteIoSpaceEx64

IG_SET_THREAD

SetThreadForOperation

SetThreadForOperation64

IG_READ_MSR

ReadMsr

IG_WRITE_MSR

WriteMsr

IG_GET_DEBUGGER_DATA

GetDebuggerData

IG_GET_KERNEL_VERSION

DBGKD_GET_VERSION64

IG_RELOAD_SYMBOLS ReloadSymbols
IG_GET_SET_SYMPATH

GetSetSympath

IG_GET_EXCEPTION_RECORD
IG_IS_PTR64 IsPtr64

IG_GET_BUS_DATA

GETSETBUSDATA

IG_SET_BUS_DATA

GETSETBUSDATA

IG_DUMP_SYMBOL_INFO

SYM_DUMP_PARAM

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

POINTER_SEARCH_PHYSICAL

IG_GET_THREAD_OS_INFO

WDBGEXTS_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 操作不采用任何参数, lpvDatacbSizeOfContext 参数应分别设置为 NULL 和零。

返回值

如果未找到损坏的内存,则返回值为 TRUE;否则为 FALSE

此操作仅在内核模式调试中可用,仅在使用 /nolowmem 选项启动内核时才有用。

使用 /nolowmem 选项启动内核时,内核、驱动程序、操作系统和应用程序将加载到超过 4 GB 的内存中,而低的 4 GB 内存则用唯一模式填充。 IG_LOWMEM_CHECK Ioctl 操作会检查此模式是否损坏。

这可用于验证在使用长度大于 32 位的物理地址时驱动程序是否正常工作。 请参阅 Windows 驱动程序工具包 中的物理地址扩展 (PAE) /pae/nolowmem

要求

要求
目标平台 桌面
标头 wdbgexts.h (包括 Wdbgexts.h、Dbgeng.h)