![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Windows核心编程
文章平均质量分 83
liuxiaomao1988
这个作者很懒,什么都没留下…
展开
-
Windows核心编程——》第二十章 DLL高级技巧 (DLL Advanced Techniques)
1.概览 1.1动态加载DLL文件 LoadLibraryEx HMODULE LoadLibraryEx(PCTSTR pszDLLPathName,HANDLE hFile,DWORD dwFlags); 返回DLL加载到进程空间原首地址。 dwFlags转载 2014-04-16 22:18:28 · 1084 阅读 · 0 评论 -
Windows 核心编程——》第五章 作业
1.什么是作业可以把作业看作是进程的容器,一个作业由一个或多个进程组成。作业可以对在其内的进程进行控制或限制进程的某些行为。 如果一个进程被加载到作业中,那么该进程的子进程也会自动被加载到该作业中。 用CloseHandle()关闭作业对象,只会把转载 2014-04-15 21:15:47 · 592 阅读 · 0 评论 -
Windows核心编程——》第十九章 DLL的一些基本概念 (DLL Basics)
1.DLL的两种链接方式: 在使用DLL前,程序必先加载DLL程序(将DLL映射到进程的地址空间)。有如下两种方式加载DLL程序: (1)隐式链接 (2)显示链接转载 2014-04-16 22:01:30 · 772 阅读 · 0 评论 -
Windows核心编程——》第二十二章 DLL 注入和API钩 (DLL Injection and API Hooking)
1.概览 每个进程都有自已独立的地址空间,一个进程不可能创建一个指向其它进程地址空间的指针。 然而如果我们把自已的DLL注射到另一个进程的地址空间去,我们就可以在那个被注入的进程里为所欲为了。 Subclass同一进程中的窗体:http://msdn2.microsoft.com/en-us/li转载 2014-04-16 21:34:33 · 814 阅读 · 0 评论 -
Windows核心编程——》 第十八章 堆 (Heap)
1.堆 虚拟内存主要用于分配连续的内存,如给大数组分配内存。 堆主要用于分配小块内存, 如链表,树等就适合用堆来分配内存。 优点在于:在堆中分配内存时不像虚拟内存要求那么多,如分配粒度、页边界等。它没有这些要求,可分配任意大小的内存。 缺点在于:相对于转载 2014-04-16 15:40:12 · 1867 阅读 · 0 评论 -
Windows核心编程——》第十一章 线程池(The Windows Thread Pool)
线程池的目的就是为了减少创建和销毁线程的额外开销,利用已经存在的线程多次循环执行多个任务从而提高系统的处理能力.线程池会自动地根据内制的算法增加或减少线程池中的线程或为程序增加新的线程池。1.异步方法调用 异步方法调用有以下两种方法: (1转载 2014-04-16 15:09:14 · 1328 阅读 · 0 评论 -
Windows核心编程——》第三章 内核对象
1.什么是内核对象内核对象是由内核分配的一块内存,它只能被内核访问。这块内存存储着一个保存着内核对象信息的数据结构。2.如何访问内核对象应用程序不能直接访问内核对象,只能通过Windows API间接访问和操作内核对象。那些用于操作内核对象的API会返回一个标识内核对象的句柄,应用程序通过该句柄和API函数来操作和访问内核对象。3.内核对象的数据成员转载 2014-04-15 22:24:59 · 742 阅读 · 0 评论 -
Windows核心编程——》第十七章 内存映射文件 (Memory-Mapped Files)
1.概览 (1)什么是内存映射文件 内存映射文件是由一个文件到一块内存的映射,使进程虚拟地址空间的某个区域与磁盘上某个文件的部分或全部内容的建立映射。 建立映射后,通过该区域可以直接对被映射的磁盘文件进行访问.而不必执行文件I/O操作也无需对文件内容进行缓冲处理。转载 2014-04-16 09:37:54 · 2045 阅读 · 0 评论 -
Windows核心编程——》第十三章 Windows内存架构(Windows Memory Architecture)
1.进程虚拟地址空间 每个进程都有自已的私有的虚拟地址空间,在32位机器上是4G,在64位机器上是16EB。 进程内的线程只能访问其所属进程所占的内存,其它进程的内存对其而言是不可见的,无法访问到。 2.虚拟地址空间是如何划分的 以32位 x86进程的虚拟地址被分成四个区域(P转载 2014-04-16 10:21:08 · 548 阅读 · 0 评论 -
Windows核心编程——》空指针赋值分区
为什么通过空指针读写的时候就会出现异常?除了NULL表示空指针,是否还有其他的值也是空指针?如果还有其他的值,你们这些表示空指针的值都是什么?为什么?首先解答第一个问题,在windows核心编程第四版的windows的内存结构一章中,表13-1有提到NULL指针分配的分区。其范围是从0x00000000到0x0000FFFF。这段空间是空闲的,对于空闲的空间而言,没有相应的物理存储器与之相转载 2014-04-06 17:50:40 · 848 阅读 · 1 评论