Partager via


structure DBGKD_GET_VERSION64 (wdbgexts.h)

L’opération IG_GET_KERNEL_VERSION Ioctl reçoit des informations relatives à la version du système d’exploitation de la cible. Lorsque vous appelez ioctl avec ioctlType défini sur IG_GET_KERNEL_VERSION, IpvData doit contenir une instance de la structure DBGKD_GET_VERSION64.

Syntaxe

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;

Membres

MajorVersion

Reçoit 0xF si le système d’exploitation de la cible est une build gratuite et 0xC s’il s’agit d’une build vérifiée.

MinorVersion

Reçoit le numéro de build du système d’exploitation de la cible.

ProtocolVersion

Reçoit la version du protocole du débogueur utilisé pour communiquer entre le débogueur et la cible.

KdSecondaryVersion

Reçoit un numéro de version secondaire utilisé pour distinguer les contextes anciens et déconseillés.

Flags

Reçoit un ensemble d’indicateurs de bits pour la session de débogage actuelle. Les indicateurs suivants peuvent être présents.

Drapeau Signification lorsqu’elle est définie
DBGKD_VERS_FLAG_MP Le noyau cible a été compilé avec prise en charge de plusieurs processeurs.
DBGKD_VERS_FLAG_DATA La liste DebuggerDataList est valide.
DBGKD_VERS_FLAG_PTR64 La cible utilise des pointeurs 64 bits.
DBGKD_VERS_FLAG_NOMM Le cache de mémoire du débogueur est actif. S’il n’est pas défini, le débogueur convertit toutes les adresses virtuelles en adresse physique avant d’accéder à la mémoire de la cible.
DBGKD_VERS_FLAG_HSS La cible prend en charge l’exécution pas à pas matérielle.
DBGKD_VERS_FLAG_PARTITIONS Plusieurs partitions de système d’exploitation existent.

MachineType

Reçoit le type du processeur de la cible. Les types de processeurs possibles sont répertoriés dans le tableau suivant.

Valeur Processeur
IMAGE_FILE_MACHINE_I386 Architecture x86
IMAGE_FILE_MACHINE_ARM Architecture ARM
IMAGE_FILE_MACHINE_IA64 Architecture Intel Itanium
IMAGE_FILE_MACHINE_AMD64 Architecture x64
IMAGE_FILE_MACHINE_EBC Architecture du code d’octet EFI

MaxPacketType

Reçoit un nombre plus élevé pour un type de paquet de débogueur reconnu par la cible.

MaxStateChange

Reçoit un nombre plus élevé pour une modification d’état générée par la cible.

MaxManipulate

Reçoit un plus que le nombre le plus élevé, reconnu par la cible, pour qu’une commande manipule la cible.

Simulation

Reçoit une indication si la cible est en cours d’exécution simulée. Les valeurs possibles sont répertoriées dans le tableau suivant.

Valeur Processeur
DBGKD_SIMULATION_NONE Aucune simulation n’est utilisée.
DBGKD_SIMULATION_EXDI La simulation EXDI est utilisée.

Unused[1]

Inutilisé.

KernBase

Reçoit l’adresse de base de l’image du noyau.

PsLoadedModuleList

Reçoit la valeur de la variable de noyau PsLoadedModuleList.

DebuggerDataList

Reçoit la valeur de la variable de noyau KdDebuggerDataBlock. Il s’agit d’un pointeur vers une structure KDDEBUGGER_DATA64 ou une structure KDDEBUGGER_DATA32. Utilisez la fonction GetDebuggerData pour extraire cette structure.

Remarques

Les paramètres de l’opération IG_GET_KERNEL_VERSION Ioctl sont les membres de la structure DBGKD_GET_VERSION64.

Cette opération n’est disponible que dans le débogage en mode noyau.

Exigences

Exigence Valeur
d’en-tête wdbgexts.h (include Wdbgexts.h, Dbgeng.h)

Voir aussi

GetDebuggerData

ioctl