структура 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) |