CREATE_PROCESS_DEBUG_INFO構造体 (minwinbase.h)
デバッガーで使用できるプロセス作成情報が含まれます。
構文
typedef struct _CREATE_PROCESS_DEBUG_INFO {
HANDLE hFile;
HANDLE hProcess;
HANDLE hThread;
LPVOID lpBaseOfImage;
DWORD dwDebugInfoFileOffset;
DWORD nDebugInfoSize;
LPVOID lpThreadLocalBase;
LPTHREAD_START_ROUTINE lpStartAddress;
LPVOID lpImageName;
WORD fUnicode;
} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
メンバー
hFile
プロセスのイメージ ファイルへのハンドル。 このメンバーが NULL の場合、ハンドルは無効です。 それ以外の場合、デバッガーは メンバーを使用してイメージ ファイルの読み取りと書き込みを行うことができます。
このファイルでデバッガーが終了すると、 CloseHandle 関数を使用してハンドルを閉じる必要があります。
hProcess
プロセスへのハンドル。 このメンバーが NULL の場合、ハンドルは無効です。 それ以外の場合、デバッガーは メンバーを使用して、プロセスのメモリの読み取りと書き込みを行うことができます。
hThread
hProcess メンバーによって識別されるプロセスの初期スレッドへのハンドル。 hThread param が NULL の場合、ハンドルは無効です。 それ以外の場合、デバッガーはスレッド にTHREAD_GET_CONTEXT、 THREAD_SET_CONTEXT、 THREAD_SUSPEND_RESUME アクセスできるため、デバッガーはスレッドのレジスタの読み取りと書き込みを行い、スレッドの実行を制御できます。
lpBaseOfImage
プロセスが実行されている実行可能イメージのベース アドレス。
dwDebugInfoFileOffset
hFile メンバーによって識別されるファイル内のデバッグ情報へのオフセット。
nDebugInfoSize
ファイル内のデバッグ情報のサイズ (バイト単位)。 この値が 0 の場合、デバッグ情報はありません。
lpThreadLocalBase
データ ブロックへのポインター。 このブロックへのオフセット0x2Cは、 と呼ばれる ThreadLocalStoragePointer
別のポインターであり、モジュールごとのスレッド ローカル ストレージ ブロックの配列を指します。 これにより、デバッガーは、コンパイラが使用するのと同じアルゴリズムを使用して、デバッグ中のプロセスのスレッド内のスレッドごとのデータにアクセスできます。
lpStartAddress
スレッドの開始アドレスへのポインター。 スレッドへの適切なアクセス権を持つアプリケーションは SetThreadContext 関数を使用してスレッドのコンテキストを変更できるため、この値はスレッドの開始アドレスの近似値に過ぎません。
lpImageName
hFile メンバーに関連付けられているファイル名へのポインター。 このパラメーターは NULL であるか、デバッグ中のプロセスのアドレス空間に文字列ポインターのアドレスを含む場合があります。 そのアドレスは、 NULL であるか、実際のファイル名を指している可能性があります。 fUnicode が 0 以外の値の場合、名前文字列は Unicode です。それ以外の場合は ANSI です。
このメンバーは厳密に省略可能です。 デバッガーは、 lpImageName が NULL または *lpImageName (デバッグ中のプロセスのアドレス空間内) が NULL である場合を処理するように準備する必要があります。 具体的には、システムは作成プロセス イベントのイメージ名を指定せず、最初の DLL イベントのイメージ名を渡す可能性はありません。 また、 DebugActiveProcess 関数の呼び出しから発生したデバッグ イベントの場合も、この情報は提供されません。
fUnicode
lpImageName メンバーで指定されたファイル名が Unicode か ANSI かを示す値です。 0 以外の値は Unicode を示します。0 は ANSI を示します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | minwinbase.h (Windows.h を含む) |