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 | ||
IG_READ_CONTROL_SPACE |
ReadControlSpace64 |
|
IG_WRITE_CONTROL_SPACE | WriteControlSpace | |
IG_READ_IO_SPACE |
ReadIoSpace64 |
|
IG_WRITE_IO_SPACE |
WriteIoSpace64 |
|
IG_READ_PHYSICAL | ||
IG_WRITE_PHYSICAL | ||
IG_READ_IO_SPACE_EX |
ReadIoSpaceEx64 |
|
IG_WRITE_IO_SPACE_EX |
WriteIoSpaceEx64 |
|
IG_SET_THREAD |
SetThreadForOperation64 |
|
IG_READ_MSR | ||
IG_WRITE_MSR | ||
IG_GET_DEBUGGER_DATA | ||
IG_GET_KERNEL_VERSION |
||
IG_RELOAD_SYMBOLS | ReloadSymbols | |
IG_GET_SET_SYMPATH | ||
IG_GET_EXCEPTION_RECORD | ||
IG_IS_PTR64 | IsPtr64 | |
IG_GET_BUS_DATA |
||
IG_SET_BUS_DATA |
||
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 |
||
IG_GET_THREAD_OS_INFO |
||
IG_GET_CLR_DATA_INTERFACE | ||
IG_GET_TEB_ADDRESS | GetTebAddress | |
IG_GET_PEB_ADDRESS | GetPebAddress |
IG_LOWMEM_CHECK Ioctl 작업은 낮은 4GB 메모리의 메모리 손상을 찾습니다.
이 Ioctl 작업은 매개 변수를 사용하지 않으며 lpvData 및 cbSizeOfContext 매개 변수를 각각 NULL 및 0으로 설정해야 합니다.
반환 값
손상된 메모리를 찾을 수 없는 경우 반환 값은 TRUE이고, 그렇지 않으면 FALSE입니다.이 작업은 커널 모드 디버깅에서만 사용할 수 있으며 커널이 /nolowmem 옵션을 사용하여 시작된 경우에만 유용합니다.
커널이 /nolowmem 옵션으로 시작되면 커널, 드라이버, 운영 체제 및 애플리케이션이 4GB 이상의 메모리에 로드되고 4GB 미만의 메모리는 고유한 패턴으로 채워집니다. IG_LOWMEM_CHECK Ioctl 작업은 이 패턴의 손상을 확인합니다.
길이가 32비트보다 큰 실제 주소를 사용할 때 드라이버가 올바르게 작동하는지 확인하는 데 사용할 수 있습니다. Windows 드라이버 키트에서 PAE(물리적 주소 확장), /pae 및 /nolowmem 을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | wdbgexts.h(Wdbgexts.h, Dbgeng.h 포함) |