다음을 통해 공유


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

추가 정보

GetDebuggerData

Ioctl