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_CONTEXTTHREAD_SET_CONTEXTTHREAD_SUSPEND_RESUME アクセスできるため、デバッガーはスレッドのレジスタの読み取りと書き込みを行い、スレッドの実行を制御できます。

lpBaseOfImage

プロセスが実行されている実行可能イメージのベース アドレス。

dwDebugInfoFileOffset

hFile メンバーによって識別されるファイル内のデバッグ情報へのオフセット。

nDebugInfoSize

ファイル内のデバッグ情報のサイズ (バイト単位)。 この値が 0 の場合、デバッグ情報はありません。

lpThreadLocalBase

データ ブロックへのポインター。 このブロックへのオフセット0x2Cは、 と呼ばれる ThreadLocalStoragePointer別のポインターであり、モジュールごとのスレッド ローカル ストレージ ブロックの配列を指します。 これにより、デバッガーは、コンパイラが使用するのと同じアルゴリズムを使用して、デバッグ中のプロセスのスレッド内のスレッドごとのデータにアクセスできます。

lpStartAddress

スレッドの開始アドレスへのポインター。 スレッドへの適切なアクセス権を持つアプリケーションは SetThreadContext 関数を使用してスレッドのコンテキストを変更できるため、この値はスレッドの開始アドレスの近似値に過ぎません。

lpImageName

hFile メンバーに関連付けられているファイル名へのポインター。 このパラメーターは NULL であるか、デバッグ中のプロセスのアドレス空間に文字列ポインターのアドレスを含む場合があります。 そのアドレスは、 NULL であるか、実際のファイル名を指している可能性があります。 fUnicode が 0 以外の値の場合、名前文字列は Unicode です。それ以外の場合は ANSI です。

このメンバーは厳密に省略可能です。 デバッガーは、 lpImageNameNULL または *lpImageName (デバッグ中のプロセスのアドレス空間内) が NULL である場合を処理するように準備する必要があります。 具体的には、システムは作成プロセス イベントのイメージ名を指定せず、最初の DLL イベントのイメージ名を渡す可能性はありません。 また、 DebugActiveProcess 関数の呼び出しから発生したデバッグ イベントの場合も、この情報は提供されません。

fUnicode

lpImageName メンバーで指定されたファイル名が Unicode か ANSI かを示す値です。 0 以外の値は Unicode を示します。0 は ANSI を示します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header minwinbase.h (Windows.h を含む)

こちらもご覧ください

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext