DBGKD_GET_VERSION64 구조체(wdbgexts.h)
IG_GET_KERNEL_VERSION Ioctl 작업은 대상의 운영 체제 버전과 관련된 정보를 받습니다. IoctlType IG_GET_KERNEL_VERSION 설정된 Ioctl 호출하는 경우 IpvData DBGKD_GET_VERSION64 구조의 인스턴스를 포함해야 합니다.
통사론
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 포함) |