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