- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储器管理:每个驱动程序作者需要知道的.doc
存储器管理:每个驱动程序作者需要知道的
二月16, 2005
本文由yyhabc翻译,如果有任何疑问,请与:yyhabc@交流
摘要
本文提供在微软的windows家族的操作系统的内核模式驱动程序中分配和使用内存的信息。它描述了驱动程序可用的内存类型,每种类型内存的适当的分配和使用,和测试与内存有关的问题的最好方法。
这些信息为下面的操作系统提供:
Microsoft Windows codenamed “Longhorn” Microsoft Windows Server? 2003 Microsoft Windows XP Microsoft Windows 2000
这个文档的当前版本在网上被维护,web是:
/whdc/driver/kernel/mem-mgmt.mspx
这里讨论的参考和资源在文章结尾被列出
内容
介绍 4
虚拟和物理内存 4
虚拟地址空间 5
32位硬件上的虚拟地址空间 5
64位硬件上的虚拟地址空间 7
寻址时使用的类型,常量,和宏 7
将虚拟内存映射为物理内存 8
物理地址空间 8
处理器相关的物理地址 10
设备总线相关的物理地址 11
内存描述符列表 11
内存池 13
IRQL 的考虑 13
旁视列表 14
高速缓存 14
对齐 14
自然对齐 15
高速缓存线对齐 16
内核堆栈 17
内存分配技术 17
为长时间存储分配内存 18
创建和使用旁视列表 20
分配连续的内存 21
存取设备寄存器 22
存取I/O缓冲区使用的内存 25
将设备内存和寄存器映射到用户空间 27
共享的内存和同步 28
测试和修理故障 28
发现内存相关错误的工具 29
编程和测试的最好习惯 29
指导方针摘要 30
资源 30
不承诺
这是一篇初步的文档,并且在本文所提及的软件的最终商业发行以前,被充分的修改。
这篇文章提供的信息表述了微软公司在发行日的期刊上的观点。因为微软公司必须对变化的市场条件做出反应,它不应该被解释成微软公司部分的承诺,并且微软公司在出版日期以后,不能保证本文任何信息的正确性。
这个白皮书只是为了信息的目的。微软公司不保证,明确的,暗含的或法律的,这篇文档信息的正确性。
遵守所有适用的版权法是用户的责任。没有版权法的权力约束,没有微软公司的明确的书面许可,这篇文章的任何部分都不能在检索系统中被复制,存储或者介绍,或者以任何形式或方法(电子的,机械的,影印,记录,或其它的)传播,或者以任何目的。
微软公司可能会拥有专利权,专利程序,商标,版权,或者其它性质的知识产权属性的权力,包括这篇文章的主题内容。除非有微软公司的书面许可协议,这篇文章的陈述没有给您任何这些专利,商标,版权或其它知识产权属性的许可。
除非特别说明,这篇文档提到的例子的公司,组织,产品,域名,电子邮件地址,标识图案,人,地点和事件都是假想的,并且不能有意的或推断的与任何实际的公司,组织,产品,域名,电子邮件地址,标识图案,人,地点和事件相联系。
? 2005 微软公司。保留所有权力
微软,windows,或者windows服务器不是在美国和/或其它国家注册的商标就是微软公司的商标。
这篇文档提到的实际的公司和产品,可能是它们各自拥有者的商标。
介绍
内核模式驱动程序为各种目的分配内存,比如存储内部数据或者被用作I/O缓冲。为了帮助驱动程序作者正确使用内存,本文解释如下的内容:
物理和虚拟内存和地址空间的基本信息。
驱动程序可用的内存类型和什么时候使用什么类型的内存。
为满足驱动程序不同需要的分配内存的技术。
存取其它组件为I/O操作分配的内存的技术。
与其它内核组件和用户组件共享内存的技术。
测试并解决内存分配和使用的问题的记述。
注释:
本文不包括直接存贮器存取(DMA)的内存分配。你能在本文结尾列出的资源“windows驱动程序的DMA支持”中找到所有DMA操作的细节信息。
虚拟和物理内存
在运行微软的windows操作系统的每台计算机中所支持的虚拟内存和物理内存数量由硬件和所用的windows版本确定。在32位的硬件上,虚拟内存数量是4GB,并且可用的最大的物理内存数量是从4到128GB。在64位硬件上,虚拟内存数量是16 terabytes并且可用的最大的物理内存数量是从64GB到1 terabyte.
表1列出了每个windows版本所支持的虚拟内存数和最大的物理内存数。
表 1. windows支持的虚拟内存和物理内存
操作系统版本 版本 虚拟内存 最大的物理内存 Microsoft Windows Server? 2003 SP 1 标准版 4 GB 4 GB Web版 4 GB 2 GB 企业版 4 GB 64 GB, 如果硬件支持物理地址扩展 (PAE)
您可能关注的文档
最近下载
- 预习材料3-IFS集成财经服务变革.pdf VIP
- 北师大版高中数学必修一全册教学课件.ppt VIP
- 武汉市轨道交通1号线径河延伸线工程.pdf VIP
- ECMO学习心得体会重症医学科陈仁山.pptx VIP
- 2025年度“三会一课”及“主题党日”活动计划表+2025年党组理论学习中心组学习计划.doc VIP
- 最高法案例库-与公司有关的纠纷02-广东某乙公司诉某甲生物公司股权转让纠纷案.pdf
- 心力衰竭专家共识2025年.pptx
- 2023CSCO非小细胞肺癌诊疗指南.pdf VIP
- 2024-2025学年深圳市育才二中小升初入学分班考试语文试卷附答案解析.docx
- 2025年深圳市育才二中小升初入学分班考试数学模拟试卷附答案解析.pdf
文档评论(0)