共用方式為


DBGKD_GET_VERSION64結構 (wdbgexts.h)

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)

另請參閱

GetDebuggerData

Ioctl