共用方式為


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 參數為 NULL,則句柄無效。 否則,調試程式具有 線程的THREAD_GET_CONTEXTTHREAD_SET_CONTEXTTHREAD_SUSPEND_RESUME 存取權,讓調試程式能夠讀取和寫入線程緩存器,以及控制線程的執行。

lpBaseOfImage

進程執行之可執行檔映像的基位址。

dwDebugInfoFileOffset

hFile 成員所識別檔案中偵錯資訊的位移。

nDebugInfoSize

檔案中偵錯資訊的大小,以位元組為單位。 如果此值為零,則沒有偵錯資訊。

lpThreadLocalBase

數據區塊的指標。 在這個區塊的位移0x2C是另一個指標,稱為 ThreadLocalStoragePointer,指向每個模組線程本機記憶體區塊的陣列。 這可讓調試程式使用編譯程式所使用的相同演算法,存取所偵錯進程線程中的每個線程數據。

lpStartAddress

線程起始位址的指標。 這個值可能只是線程起始位址的近似值,因為任何具有適當存取線程的應用程式都可以使用 SetThreadContext 函式來變更線程的內容。

lpImageName

hFile 成員相關聯的檔名指標。 此參數可以是 NULL,或者它可能包含正在偵錯之進程的地址空間中的字串指標位址。 該位址接著可以是 NULL 或指向實際檔名。 如果 fUnicode 是非零值,則名稱字串為 Unicode;否則為 ANSI。

此成員完全是選擇性的。 調試程式必須準備好處理 lpImageNameNULL 或 *lpImageName (正在偵錯的進程地址空間中,) 為 NULL 的情況。 具體而言,系統不會提供建立進程事件的映像名稱,而且可能不會傳遞第一個 DLL 事件的映像名稱。 如果偵錯事件源自 DebugActiveProcess 函式的呼叫,系統也不會提供這項資訊。

fUnicode

值,指出 lpImageName 成員指定的檔名是否為 Unicode 或 ANSI。 非零值表示 Unicode;零表示 ANSI。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 minwinbase.h (包含 Windows.h)

另請參閱

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext