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 を含む) |