Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Операция 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) |