DBGKD_GET_VERSION64 structure (wdbgexts.h)
The IG_GET_KERNEL_VERSION Ioctl operation receives information related to the operating system version of the target. When calling Ioctl with IoctlType set to IG_GET_KERNEL_VERSION, IpvData should contain an instance of the DBGKD_GET_VERSION64 structure.
Syntax
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;
Members
MajorVersion
Receives 0xF if the target's operating system is a free build, and 0xC if it is a checked build.
MinorVersion
Receives the build number for the target's operating system.
ProtocolVersion
Receives the version of the debugger protocol that is used to communicate between the debugger and the target.
KdSecondaryVersion
Receives a secondary version number that is used to distinguish among older, deprecated contexts.
Flags
Receives a set of bit flags for the current debugging session. The following flags can be present.
Flag | Meaning when set |
---|---|
DBGKD_VERS_FLAG_MP | The target kernel was compiled with support for multiple processors. |
DBGKD_VERS_FLAG_DATA | The list DebuggerDataList is valid. |
DBGKD_VERS_FLAG_PTR64 | The target uses 64-bit pointers. |
DBGKD_VERS_FLAG_NOMM | The debugger's memory cache is active. If this is not set, the debugger will convert all virtual addresses into physical address before accessing the target's memory. |
DBGKD_VERS_FLAG_HSS | The target supports hardware stepping. |
DBGKD_VERS_FLAG_PARTITIONS | Multiple operating system partitions exist. |
MachineType
Receives the type of the target's processor. Possible processor types are listed in the following table.
Value | Processor |
---|---|
IMAGE_FILE_MACHINE_I386 | x86 architecture |
IMAGE_FILE_MACHINE_ARM | ARM architecture |
IMAGE_FILE_MACHINE_IA64 | Intel Itanium architecture |
IMAGE_FILE_MACHINE_AMD64 | x64 architecture |
IMAGE_FILE_MACHINE_EBC | EFI byte code architecture |
MaxPacketType
Receives one plus the highest number for a debugger packet type recognized by the target.
MaxStateChange
Receives one plus the highest number for a state change generated by the target.
MaxManipulate
Receives one more that the highest number, recognized by the target, for a command to manipulate the target.
Simulation
Receives an indication if the target is in simulated execution. Possible values are listed in the following table.
Value | Processor |
---|---|
DBGKD_SIMULATION_NONE | No simulation is used. |
DBGKD_SIMULATION_EXDI | EXDI simulation is used. |
Unused[1]
Unused.
KernBase
Receives the base address of the kernel image.
PsLoadedModuleList
Receives the value of the kernel variable PsLoadedModuleList.
DebuggerDataList
Receives the value of the kernel variable KdDebuggerDataBlock. This a pointer to either a KDDEBUGGER_DATA64 structure or a KDDEBUGGER_DATA32 structure. Use the function GetDebuggerData to fetch this structure.
Remarks
The parameters for the IG_GET_KERNEL_VERSION Ioctl operation are the members of the DBGKD_GET_VERSION64 structure.
This operation is only available in kernel-mode debugging.
Requirements
Requirement | Value |
---|---|
Header | wdbgexts.h (include Wdbgexts.h, Dbgeng.h) |