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

ターゲットによって認識されるデバッガー パケットの種類に対して、1 つを加算した最も大きい数値を受け取ります。

MaxStateChange

ターゲットによって生成された状態変更に対して、1 つを加算した最も大きい数値を受け取ります。

MaxManipulate

ターゲットを操作するコマンドに対して、ターゲットによって認識される最も大きい数値をもう 1 つ受け取ります。

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構造体のメンバーです。

この操作は、カーネル モード デバッグでのみ使用できます。

要件

要件
Header wdbgexts.h (Wdbgexts.h、Dbgeng.h を含む)

こちらもご覧ください

GetDebuggerData

Ioctl