Partager via


DBGKD_GET_VERSION64 structure (wdbgexts.h)

L’opération ioctl IG_GET_KERNEL_VERSION reçoit des informations relatives à la version du système d’exploitation de la cible. Lors de l’appel d’Ioctl avec IoctlType défini sur IG_GET_KERNEL_VERSION, IpvData doit contenir un 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 de débogueur utilisée pour communiquer entre le débogueur et la cible.

KdSecondaryVersion

Reçoit un numéro de version secondaire utilisé pour distinguer les contextes plus 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.

Indicateur Signification en cas de définition
DBGKD_VERS_FLAG_MP Le noyau cible a été compilé avec la 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. Si ce n’est pas le cas, 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 le pas à pas matériel.
DBGKD_VERS_FLAG_PARTITIONS Il existe plusieurs partitions de système d’exploitation.

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 plus le nombre le plus élevé pour un type de paquet de débogueur reconnu par la cible.

MaxStateChange

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

MaxManipulate

Reçoit un de plus que le nombre le plus élevé, reconnu par la cible, pour une commande de manipulation de 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. 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 ioctl IG_GET_KERNEL_VERSION sont les membres de la structure DBGKD_GET_VERSION64.

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

Configuration requise

Condition requise Valeur
En-tête wdbgexts.h (inclure Wdbgexts.h, Dbgeng.h)

Voir aussi

GetDebuggerData

Ioctl