DBGKD_GET_VERSION64結構 (wdbgexts.h)

IG_GET_KERNEL_VERSION Ioctl 作業會接收與目標操作系統版本相關的資訊。 將 IoctlType 設定為 IG_GET_KERNEL_VERSION呼叫 Ioctl 時, 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 (包含 Wdbgexts.h、Dbgeng.h)

另請參閱

GetDebuggerData

Ioctl