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


функция обратного вызова 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 Перезагрузить символы
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 ГБ памяти.

Эта операция Ioctl не принимает никаких параметров, а параметры lpvData и cbSizeOfContext должны иметь значение NULL и ноль соответственно.

возвращаемое значение

Если поврежденная память не найдена, возвращаемое значение равно TRUE; в противном случае значение false.

Эта операция доступна только в отладке в режиме ядра и полезна только при запуске ядра с помощью параметра /nolowmem .

При запуске ядра с параметром /nolowmem ядро, драйверы, операционная система и приложения загружаются в памяти выше 4 ГБ, а низкая 4 ГБ памяти заполняется уникальным шаблоном. Операция IG_LOWMEM_CHECK Ioctl проверяет этот шаблон для повреждения.

Это можно использовать для проверки правильности работы драйвера при использовании физических адресов, превышающих 32 бита. См. раздел расширения физического адреса (PAE),/pae и /nolowmem в комплекте драйверов Windows.

Требования

Требование Ценность
целевая платформа Рабочий стол
Заголовок wdbgexts.h (include Wdbgexts.h, Dbgeng.h)