- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统二版徐宗元第三章实验2课件.doc
3.7.2 实验2:Windows 2000 内存管理API函数的使用
一.实习要求
在Windows 环境下,模拟Windows2000的本地过程调用LPC通信方式之一,用内存映射文件(共享内存方式)实现client/server架构进程间较大数据量的通信。
用VC编程,创建一个server进程和一个client进程,server进程用共享内存的名(lpName)调用CreateFileMapping()函数产生并初始化共享内存,client进程使用相同的共享内存的名来调用OpenFileMapping()函数,打开一个已命名的文件映射对象。client进程先向共享存储区写信息,server进程再从共享存储区读信息,用信号量对象实现client和server进程间的同步。
二.与实验相关的API 介绍
1. Windows进程控制API函数CreateProcess函数
当一个线程调用CreateProcess时,系统就会创建一个进程内核对象,为新进程创建一个虚拟地址空间,并将可执行文件加载到该进程的地址空间中。然后系统再为新进程的主线程创建一个线程内核对象。通过执行启动代码,该主线程便开始运行,它最终调用WinMain、wWinMain、main或wmain函数。如果系统成功地创建了新进程和主线程,该函数便返回TRUE。
格式:BOOL CreateProcess( PCTSTR pszAppliCationName ,
PTSTR pszCommandLine , PSECURITY_ATTRIBUTES pSaProcess , PSECURITY_ATTRIBUTES psaThread , BOOL bInheritHandles ,
DWORD fdwCreate , PVOID pvEnvironment , PCTSTR pszCurDir ,
PSTARTUPINF0 psiStartInfo , PPROCESS_INFORMATION ppiProcInfo ) ;
参数:
pszAppicationName:参数用于设定新进程将要使用的可执行文件的名字,该参数99%以上的情况是NULL。
PszCommandLine:参数用于设定传递给新进程的命令行字符串,即想运行的可执行文件的名字。如它没有扩展名,便假设它的扩展名为 .exe。
psaProcess、psaThread参数分别设定进程对象和线程对象需要的安全性。如参数为NULL,系统为这些对象赋予默认安全性描述符。也可以指定两个SECURITY_ATTRIBUTES结构,并对它们进行初始化,以便创建自己的安全性权限,并将它们赋予进程对象和线程对象。
bInheritHandles:进程对象和线程对象句柄的继承性
fdwCreate:参数用于规定如何来创建新进程的标志。
pvEnvironment:参数用于指向包含新进程将要使用的环境字符串的内存块。
pszCurDir:参数允许父进程设置子进程的当前驱动器和目录;如果本参数是NULL,则新进程的工作目录将与生成新进程的应用程序的目录相同。
psiStartInfo:参数用于指向一个STARTUPINFO结构。
ppiProcInfo:参数用于指向你必须指定的PROCESS_INFORMATION结构。
2. 由系统的页文件支持的内存映射文件实现进程间的数据通信的API函数
(1) 设定一块共享内存区域
先使用系统调用CreateFileMapping为指定文件创建一个文件映射核心对象,并指定共享内存区域的大小,返回对象指针,格式如下:
HANDLE CreateFileMapping ( HANDLE hFile ,
LPSECURITY_ATTRIBUTES lpFileMappingAttributes , DWORD flProtect ,
DWORD dwMaximumSizeHigh , DWORD dwMaximumSizeLow ,LPCTSTR lpName ) ;
.hFile:正常应是CreateFile()传回来的一个有关文件的handle,用以告诉系统将它映射到内存中。如果指定此参数为INVALID_HANDLE_VALUE,就可以使用页文件中的一块空间,取代一般的文件。
.lpFileMappingAttributes:安全属性,指向文件映射内核对象的SECURITY_ATTRIBUTES结构的指针,通常传递的值是NULL。
.flProtect:文件的保护属性。可以是PAGE_READONLY或PAGE_READWRITE或PAGE_WRITECOPY。针对跨进程的共享内存,应该指定此参数为PAGE_READWRITE。
.DwMaximumSizeH
您可能关注的文档
- 护理伦理秦敬民李玲2012护士执业资格考试大纲课件.pdf
- 护理伦理秦敬民李玲第八章护理伦理教育与修养知识拓展课件.pdf
- 护理基本技术电子教案表21-6手术护理记录单课件.doc
- 护理基本技术电子教案表21-7病区护理交班志课件.doc
- 护理学导论李丽娟邢爱红01、单项选择题课件.doc
- 护理学导论李丽娟邢爱红02、多项选择题课件.doc
- 护理学导论李丽娟邢爱红03、填空题课件.doc
- 护理学导论李丽娟邢爱红06、名词解释课件.doc
- 护理学导论李丽娟邢爱红07、问答题课件.doc
- 护理学导论李丽娟邢爱红2.教案—8章-1、2节课件.doc
- 操作系统二版徐宗元第二章实验2课件.doc
- 操作系统二版徐宗元第五章实验2课件.doc
- 操作系统二版徐宗元第四章实验3课件.doc
- 操作系统原理与应用教学资源教学课件作者第三版沈祥玖上机实训课件.doc
- 操作系统原理与应用教学资源教学课件作者第三版沈祥玖期末考试试卷操作系统A答案课件.doc
- 操作系统原理与应用教学资源教学课件作者第三版沈祥玖期末考试试卷操作系统A课件.doc
- 操作系统原理与应用教学资源教学课件作者第三版沈祥玖期末考试试卷操作系统B答案课件.doc
- 操作系统原理与应用教学资源教学课件作者第三版沈祥玖期末考试试卷操作系统B课件.doc
- 操作系统原理与应用教学资源教学课件作者第三版沈祥玖第1章操作系统概论课件.doc
- 操作系统原理与应用教学资源教学课件作者第三版沈祥玖第2章文件管理课件.doc
最近下载
- 孝德与感恩(孝文化讲坛).pptx VIP
- 地下消防水池开挖专项施工方案.docx VIP
- 人工智能在小学数学个性化作业设计中的应用研究教学研究课题报告.docx
- 五上英语每日一练小纸条(含答案11页).pdf VIP
- Unit 3 Yummy food(Wrap up)外研版(三起)(2024)英语三年级下册.pptx VIP
- 近五年黑龙江省中考数学真题及答案2023.docx VIP
- 2022病毒疣基层诊疗指南.pdf VIP
- 大学物理化学第四版课程课件:第6章化学平衡.pptx VIP
- 中国体癣和股癣诊疗指南(基层实践版2022).docx VIP
- 张昕-行政组织学-第八章行政组织变革.pptx VIP
文档评论(0)