struttura DBGKD_GET_VERSION64 (wdbgexts.h)
L'operazione di Ioctl IG_GET_KERNEL_VERSION riceve informazioni correlate alla versione del sistema operativo della destinazione. Quando si chiama Ioctl con IoctlType impostato su IG_GET_KERNEL_VERSION, IpvData deve contenere un'istanza della struttura di DBGKD_GET_VERSION64.
Sintassi
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;
Membri
MajorVersion
Riceve 0xF se il sistema operativo della destinazione è una compilazione gratuita e 0xC se si tratta di una build controllata.
MinorVersion
Riceve il numero di build per il sistema operativo della destinazione.
ProtocolVersion
Riceve la versione del protocollo del debugger utilizzata per comunicare tra il debugger e la destinazione.
KdSecondaryVersion
Riceve un numero di versione secondario utilizzato per distinguere tra i contesti meno recenti deprecati.
Flags
Riceve un set di flag di bit per la sessione di debug corrente. È possibile presentare i flag seguenti.
Bandiera | Significato quando impostato |
---|---|
DBGKD_VERS_FLAG_MP | Il kernel di destinazione è stato compilato con il supporto per più processori. |
DBGKD_VERS_FLAG_DATA | L'elenco DebuggerDataList è valido. |
DBGKD_VERS_FLAG_PTR64 | La destinazione usa puntatori a 64 bit. |
DBGKD_VERS_FLAG_NOMM | La cache di memoria del debugger è attiva. Se non è impostato, il debugger convertirà tutti gli indirizzi virtuali in indirizzi fisici prima di accedere alla memoria della destinazione. |
DBGKD_VERS_FLAG_HSS | La destinazione supporta l'esecuzione di istruzioni hardware. |
DBGKD_VERS_FLAG_PARTITIONS | Esistono più partizioni del sistema operativo. |
MachineType
Riceve il tipo del processore di destinazione. I tipi di processore possibili sono elencati nella tabella seguente.
Valore | Processore |
---|---|
IMAGE_FILE_MACHINE_I386 | Architettura x86 |
IMAGE_FILE_MACHINE_ARM | Architettura arm |
IMAGE_FILE_MACHINE_IA64 | Architettura Intel Itanium |
IMAGE_FILE_MACHINE_AMD64 | Architettura x64 |
IMAGE_FILE_MACHINE_EBC | Architettura del codice di byte EFI |
MaxPacketType
Riceve uno più il numero più alto per un tipo di pacchetto del debugger riconosciuto dalla destinazione.
MaxStateChange
Riceve uno più il numero più alto per una modifica dello stato generata dalla destinazione.
MaxManipulate
Riceve un altro numero che il numero più alto, riconosciuto dalla destinazione, per consentire a un comando di modificare la destinazione.
Simulation
Riceve un'indicazione se la destinazione è in esecuzione simulata. I valori possibili sono elencati nella tabella seguente.
Valore | Processore |
---|---|
DBGKD_SIMULATION_NONE | Non viene usata alcuna simulazione. |
DBGKD_SIMULATION_EXDI | Viene usata la simulazione EXDI. |
Unused[1]
Inutilizzato.
KernBase
Riceve l'indirizzo di base dell'immagine del kernel.
PsLoadedModuleList
Riceve il valore della variabile kernel PsLoadedModuleList.
DebuggerDataList
Riceve il valore della variabile kernel KdDebuggerDataBlock. Puntatore a una struttura KDDEBUGGER_DATA64 o a una struttura KDDEBUGGER_DATA32. Usare la funzione GetDebuggerData per recuperare questa struttura.
Osservazioni
I parametri per l'operazione di IG_GET_KERNEL_VERSION Ioctl sono i membri della struttura DBGKD_GET_VERSION64.
Questa operazione è disponibile solo nel debug in modalità kernel.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | wdbgexts.h (include Wdbgexts.h, Dbgeng.h) |