• 字符串处理
    strcpywcscpy不安全,是因为无法判断缓冲区最大长度的参数,不知道是否会破坏内存

  • 一个进程—》 一个内核对象+一个地址空间

  • 每个对象只是一个内存块

  • 文件地址包括字节偏移量。实际地址=段首地址+字节偏移量,原因是因为,地址占的内存大小太大,而一段的大小无法满足要求,所以需要在通用寄存器中开辟一段内存,用于存放剩余的字节地址,所以其为偏移量。

  • 内核对象的数据结构只能由操作系统来访问。

  • 内核对象中,包含使用计数,每创建一个对象后,使用计数+1,一旦对象的使用计数为0时,则系统销毁对象。

  • 调用API注意权限的设置,即是否拥有查询,或者写入写出权限

  • 进程初始化时候,系统将会为其分配句柄表

  • 句柄表主要包括:1.指向内核对象内存块的指针,访问掩码:即设置权限读取写入,所有权限等等
    **创建对象流程:**初始化一个内存块,内核扫描空的句柄表,进行初始化。

  • CloseHandle进行的操作:1.检查是否该句柄为进程中可以访问的对象,2.系统内核对象中的使用计数降为0,当为0的时候,可以进行销毁操作。

  • 文件映像对象(共享内存实质)

  • 当复制句柄表的记录项时候,系统还是会递增内核对象的使用计数。

  • 内核对象的内容被保存在内核地址空间中,所有进程都拥有这个空间

  • 终端服务命名空间

  • 专有命名空间

进程

  • 进程主要包括两部分:内核对象和地址空间
    地址空间:代码和数据,动态内存分配等等
  • 每个进程都有一个与它关联的环境块
  • 系统信任级别:低、中、高、系统权限
  • 用户界面特权隔离,防止SendMessage或者PostMessage。windows挂钩拦截完整性级别较高的进程的消息

作业

  • Job类似于沙箱一个容器,可以存放多个进程运行,并且可以对进程进行限制等操作
  • CreateThread:系统会创建一个内核对象,这个线程内核对象不是线程本身,而是一个小的数据结构

Windows核心编程学习笔记相关推荐

  1. 转 windows核心编程 学习笔记 目录

    windows核心编程--SEH(结构异常处理) SEH 的工作原理.         Windows 程序设计中最重要的理念就是消息传递,事件驱动.当GUI应用程序触发一个消息时,系统将把该消息放入 ...

  2. windows核心编程学习笔记(六)动态链接库

    动态链接库有很多优点: •扩展了应用程序的特性 •可以用许多种编程语言来编写 •简化了软件项目的管理 •有助于节省内存 •有助于资源的共享 •有助于应用程序的本地化 •有助于解决平台差异 •可以用于一 ...

  3. windows核心编程学习笔记(八)结构化异常处理(Structured Exception Handling)

    首先要要知道,结构化异常处理(SEH)和C++提供的异常处理不相同. 一.Termination HandlersTermination Handlers使用很简单.在想使用SEH处理的地方使用 __ ...

  4. 窗口消息——Windows核心编程学习手札之二十六

    窗口消息 --Windows核心编程学习手札之二十六 Windows允许一个进程至多建立10000个不同类型的用户对象(user object):图符.光标.窗口类.菜单.加速键表等,当一个线程调用一 ...

  5. 未处理异常和C++异常——Windows核心编程学习手札之二十五

    未处理异常和C++异常 --Windows核心编程学习手札之二十五 当一个异常过滤器返回EXCEPTION_CONTINUE_SEARCH标识符时是告诉系统继续上溯调用树,寻找另外的异常过滤器,但当每 ...

  6. 异常处理程序和软件异常——Windows核心编程学习手札之二十四

    异常处理程序和软件异常 --Windows核心编程学习手札之二十四 CPU负责捕捉无效内存访问和用0除一个数值这种错误,并相应引发一个异常作为对错误的反应,CPU引发的异常称为硬件异常(hardwar ...

  7. 结束处理程序——Windows核心编程学习手札之二十三

    结束处理程序 --Windows核心编程学习手札之二十三 使用SEH可以只关注程序要完成任务,而运行中发生的错误,系统将会发现并通知.Windows引入SHE是为了便于操作系统的开发,使用SHE所造成 ...

  8. 插入DLL和挂接API——Windows核心编程学习手札之二十二

    插入DLL和挂接API --Windows核心编程学习手札之二十二 如下情况,可能要打破进程的界限,访问另一个进程的地址空间: 1)为另一个进程创建的窗口建立子类时: 2)需要调试帮助时,如需要确定另 ...

  9. 线程本地存储器——Windows核心编程学习手札之二十一

    线程本地存储器 --Windows核心编程学习手札之二十一 C/C++运行期库使用线程本地存储器,运行期库是在多线程应用程序出现前设计的,因此运行期库里的大多数函数是用于单线程应用程序的.函数strt ...

最新文章

  1. 中国治理蝗灾是生物防治的成就,根本不是靠鸡靠鸭靠吃货换来的!
  2. linux必会命令 - 后台运行程序 - nohup、
  3. Android 4.1最终版SDK和ADT Plugin全线发布
  4. Ubuntu 16.04 LTS apt-get connect refuse Unable to connect to 127.0.0.1:1080
  5. 一文说通C#中的异步迭代器
  6. [转]Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理
  7. Java的一些学习心得
  8. Programming .Net Component - Chapter 1. introducting component-oriented programming
  9. c语言怎么实现模块化vc,原创:在C语言中大概实现VC++中的CArray部分功能的两种方法...
  10. html5+css3第一次作业_老娘我,饿死也不要陪孩子做手工作业,高考陪考真香!...
  11. 【ubuntu】更换下载源
  12. 贺利坚老师汇编课程29笔记:在代码段使用栈将程序定义的数据逆序
  13. 计算机网络自学指南,简直太全了!
  14. 牛逼!女生怒考 692 分,想当程序员,卷了卷了。。
  15. ubuntu经常断网、掉线、上不去网的原因
  16. 多线程&高并发(全网最新:面试题 + 导图 + 核心学习笔记)面试手稳心不慌,轻松拿下 offer,秋招跳槽必不可少的底层能力
  17. 周金涛:繁荣的起点并非沸腾的年代,或将在2020年出现首次证券市场大繁荣
  18. 无线路由器的DNS服务器怎么设置,无线路由器dns服务器怎么设置
  19. “加密上海·喜玛拉雅Web3.0数字艺术大展”落幕,AIGC和数字艺术衍生品是最大赢家?...
  20. PDF文档电子公章的初试

热门文章

  1. springboot 插入返回id_Spring Boot实现分布式微服务开发实战系列(七)
  2. cdr非法软件 您的产品已被禁用怎么回事_多层刺网非法捕鱼 顺庆男子被取保候审...
  3. leetcode题解46-全排列
  4. ORA-03113: end-of-file on communication channel
  5. 十五的学习日记20160926-你不知道的JS笔记/
  6. 转载:SQL server2005 里面没有management studio!下载SQL开发版本
  7. [转载]如何做一个出色的程序员
  8. 原来 JS 也支持跟 Lua 语意一样的内嵌函数的闭包概念
  9. 使用XmlPullParser
  10. php 点击下拉显示内容,php+ajax实现仿百度查询下拉内容功能示例