鱼C论坛

 找回密码
 立即注册

一些笔记

热度 1已有 594 次阅读2012-3-26 21:04

Keme132.dll 包括了系统基本服务中最基本的 API 函数,如文件系统、进程与线程、内
存管理等。
Windows XPSP2 系统中,Keme132.d11 有 949 个导出函数,例如,CreateFileA、
CreateProcessA、OpenThread、SetFileTime 等。

User32.dll 是 Windows 图形用户界面的主要支持。一些重要的图形用户界面函数由
User32.dll 函数导出。Windows XP SP2 系统中,User32.dll 有 732 个导出函数,例如
CreateWindowExW、RegisterClassA 等

Gd132.dll 是 Windows  GDI 应用程序设计接口,Gdi32.dll 导出了与此相关的若干函数,
如 GetTextColor、LineTo、TextOutA 等

 1.文件系统
     对文件的基本操作包括文件的创建、打开、读写、关闭、删除,文件属性的设置与获取,
目录操作,以及磁盘分卷的操作,还包括镜像文件、加密文件系统等。
2.内存管理
    主要是内在的分配、共享、释放等内容,包括虚拟内存管理、分页机制、堆管理等。
    3.进程、线程和模块
    包括进程主程序( exe)、模块、动态链接库(dll)的编写;线程的基本概念,线程创建、
遍历、同步等操作;进程与权限;线程与纤程等内容。
    4.设备 I/O、驱动程序控制
    包括设备对象等基本概念。加载与卸载驱动程序,控制驱动程序,与驱动程序通信等。 
    5.调试与错误处理
    包括如何开发调试器,程序运行错误的处理,日志的记录、Windows 可执行文件的结构
等。
    6.Windows 系统信息
    包括注册表的操作,如打开注册表,读取、写入键值,创建、删除键;还包括系统基本
信息的获取和设置,如系统目录、系统版本、计算机名等。
    7.进程间通信
    包括使用共享文件进行进程间通信的方法,使用消息进行进程间通信的方法,使用邮槽、
管道等进行进程间通信的方法,使用网络共享进行进程间通信的方法。
    8.定时器与消息机制
    消息机制是 Windows 系统中很重要的一种机制。 几乎所有的 Windows 应用程序都在与消
息打交道,而 Windows 的消息机制又是依赖于定时器的。所以了解 Windows 消息机制是学习
Windows 应用程序开发的重要内容。
    9.其他
    Windows 的系统基本服务还包括性能监视、电源管理、索引与数据存储等,也将在本书
中有所涉及。

    变量名:通常采用所谓的“匈牙利命名法”,变量名由“类型缩写(小写)”+“变量
描述(单词首字母大写)”构成,如字符串类型的变量可以命名为 szFileName,DWORD 类型
的数据可以命名为 dwFileSize,指针类型可以命名为 lpBuffer,句柄类型的变量可以命名
为 hLogFile 等。
    函数名:各单词的首字母大写,如 EnumerateFilesInDrectory、Show FileSize 等。
    类型名:全大写,各单词以下划线分隔,如 WIN32_FILE_ ATTRIBUTE_DATA、DWORD、
HANDLE 等。
    常量:同类型名的命名方式。
 
    宏:多与类型名命名方式相同,有的也与函数名命名方式相同。
    大括号与代码段:一般大括号独立占一行,大括号内的代码段缩进。如果代码段仅一行
(如 if-else 后的语句),也建议使用大括号。
    在调用或定义函数时,如果函数太长,可以分行写,将每个参数写一行。一般多于 3
个参数的函数需要分行写,以美观和方便阅读为原则。

Windows 内存管理原理
地址空间、物理内存、虚拟地址空间、用户内存空间与内核内存空间
    ◇分段与分页内存管理。
    ◇物理地址与虚拟地址、虚拟地址空间。
    ◇虚拟内存布局,内存的分工,堆与栈。
    ◇  内存的存取权限。
    ◇标准 C 内存管理函数与 Windows 内存管理 API 的关系。



(1)虚拟地址空间中的数据是分页管理的。
    (2)应用程序不用考虑系统中其他应用程序的内存使用情况,如占用了多少内存、占用
了哪些内存等。
    (3)虚拟地址并不是物理地址空间中的地址,不是数据在内存中真实存在的地址,操作
系统会将进程的虚拟地址映射到真实的物理内存的地址。
    (4)进程也不用考虑真实的物理内存有多大,只需要了解可以使用 2GB(一般情况下)
的内存,操作系统负责转换。
    (5)如果系统中没有足够的物理内存供使用,那么操作系统会将当前没有使用的内存分
页“调度”到硬盘上保存起来。页面调度不会造成内存中的数据在虚拟地址空间中地址的改
变,所以进程不需要知道内存分页是如何调度的,不需要知道内存中保存的数据是在内存中
还是在硬盘上,只需要知道其虚拟地址就可以了。

栈和堆是两种重要的内在管理形式。
    进程的每个线程都有自己的栈,栈与函数的调用、执行和返回及局部变量的保存相关,
一般情况下,栈中保存着函数的参数、返回地址和局部变量,调用函数将参数入栈,调用指
令将函数返回地址入栈,被调用函数负责保存调用函数的相关栈指针,为局部变量分配空间
等,而堆是一种可以动态分配和释放的内存,由堆管理器进行管理,用户在程序中使用的内
存分配函数都是通过堆进行分配的。


路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

发表评论 评论 (1 个评论)

回复 hero2010 2012-4-8 21:51
呵呵,加油,最近我也在看linux内核

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 00:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部