- 13
- 0
- 约1.18万字
- 约 16页
- 2016-10-22 发布于河南
- 举报
CreateProcess 函数
CreateProcess 函数
CreateProcess 函数
CreateProcess 函数可用来创建一个进程
BOOL CreateProcess(
PCTSTR pszApplicationName, // 指定新进程要使用的可执行文件名。
PTSTR pszCommandLine, // 要传给新进程的命令行字符串。
PSECURITY_ATTRIBUTES psaProcess, // 创建一个进程内核对象
PSECURITY_ATTRIBUTES psaThread, // 创建一个线程内核对象
BOOL bInheritHandles, // 为子进程继承父进程可访问的一些内核权限
DWORD fdwCreate, // 影响新进程创建方式的标志
PVOID pvEnvironment, // 向的是一块内存,包含新进程要使用环境字符串。
PCTSTR pszCurDir, //允许父进程和子进程再相同的工作目录
PSTARTUPINFO psiStartInfo,
PPROCESS_INFORMATION ppiProcInfo
);
1.参数 pszApplicationName
传入的是一个非常量字符串地址。CreateProcess实际上会修改我们传给
它的命令行字符串。在CreateProcess返回之前,它会将这个字符串还原为原本形式。
命令行字符串包含文件映像的只读部分,会引起访问违规。
在C/C++编译器把NOTEPAD字符串放在只读内存:
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
CreateProcess(NULL, TEXT(NOTEPAD), NULL, NULL,
FALSE, 0, NULL, NULL, si, pi);
CreateProcess 在试图修改字符串,会引起一个访问违规..所以,我们在调用 CreateProcess
之前,把常量字符串复制到一个临时缓冲区,如下所示:
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
TCHAR szCommandLine[] = TEXT(NOTEPAD);
CreateProcess(NULL, szCommandLine, NULL, NULL,
FALSE, 0, NULL, NULL, si, pi);
另外,在Windows Vista 中调用 CreateProcess 函数ANSI版本,不会发生访问违规的。
2.使用 pszCommandLine 参数是用来指定一个完整的命令行,供 CreateProcess用于创建新
进程。当CreateProcess解析pszCommandLine,字符串时,会检查字符串中第一个标记。
如果可执行文件的名称没有扩展名,就会默认是.exe扩展名。CreateProcess 会按照以下顺序搜索
可执行文件。
(1)主调进程.exe文件所在的目录
(2)主调进程的当前目录。
(3)Windows系统目录,即GetSystemDirectory返回的System32子文件件。
(4)Windows目录。
(5)PATH环境变量中列出的目录。
文件名如果包含一个完整路径.. 那么系统会利用完整路径来查找可执行文件,而不会搜索目录。
如果系统找到了可执行文件,就创建一个新进程,将可执行文件代码和数据映射到新进程地址空间。
将可执行文件名之后的第一个实参地址传给(w)WinMain的pszCmdLine参数。
只要pszApplicationName参数为NULL(99%以上的情况是如此)就会发生上述情况。
也可以不再 pszApplicationName 中传递NULL,而是传递一个字符串地址,并在字符串中包含
想要运行的可执行文件名称。 这情况下,必须指定文件扩展名,系统不会自动假定文件名有.exe扩展名。
CreateProcess文件位于当前目录,除非文件名前有一个路径。
没有在当前目录中找到文件,CreateProcess不会再其他任何目录查找文件--调用会以失败告终。
如果在 pszApplicationName 参数中指定文件名,CreateProcess也会将 szCommandLine 参数中
的内容作为新进程的命令行传给它。 如下面这样
您可能关注的文档
最近下载
- 行者讲课脉法下篇.doc VIP
- (人教版)数学一年级上册寒假应用题“天天练”作业设计,含30份题组,附参考答案.doc
- 多参数监护仪技术参数和要求.doc VIP
- HL德國創新機能家電烤箱HL-840用户手册.pdf
- (高清!)2025年3月29日河北省事业单位联考C类《职测》真题及答案.pdf VIP
- ZORRO遥控器中文说明书.pdf
- 多参数监护仪技术参数.doc VIP
- 05R417-1 室内管道支吊架建筑工程图集 高清.docx VIP
- 2025届安徽省江南十校高三下学期第一次联考(一模)数学试题含答案.pdf VIP
- 三年级上册数学思维训练题30题,拓展孩子思维能力201123.pdf VIP
原创力文档

文档评论(0)