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) |