Freigeben über


DBGKD_GET_VERSION64-Struktur (wdbgexts.h)

Der IG_GET_KERNEL_VERSION Ioctl-Vorgang empfängt Informationen im Zusammenhang mit der Betriebssystemversion des Ziels. Beim Aufrufen von Ioctl, bei dem IoctlType auf IG_GET_KERNEL_VERSION festgelegt ist, sollte IpvData eine instance der DBGKD_GET_VERSION64-Struktur enthalten.

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;

Member

MajorVersion

Empfängt 0xF, wenn das Betriebssystem des Ziels ein kostenloser Build ist, und 0xC, wenn es sich um einen überprüften Build handelt.

MinorVersion

Empfängt die Buildnummer für das Betriebssystem des Ziels.

ProtocolVersion

Empfängt die Version des Debuggerprotokolls, das für die Kommunikation zwischen dem Debugger und dem Ziel verwendet wird.

KdSecondaryVersion

Empfängt eine sekundäre Versionsnummer, die verwendet wird, um ältere, veraltete Kontexte zu unterscheiden.

Flags

Empfängt eine Reihe von Bitflags für die aktuelle Debugsitzung. Die folgenden Flags können vorhanden sein.

Flag Bedeutung bei Festlegung
DBGKD_VERS_FLAG_MP Der Zielkernkern wurde mit Unterstützung für mehrere Prozessoren kompiliert.
DBGKD_VERS_FLAG_DATA Die Liste DebuggerDataList ist gültig.
DBGKD_VERS_FLAG_PTR64 Das Ziel verwendet 64-Bit-Zeiger.
DBGKD_VERS_FLAG_NOMM Der Arbeitsspeichercache des Debuggers ist aktiv. Wenn dies nicht festgelegt ist, konvertiert der Debugger alle virtuellen Adressen in eine physische Adresse, bevor er auf den Arbeitsspeicher des Ziels zugreift.
DBGKD_VERS_FLAG_HSS Das Ziel unterstützt das Hardwareschrittschritt.
DBGKD_VERS_FLAG_PARTITIONS Es sind mehrere Betriebssystempartitionen vorhanden.

MachineType

Empfängt den Typ des Prozessors des Ziels. Mögliche Prozessortypen sind in der folgenden Tabelle aufgeführt.

Wert Prozessor
IMAGE_FILE_MACHINE_I386 x86-Architektur
IMAGE_FILE_MACHINE_ARM ARM-Architektur
IMAGE_FILE_MACHINE_IA64 Intel Itanium-Architektur
IMAGE_FILE_MACHINE_AMD64 x64-Architektur
IMAGE_FILE_MACHINE_EBC EFI-Bytecodearchitektur

MaxPacketType

Empfängt eins plus die höchste Zahl für einen Debuggerpakettyp, der vom Ziel erkannt wird.

MaxStateChange

Empfängt eins plus die höchste Zahl für eine vom Ziel generierte Zustandsänderung.

MaxManipulate

Empfängt eine weitere, die die höchste Zahl, die vom Ziel erkannt wird, für einen Befehl zum Bearbeiten des Ziels.

Simulation

Empfängt einen Hinweis, ob sich das Ziel in simulierter Ausführung befindet. Mögliche Werte sind in der folgenden Tabelle aufgeführt.

Wert Prozessor
DBGKD_SIMULATION_NONE Es wird keine Simulation verwendet.
DBGKD_SIMULATION_EXDI Die EXDI-Simulation wird verwendet.

Unused[1]

Nicht verwendet.

KernBase

Empfängt die Basisadresse des Kernelimages.

PsLoadedModuleList

Empfängt den Wert der Kernelvariable PsLoadedModuleList.

DebuggerDataList

Empfängt den Wert der Kernelvariable KdDebuggerDataBlock. Dies ist ein Zeiger auf eine KDDEBUGGER_DATA64-Struktur oder eine KDDEBUGGER_DATA32-Struktur. Verwenden Sie die Funktion GetDebuggerData , um diese Struktur abzurufen.

Hinweise

Die Parameter für den IG_GET_KERNEL_VERSION Ioctl-Vorgang sind die Elemente der DBGKD_GET_VERSION64-Struktur.

Dieser Vorgang ist nur im Kernelmodusdebugging verfügbar.

Anforderungen

Anforderung Wert
Header wdbgexts.h (einschließlich Wdbgexts.h, Dbgeng.h)

Weitere Informationen

GetDebuggerData

Ioctl