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

Операция Ioctl IG_GET_KERNEL_VERSION получает сведения, связанные с версией операционной системы целевого объекта. При вызове 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

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

Flag Значение при установке
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 для получения этой структуры.

Комментарии

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

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

Требования

Требование Значение
Заголовок wdbgexts.h (включая Wdbgexts.h, Dbgeng.h)

См. также раздел

GetDebuggerData

Ioctl