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 操作では、低い 4 GB のメモリでメモリ破損が検索されます。
この Ioctl 操作はパラメーターを受け取らず、 lpvData パラメーターと cbSizeOfContext パラメーターをそれぞれ NULL と 0 に設定する必要があります。
戻り値
破損したメモリが見つからなかった場合、戻り値は TRUE です。それ以外の場合は FALSE です。この操作はカーネル モード デバッグでのみ使用でき、 /nolowmem オプションを使用してカーネルが開始された場合にのみ役立ちます。
/nolowmem オプションを使用してカーネルを起動すると、カーネル、ドライバー、オペレーティング システム、アプリケーションが 4 GB を超えるメモリに読み込まれますが、メモリの低い 4 GB は一意のパターンで満たされます。 IG_LOWMEM_CHECK Ioctl 操作では、このパターンが破損しているかどうかがチェックされます。
これは、長さが 32 ビットを超える物理アドレスを使用している場合にドライバーが正しく動作することを確認するために使用できます。 Windows ドライバー キットの 物理アドレス拡張機能 (PAE)、 /pae、および /nolowmem を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | wdbgexts.h (Wdbgexts.h、Dbgeng.h を含む) |