PWINDBG_IOCTL_ROUTINE 콜백 함수(wdbgexts.h)

PWINDBG_IOCTL_ROUTINE(Ioctl) 함수는 다양한 작업을 수행합니다. 대부분의 기능은 wdbgexts.h의 다른 함수 기능을 반영합니다.

구문

PWINDBG_IOCTL_ROUTINE PwindbgIoctlRoutine;

ULONG PwindbgIoctlRoutine(
  USHORT IoctlType,
  PVOID lpvData,
  ULONG cbSize
)
{...}

매개 변수

IoctlType

수행할 Ioctl 작업을 지정합니다. 가능한 IoctlType 값 목록은 "주의" 섹션을 참조하세요.

lpvData

데이터 구조의 주소를 가리킵니다. 필요한 구조체의 형식은 IoctlType 값에 따라 달라집니다.

cbSize

lpvData가 가리키는 구조체의 크기를 지정합니다.

반환 값

반환 값의 의미는 IoctlType에 따라 달라집니다. 반환 값의 의미는 해당 Ioctl 작업의 페이지를 참조하세요.

설명

Ioctl 함수는 WdbgExts 확장에 제공되는 많은 기능의 진입점입니다. wdbgexts.h의 다른 많은 함수는 단순히 Ioctl 호출을 위한 래퍼입니다.

다음 표에서는 가능한 IoctlType 값을 나열합니다. IoctlType이 다른 함수에 해당하는 경우 해당 함수가 제공됩니다. 그렇지 않으면 Ioctl 작업을 설명하는 페이지에 대한 링크가 제공됩니다.

IoctlType 상수 동등한 함수 lpData 구조체
IG_KD_CONTEXT

GetKdContext

IG_READ_CONTROL_SPACE

ReadControlSpace

ReadControlSpace64

IG_WRITE_CONTROL_SPACE WriteControlSpace
IG_READ_IO_SPACE

ReadIoSpace

ReadIoSpace64

IG_WRITE_IO_SPACE

WriteIoSpace

WriteIoSpace64

IG_READ_PHYSICAL

ReadPhysical

IG_WRITE_PHYSICAL

WritePhysical

IG_READ_IO_SPACE_EX

ReadIoSpaceEx

ReadIoSpaceEx64

IG_WRITE_IO_SPACE_EX

WriteIoSpaceEx

WriteIoSpaceEx64

IG_SET_THREAD

SetThreadForOperation

SetThreadForOperation64

IG_READ_MSR

ReadMsr

IG_WRITE_MSR

WriteMsr

IG_GET_DEBUGGER_DATA

GetDebuggerData

IG_GET_KERNEL_VERSION

DBGKD_GET_VERSION64

IG_RELOAD_SYMBOLS ReloadSymbols
IG_GET_SET_SYMPATH

GetSetSympath

IG_GET_EXCEPTION_RECORD
IG_IS_PTR64 IsPtr64

IG_GET_BUS_DATA

GETSETBUSDATA

IG_SET_BUS_DATA

GETSETBUSDATA

IG_DUMP_SYMBOL_INFO

SYM_DUMP_PARAM

IG_LOWMEM_CHECK

설명 부분을 참조하세요.
IG_SEARCH_MEMORY SearchMemory
IG_GET_CURRENT_THREAD GetCurrentThreadAddr
IG_GET_CURRENT_PROCESS GetCurrentProcessAddr
IG_GET_TYPE_SIZE GetTypeSize
IG_GET_CURRENT_PROCESS_HANDLE GetCurrentProcessHandle
IG_GET_INPUT_LINE GetInputLine
IG_GET_EXPRESSION_EX GetExpressionEx
IG_TRANSLATE_VIRTUAL_TO_PHYSICAL TranslateVirtualToPhysical
IG_GET_CACHE_SIZE GetDebuggerCacheSize
IG_READ_PHYSICAL_WITH_FLAGS ReadPhysicalWithFlags
IG_WRITE_PHYSICAL_WITH_FLAGS WritePhysicalWithFlags

IG_POINTER_SEARCH_PHYSICAL

POINTER_SEARCH_PHYSICAL

IG_GET_THREAD_OS_INFO

WDBGEXTS_THREAD_OS_INFO

IG_GET_CLR_DATA_INTERFACE
IG_GET_TEB_ADDRESS GetTebAddress
IG_GET_PEB_ADDRESS GetPebAddress
 

IG_LOWMEM_CHECK Ioctl 작업은 낮은 4GB 메모리의 메모리 손상을 찾습니다.

Ioctl 작업은 매개 변수를 사용하지 않으며 lpvDatacbSizeOfContext 매개 변수를 각각 NULL 및 0으로 설정해야 합니다.

반환 값

손상된 메모리를 찾을 수 없는 경우 반환 값은 TRUE이고, 그렇지 않으면 FALSE입니다.

이 작업은 커널 모드 디버깅에서만 사용할 수 있으며 커널이 /nolowmem 옵션을 사용하여 시작된 경우에만 유용합니다.

커널이 /nolowmem 옵션으로 시작되면 커널, 드라이버, 운영 체제 및 애플리케이션이 4GB 이상의 메모리에 로드되고 4GB 미만의 메모리는 고유한 패턴으로 채워집니다. IG_LOWMEM_CHECK Ioctl 작업은 이 패턴의 손상을 확인합니다.

길이가 32비트보다 큰 실제 주소를 사용할 때 드라이버가 올바르게 작동하는지 확인하는 데 사용할 수 있습니다. Windows 드라이버 키트에서 PAE(물리적 주소 확장), /pae/nolowmem 을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 wdbgexts.h(Wdbgexts.h, Dbgeng.h 포함)