該結構體用於在創建一個新的進程時,這個新進程包含的屬性,以及與父進程之間的關係。
PROCESS_INFOMATION結構
typedef struct{
HANDLE hProcess; //新建進程的核心句柄
HANDLE hThread; //新建進程中主執行緒的核心句柄
DWORD dwProcessId; //新建進程的ID
DWORD dwThreadId; //新建進程主執行緒ID
}PROCESS_INFOMATION,*LPPROCESS_INFOMATION;
PROCESS_INFOMATION結構主要在新建進程函式CreateProcess中使用用來返回新建進程的相關信息。
例子:
int main(int argc,char* argv[])
{
char szCommandLine[] = "cmd";
STARTUPINFO si = {sizeof(si)};
PROCESS_INFOMATION pi; // 創建PROCESS_INFOMATION實例
si.dwFlags = START_USESHOWWINDOW;
si.wShowWindow = TRUE;
BOOL bRet = ::CreateProcess(
NULL,
szCommandLine,
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi); // 用pi返回新建進程的相關信息
if(bRet)
{
::CloseHandle(pi.hThreadId);
::CloseHandle(pi.hProcessId);
printf("新建進程的進程ID號:%d\n",pi.dwProcessId);
printf("新建進程的主執行緒ID號:%d\n",pi.dwThreadId);
}
return 0;
}