функция обратного вызова 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 |
Операция Ioctl IG_LOWMEM_CHECK ищет повреждение памяти при низком размере 4 ГБ памяти.
Эта операция Ioctl не принимает никаких параметров, и для параметров lpvData и cbSizeOfContext следует задать значение NULL и ноль соответственно.
Возвращаемое значение
Если поврежденная память не найдена, возвращается значение TRUE; в противном случае — FALSE.Эта операция доступна только при отладке в режиме ядра и полезна только при запуске ядра с помощью параметра /nolowmem .
При запуске ядра с параметром /nolowmem ядро, драйверы, операционная система и приложения загружаются в память свыше 4 ГБ, а низкие 4 ГБ памяти заполняются уникальным шаблоном. Операция Ioctl IG_LOWMEM_CHECK проверяет этот шаблон на наличие повреждений.
Это можно использовать для проверки правильности работы драйвера при использовании физических адресов длиной более 32 бит. См . раздел Расширение физических адресов (PAE),/pae и /nolowmem в комплекте драйверов Windows.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | wdbgexts.h (включая Wdbgexts.h, Dbgeng.h) |