WIN API 进程创建函数CreateProcess中两个结构体PROCESS_INFORMATION和STARTUO_INFO的内容

PROCESS_INFORMATION 结构

编辑

typedef struct_PROCESS_INFORMATION{

HANDLE hProcess;

HANDLE hThread;

DWORD dwProcessId;

DWORD dwThreadId;

}PROCESS_INFORMATION;

其中成员含义如下。

① hProcess:返回新进程的句柄。

② hThread:返回主线程的句柄。

③ dwProcessId:返回一个全局进程标识符。该标识符用于标识一个进程。从进程被

创建到终止,该值始终有效。

④ dwThreadId:返回一个全局线程标识符。该标识符用于标识一个线程。从线程被创

建到终止,该值始终有效。

与此相关的数据结构还有:

编辑

STARTUPINFO结构

该结构用于指定新进程的主窗口特性。STARTUPINFO 结构定义如下。

typedef struct_STARTUPINFO

{

DWORD cb;

LPTSTR lpReserved;

LPTSTR lpDesktop;

LPTSTR lpTitle;

DWORD dwX;

DWORD dwY;

DWORD dwXSize;

DWORD dwYSize;

DWORD dwXCountChars;

DWORD dwYCountChars;

DWORD dwFillAttribute;

DWORD dwFlags;

WORD wShowWindow;

WORD cbReserved2;

LPBYTE lpReserverd2;

HANDLE hStdInput;

HANDLE hStdOutput;

HANDLE hStdError;

}STARTUPINFO,*LPSTARTUPINFO;

其中成员含义如下。

① cb:指定该结构大小。

② lpReserved:保留,置为NULL。

③ lpDesktop:指定一个字符串,包括该进程的桌面名或窗口位置名。

④ lpTitle:指定控制台进程创建的新控制台窗口标题。

⑤ dwX,dwY:指定新窗口左上角的x 和y 偏移量(以像素为单位)。如果dwFlags 成员

未指定STARTF_USEPOSITION 标志,则忽略这两项。

⑥ dwXSize,dwYSize:指定新窗口的宽度和高度。如果dwFlags 成员未指定

STARTF_USESIZE 标志,则忽略这两个成员。

⑦ dwXCountChars,dwYCountChars:指定新控制台窗口的屏幕缓冲区的宽度和高度。

如果dwFlags 成员未指定STARTF_USECOUNTCHARS 标志,则忽略这两成员。

⑧ dwFillAttribute:指定新控制台窗口的初始文字和背景颜色。如果dwFlags 成员未

指定STARTF_USEFILLATTRIBUTE 标志,则忽略该成员。

⑨ dwFlags:创建窗口标志。

⑩ wShowWindow:新窗口的显示状态。如果dwFlags 成员未指定STARTF_

USESHOWWINDOWW 标志,则忽略该成员。

cbReserved2:保留,必须置为0。

lpReserved2:保留,必须置为NULL。

hStdInput:指定一个句柄,该句柄用作进程的标准输入句柄。如果dwFlags 成员未

指定STARTF_USESTDHANDLES 标志,则忽略该成员。

hStdOutput:指定一个句柄,该句柄用作进程的标准输出句柄。如果dwFlags 成员

未指定STARTF_USESTDHANDLES,则忽略该成员。

hStdError:指定一个句柄,该句柄用作进程的标准错误句柄。如果dwFlags 成员未

指定STARTF_USESTDHANDLES,则忽略该成员。

SECURITY_ATTRIBUTES 结构

该结构存放一个对象的安全描述符并指定是否继承返回的句柄。

SECURITY_ATTRIBUTES 结构定义如下。

typedef struct_SECURITY_ATTRIBUTES{

DWORD nLength;

LPVOID lpSecurityDescriptor;

BOOL bInheritHandle;

}SECURITY_ATTRIBUTES

其中成员含义如下。

① nLength:指定该结构大小。

② lpSecurityDescriptor:指向一个对象的安全描述符,该安全描述符控制对象的共享。

如果该成员置为NULL,则该对象使用调用进程的默认安全描述符。

③ bInheritHandle:指定新进程被创建时是否继承返回的句柄。若该成员置为TRUE,

则新进程继承该句柄。

你可能感兴趣的:(WINDOWS编程)