Поделиться через


функция обратного вызова 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

Чтение Физическое

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
 

Операция 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)