博客专栏  >  系统运维   >  Windows核心编程

Windows核心编程

介绍及总结Windows核心编程开发!

关注
1 已关注
24篇博文
  • Windows核心编程(二十四)终止处理程序及异常处理程序

    结构化异常处理(Structuredexception handling)简称SEH。是windows系统提供的异常处理机制。促使windows将SEH加入到windows系统的一个关键原因就是:它可...

    2014-04-07 12:21
    600
  • Windows核心编程(二十三)Windows挂钩

    windows应用程序是基于消息驱动的。各种应用程序对各种消息作出响应从而实现各种功能。 windows钩子是windows消息处理机制的一个监视点,通过安装钩子可以达到监视指定窗口某种类型的消...

    2014-04-07 11:08
    741
  • Windows核心编程(二十二)API拦截

    一个模块的导入段包含一组DLL。为了让模块能够运行,这些DLL是必须的。导入段还包含一个符号表。它列出了该模块从各DLL中导入的符号。当模块调用这些导入符号的时候,系统实际上会调用转换函数,获得导入函...

    2014-04-07 10:44
    582
  • Windows核心编程(二十一)远程线程注入DLL

    windows内的各个进程有各自的地址空间。它们相互独立互不干扰保证了系统的安全性。但是windows也为调试器或是其他工具设计了一些函数,这些函数可以让一个进程对另一个进程进行操作。虽然他们是为调试...

    2014-04-07 10:27
    892
  • Windows核心编程(二十)模块的基地址重定位及绑定

    每个DLL和可执行文件都有一个首选基地址。它表示该模块被映射到进程地址空间时最佳的内存地址。在构建可执行文件时,默认情况下链接器会将它的首选基地址设为0x400000。对于DLL来说,链接器会将它的首...

    2014-04-06 17:33
    1223
  • Windows核心编程(十九)DLL高级技术

    本篇文章将介绍DLL显式链接的过程和模块基地址重定位及模块绑定的技术。       第一种将DLL映射到进程地址空间的方式是直接在源代码中引用DLL中所包含的函数或是变量,DLL在程序运行后由加...

    2014-04-06 17:02
    695
  • Windows核心编程(十八)DLL基础

    DLL全称dynamic linking library。即动态链接库。广泛应用与windows及其他系统中。   windows中所有API都包含在DLL中。三个最重要的DLL是Kernel3...

    2014-04-06 12:18
    755
  • Windows核心编程(十七)默认堆及自定义堆

    前面我们说过堆非常适合分配大量的小型数据。使用堆可以让程序员专心解决手头的问题,而不必理会分配粒度 和页面边界之类的事情。因此堆是管理链表和数的最佳方式。但是堆进行内存分配和释放时的速度比其...

    2014-04-06 11:11
    658
  • Windows核心编程(十六)内存映射文件

    内存映射文件允许开发人员预订一块地址空间并为该区域调拨物理存储器,与虚拟内存不同的是,内存映射文件的物理存储器来自磁盘中的文件,而非系统的页交换文件。将文件映射到内存中后,我们就可以在内存中操作他们了...

    2014-04-05 16:26
    706
  • Windows核心编程(十五)线程栈

    当系统创建线程时会为线程预订一块地址空间区域(每个线程都有自己的栈),并给区域调拨一些物理存储器。注意仅仅是预订。默认情况下预定的这块区域的大小是1MB,虽然预订这么多,但是系统并不会给全部区域调拨物...

    2014-04-05 15:23
    673
  • Windows核心编程(十四)在应用程序中使用虚拟内存

    1、Windows提供了以下三种机制对内存进行操控: 1)虚拟内存:最适合来管理大型对象数据或大型结构数组。 2)内存映射文件:最适合用来管理大型数据流(通常是文件),以及在同一机器上运行的多个进程...

    2014-04-02 16:11
    520
  • Windows核心编程(十三)Windows内存体系结构

    一、进程虚拟地址空间 1、每个进程都有自己的虚拟地址空间。对于32位操作系统来说,它的地址空间是4GB。这是因为32位指针可以表示从0x00000000到0xFFFFFFFF之间的任一值。对于64位...

    2014-04-01 17:51
    472
  • Windows核心编程(十二)线程池

    1、I/O完成端口可以非常智能的分派线程,但是IO完成端口仅对等待它的线程进行分派,创建和销毁线程的工作仍然需要我们自己来做。 我们自己也可以创建线程,但是涉及到线程的编码操作比较复杂,容易出现差错...

    2014-04-01 16:33
    643
  • Windows核心编程(十一)I/O完成端口

    1、串行模型:一个线程等待一个客户(通常是通过网络)发出请求,当请求到达时,线程会被唤醒并对客户请求进行处理。 并发模型:一个线程等待一个客户请求,并创建一个新的线程来处理请求。 2、完成端口背后...

    2014-04-01 15:21
    593
  • Windows核心编程(十)异步设备I/O

    1、设备IO与CPU速度甚至是内存访问相比较都是比较慢的,而且更不可预测。虽然如此,通过使用异步设备IO我们仍然能够创造出更高效的程序。 同步IO时,发出IO请求的线程会被挂起。而异步IO时发出请求的...

    2014-03-31 21:39
    589
  • Windows核心编程(九)同步设备I/O

    1、同步IO指线程在发起IO请求后会被挂起,IO完成后继续执行。 异步IO指线程发起IO请求后并不会挂起而是继续执行。IO完毕后会得到设备的通知。而IO完成端口就是实现这种通知的很好的一种方式。 线程...

    2014-03-31 17:12
    488
  • Windows核心编程(八)用内核对象进行线程同步

    1、在用户模式下进行线程同步的最大好处就是速度非常快。因此当需要使用线程同步时用户模式下的线程同步是首选。但是用户模式下的线程同步也存在缺点。如InterLocked系列函数只能对一个值进行操作。关键...

    2014-03-31 15:24
    585
  • Windows核心编程(七)用户模式下的线程同步

    1、系统中的线程必须访问系统资源,如堆、串口、文件、窗口以及其他资源。 如果一个线程独占了对某个资源的访问,其他线程就无法完成工作。我们也必须限制线程在任何时刻都能访问任何资源。比如在一个线程读内存时...

    2014-03-30 15:57
    662
  • Windows核心编程(六)线程调度、优先级和关联性

    1、每个线程都有一个上下文CONTEXT结构,保存在线程内核对象中。 这个上下文反映了线程上一次执行时CPU寄存器的状态。大约每隔20ms windows就会查看所有当前存在的线程内核对象。并在可调...

    2014-03-30 13:48
    621
  • Windows核心编程(五)线程基础

    1、线程由两部分组成: 线程内核对象:它是一个数据结构,操作系统用它来管理线程以及用它来存储线程的一些统计信息。 线程栈:用于维护线程执行时所需的所有函数参数和局部变量。 进程是有惰性的,进程从...

    2014-03-23 20:44
    734
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部