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


структура DBGKD_GET_VERSION64 (wdbgexts.h)

Операция IG_GET_KERNEL_VERSION Ioctl получает сведения, связанные с версией операционной системы целевого объекта. При вызове Ioctl с IoctlType задано значение IG_GET_KERNEL_VERSION, IpvData должен содержать экземпляр структуры DBGKD_GET_VERSION64.

Синтаксис

typedef struct _DBGKD_GET_VERSION64 {
  USHORT  MajorVersion;
  USHORT  MinorVersion;
  UCHAR   ProtocolVersion;
  UCHAR   KdSecondaryVersion;
  USHORT  Flags;
  USHORT  MachineType;
  UCHAR   MaxPacketType;
  UCHAR   MaxStateChange;
  UCHAR   MaxManipulate;
  UCHAR   Simulation;
  USHORT  Unused[1];
  ULONG64 KernBase;
  ULONG64 PsLoadedModuleList;
  ULONG64 DebuggerDataList;
} DBGKD_GET_VERSION64, *PDBGKD_GET_VERSION64;

Члены

MajorVersion

Получает 0xF, если операционная система целевого объекта является бесплатной сборкой, и 0xC, если это проверенная сборка.

MinorVersion

Получает номер сборки для операционной системы целевого объекта.

ProtocolVersion

Получает версию протокола отладчика, который используется для обмена данными между отладчиком и целевым объектом.

KdSecondaryVersion

Получает дополнительный номер версии, используемый для отличия старых устаревших контекстов.

Flags

Получает набор битовых флагов для текущего сеанса отладки. Могут присутствовать следующие флаги.

Флаг Значение, когда задано
DBGKD_VERS_FLAG_MP Целевое ядро было скомпилировано с поддержкой нескольких процессоров.
DBGKD_VERS_FLAG_DATA Допустимый список DebuggerDataList.
DBGKD_VERS_FLAG_PTR64 Целевой объект использует 64-разрядные указатели.
DBGKD_VERS_FLAG_NOMM Кэш памяти отладчика активен. Если это не задано, отладчик преобразует все виртуальные адреса в физический адрес перед доступом к памяти целевого объекта.
DBGKD_VERS_FLAG_HSS Целевой объект поддерживает этапы аппаратного обеспечения.
DBGKD_VERS_FLAG_PARTITIONS Существуют несколько секций операционной системы.

MachineType

Получает тип процессора целевого объекта. Возможные типы процессоров перечислены в следующей таблице.

Ценность Процессор
IMAGE_FILE_MACHINE_I386 Архитектура x86
IMAGE_FILE_MACHINE_ARM Архитектура ARM
IMAGE_FILE_MACHINE_IA64 Архитектура Intel Itanium
IMAGE_FILE_MACHINE_AMD64 Архитектура x64
IMAGE_FILE_MACHINE_EBC Архитектура кода байтов EFI

MaxPacketType

Получает один плюс наибольшее число для типа пакета отладчика, распознанного целевым объектом.

MaxStateChange

Получает одно плюс наибольшее число для изменения состояния, созданного целевым объектом.

MaxManipulate

Получает еще одно, что наибольшее число, распознаемое целевым объектом, для команды для управления целевым объектом.

Simulation

Получает указание, находится ли целевой объект в имитированном выполнении. Возможные значения перечислены в следующей таблице.

Ценность Процессор
DBGKD_SIMULATION_NONE Имитация не используется.
DBGKD_SIMULATION_EXDI Используется имитация EXDI.

Unused[1]

Неиспользованный.

KernBase

Получает базовый адрес образа ядра.

PsLoadedModuleList

Получает значение переменной ядра PsLoadedModuleList.

DebuggerDataList

Получает значение переменной ядра KdDebuggerDataBlock. Это указатель на структуру KDDEBUGGER_DATA64 или KDDEBUGGER_DATA32 структуру. Используйте функцию GetDebuggerData для получения этой структуры.

Замечания

Параметры для операции IG_GET_KERNEL_VERSION Ioctl являются членами структуры DBGKD_GET_VERSION64.

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

Требования

Требование Ценность
заголовка wdbgexts.h (include Wdbgexts.h, Dbgeng.h)

См. также

GetDebuggerData

Ioctl