DBGKD_GET_VERSION64 구조체(wdbgexts.h)
IG_GET_KERNEL_VERSION Ioctl 작업은 대상의 운영 체제 버전과 관련된 정보를 받습니다. IoctlType이 IG_GET_KERNEL_VERSION 설정된 Ioctl을 호출할 때 IpvData에는 DBGKD_GET_VERSION64 구조체의 instance 포함되어야 합니다.
구문
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;
멤버
MajorVersion
대상의 운영 체제가 무료 빌드인 경우 0xF 수신하고 확인된 빌드인 경우 0xC.
MinorVersion
대상의 운영 체제에 대한 빌드 번호를 받습니다.
ProtocolVersion
디버거와 대상 간에 통신하는 데 사용되는 디버거 프로토콜의 버전을 받습니다.
KdSecondaryVersion
사용되지 않는 이전 컨텍스트를 구분하는 데 사용되는 보조 버전 번호를 받습니다.
Flags
현재 디버깅 세션에 대한 비트 플래그 집합을 받습니다. 다음 플래그가 있을 수 있습니다.
플래그 | 설정된 경우의 의미 |
---|---|
DBGKD_VERS_FLAG_MP | 대상 커널은 여러 프로세서를 지원하여 컴파일되었습니다. |
DBGKD_VERS_FLAG_DATA | DebuggerDataList 목록이 유효합니다. |
DBGKD_VERS_FLAG_PTR64 | 대상은 64비트 포인터를 사용합니다. |
DBGKD_VERS_FLAG_NOMM | 디버거의 메모리 캐시가 활성 상태입니다. 설정되지 않은 경우 디버거는 대상의 메모리에 액세스하기 전에 모든 가상 주소를 실제 주소로 변환합니다. |
DBGKD_VERS_FLAG_HSS | 대상은 하드웨어 스테이핑을 지원합니다. |
DBGKD_VERS_FLAG_PARTITIONS | 여러 운영 체제 파티션이 있습니다. |
MachineType
대상 프로세서의 형식을 받습니다. 가능한 프로세서 유형은 다음 표에 나와 있습니다.
값 | 프로세서 |
---|---|
IMAGE_FILE_MACHINE_I386 | x86 아키텍처 |
IMAGE_FILE_MACHINE_ARM | ARM 아키텍처 |
IMAGE_FILE_MACHINE_IA64 | Intel Itanium 아키텍처 |
IMAGE_FILE_MACHINE_AMD64 | x64 아키텍처 |
IMAGE_FILE_MACHINE_EBC | EFI 바이트 코드 아키텍처 |
MaxPacketType
대상에서 인식한 디버거 패킷 유형에 대해 가장 높은 숫자를 하나 더 받습니다.
MaxStateChange
대상에서 생성한 상태 변경에 대해 가장 높은 개수를 하나 더 받습니다.
MaxManipulate
대상을 조작하는 명령에 대해 대상이 인식하는 가장 높은 숫자를 하나 더 받습니다.
Simulation
대상이 시뮬레이션된 실행 중인지 나타내는 표시를 받습니다. 가능한 값은 다음 표에 나와 있습니다.
값 | 프로세서 |
---|---|
DBGKD_SIMULATION_NONE | 시뮬레이션이 사용되지 않습니다. |
DBGKD_SIMULATION_EXDI | EXDI 시뮬레이션이 사용됩니다. |
Unused[1]
사용되지 않습니다.
KernBase
커널 이미지의 기본 주소를 받습니다.
PsLoadedModuleList
커널 변수 PsLoadedModuleList의 값을 받습니다.
DebuggerDataList
커널 변수 KdDebuggerDataBlock의 값을 받습니다. KDDEBUGGER_DATA64 구조체 또는 KDDEBUGGER_DATA32 구조체에 대한 포인터입니다. GetDebuggerData 함수를 사용하여 이 구조를 가져옵니다.
설명
IG_GET_KERNEL_VERSION Ioctl 작업에 대한 매개 변수는 DBGKD_GET_VERSION64 구조체의 멤버입니다.
이 작업은 커널 모드 디버깅에서만 사용할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | wdbgexts.h(Wdbgexts.h, Dbgeng.h 포함) |