03 2025 档案
摘要:系统中,进程主要有两部分组成:进程内核对象和进程地址空间。操作系统通过进程内核对象来管理进程,进程地址空间用于维护进程所需的资源:如代码、全局变量、资源文件等。 那么线程也是有两部分组成:线程内核对象和线程堆栈。操作系统通过线程内核对象对线程进行管理,线程堆栈用于维护线程执行代码时需要的所有的函数参
阅读全文
摘要:什么是内核对象 内核对象本质上就是内存中的一块内存 ,这块内存由操作系统进行管理和分配,任何应用程序都无法直接操作这块内存区域。至于内核对象的作用,我们暂且不说,这里只需要直到它是内存中的一块内存。 在内存中,内核对象的存储类似下图,进程中的每个内核对象都有自己的地址,并且内核对象有一个固定的数据结
阅读全文
摘要:进程有启动就有终止,通过CreateProcess函数可以启动一个新的子进程,但是如何终结子进程呢?主要有四种方法: 通过主线程的入口函数(main函数、WinMain函数)的return关键字终止进程 一个应用程序只有一个入口函数,对于控制台来说是main函数,对于GUI程序来说这个入口函数一般是
阅读全文
摘要:CreateProcess函数原型 CreateProcess 函数用于创建一个新进程(子进程)及其主线程,其函数原型如下: BOOL CreateProcess( LPCWSTR lpApplicationName,//指向可执行模块名称的指针 LPWSTR lpCommandLine,//指向命
阅读全文
摘要:进程的当前目录 Windows Api中有大量的函数在调用的时候,需要传递路径。比如创建文件,创建目录,删除目录,删除文件等等。创建文件的APICreateFile做比喻,如果我们要创建的文件路径不是全路径,那么windows在创建的时候,首先会获取到进程的当前目录,然后用这个目录拼接成一个全路径创
阅读全文
摘要:什么是系统环境变量 每台计算机针对当前用户和系统中所有用户分别提供了两个环境变量设置,通过计算机属性>环境变量的界面,我们可以查看当前这台计算机上的所有环境变量,这些环境变量都是key-value键值对。具体如下: 上面看到的环境变量其实是存储在注册表中的, 系统环境变量存储在计算机\HKEY_LO
阅读全文
摘要:什么是进程的命令行参数 每个进程在启动(双击exe启动、cmd命令行启动或者由其他程序通过CreateProcess启动)的时候,都会有一个命令行参数给它。命令行的参数以空格区分。这个命令行总是不为空,因为命令行参数的第第一参数是exe程序的启动路径。但是一般情况下,我们会忽略这个参数。一般情况下,
阅读全文