struttura DBGKD_GET_VERSION64 (wdbgexts.h)
L'operazione 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 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;
Members
MajorVersion
Riceve 0xF se il sistema operativo della destinazione è una compilazione gratuita e 0xC se si tratta di una compilazione 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 e deprecati.
Flags
Riceve un set di flag di bit per la sessione di debug corrente. I flag seguenti possono essere presenti.
Contrassegno | 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 questa impostazione non è impostata, il debugger convertirà tutti gli indirizzi virtuali in un indirizzo fisico 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. Nella tabella seguente sono elencati i tipi di processore possibili.
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 un 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]
Non utilizzato.
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.
Commenti
I parametri per l'operazione Ioctl IG_GET_KERNEL_VERSION sono i membri della struttura DBGKD_GET_VERSION64.
Questa operazione è disponibile solo nel debug in modalità kernel.
Requisiti
Requisito | Valore |
---|---|
Intestazione | wdbgexts.h (include Wdbgexts.h, Dbgeng.h) |