随笔分类 -  Windows核心编程

庖丁解牛,游刃有余。
Windows核心编程笔记第十一篇(线程同步,旋转锁,高速缓存行)
摘要:为什么需要线程同步: 为了避免在一线程对以数据操作过程中(一进行一部分操作但是尚未完成)CPU时间片耗尽当前线程挂起时,另一进城对修改不完全的数据进行操作。如下面这段书上的代码所示:[代码]最理想的汇编代码如下:[代码]可是我们无法保证线程2会等待线程1执行完上述一系列操作才运行,汇编的结果可能是这样:[代码]....悲剧发生了,现在g_x的值是1并不是我们需要的2. 如何实现线程同步: 1.保证... 阅读全文
posted @ 2009-11-02 14:28 wParma 阅读(5502) 评论(10) 推荐(2)
Windows核心编程笔记第十篇(线程创建的过程和基于C/C++运行库的 _beginthreadex)
摘要:线程定义 线程也是由两个部分组成的: • 一个是线程的内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方。 • 另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量(第1 6章将进一步介绍系统如何管理线程堆栈)。 如何创建线程:[代码]线程创建时发生了什么: 1.系统创建内核对象,使用计数为2、暂停计数为1、退出码为 ST... 阅读全文
posted @ 2009-10-30 13:21 wParma 阅读(2130) 评论(2) 推荐(2)
Windows核心编程笔记第七篇(代码精读ProcessInfo.cpp)
摘要:[代码]哈哈看到这里整个程序的具体实现方法、功能之间的联系、其中包含的知识、以及结合以前所学想象一下程序为什么能运行、心里已经有底了。通过这几天的学习收获很多,对发现Windows核心编程有了一个初步的自己的认识。Windows好像就是一个巨大的错综复杂的数据结构,Windows核心编程就是要用代码去改变这些结构然后相应的功能也就出来了 阅读全文
posted @ 2009-10-29 20:12 wParma 阅读(1114) 评论(0) 推荐(1)
Windows核心编程笔记第六篇(代码精读VOID ShowProcessInfo(HWND hwnd, DWORD dwProcessID))
摘要:[代码]PROCESSENTRY32 Describes an entry from a list that enumerates the processes residing in the system address space when a snapshot was taken. //在系统快照生成时,通过一个列举进程在内存中存储情况的列表描述一个入口点信息 typedef struct ... 阅读全文
posted @ 2009-10-29 18:46 wParma 阅读(1119) 评论(0) 推荐(1)
Windows核心编程笔记第五篇(代码精读PVOID GetModulePreferredBaseAddr(DWORD dwProcessId, PVOID pvModuleRemote))
摘要:[代码]Toolhelp32ReadProcessMemory The Toolhelp32ReadProcessMemory function copies memory allocated to another process into an application-supplied buffer. //函数 Toolhelp32ReadProcessMemory 读取另外一个进程的内存带应... 阅读全文
posted @ 2009-10-29 17:23 wParma 阅读(1401) 评论(0) 推荐(1)
Windows核心编程笔记第四篇(代码精读VOID Dlg_PopulateModuleList(HWND hwnd))
摘要:[代码]CB_ADDSTRING Message An application sends a CB_ADDSTRING message to add a string to the list box of a combo box. If the combo box does not have the CBS_SORT style, the string is added to the end o... 阅读全文
posted @ 2009-10-29 17:22 wParma 阅读(620) 评论(0) 推荐(1)
Windows核心编程笔记第三篇(代码精读VOID Dlg_PopulateProcessList(HWND hwnd) )
摘要:相关MSDN资料整理 WM_COMMAND Notification The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an acceler... 阅读全文
posted @ 2009-10-29 16:28 wParma 阅读(733) 评论(0) 推荐(1)
将VC++6.0的代码迁移到VS2005常见问题总结(Window核心编程第五版以前代码在VS2005无法编译的解决方案)
摘要:额喜新厌旧是男人的通病吧,可是呢VS2005的界面看着的确比VC6.0看着舒服,而且也算用习惯了吧。可是网上现在大部分C/C++的代码还是用VC6.0的。这为我们这些菜鸟的学习之路增添了不少障碍,可能有很多朋友在这一步就放弃了吧或者抹黑走下去,很痛苦我也是刚刚找到些窍门就拿Windows核心编程这本书的代码来做个例子吧第一用VS2005打开项目编译之后看到最多的错误大概就是error C4430:... 阅读全文
posted @ 2009-10-28 13:42 wParma 阅读(1527) 评论(4) 推荐(1)
Windows核心编程笔记第一篇(进程的定义和CreateProcess函数的解释)
摘要://本文内容大都来自《Windows核心编程》和MSDN,翻译的很烂,可是自己翻译一遍后突然发现自己懂了虽然不会//表达,献给痛苦徘徊在此的同路人。进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: • 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。 • 另一个是地址空间,它包含所有可执行模块或D L L 模块的代码和数据... 阅读全文
posted @ 2009-10-28 10:57 wParma 阅读(1740) 评论(1) 推荐(1)
梦想的力量
摘要://先做个自我介绍吧,男,23,刚毕业,有工作,在保定,很穷很稳定, //人很笨,英语奇差,没有Windows编程的经验,只会一些蹩脚的C#,撮合着混口饭吃。 //想学C++,不是数据库编程,不是XX管理系统,有点晚,不算晚。 //MSDN全英文资料,Google翻译成晦涩难懂的中文,和译文版的抽象有一拼, //夹杂着三成的Google翻译,三成自己的猜想,三成译文版的启发,Windows核心编程... 阅读全文
posted @ 2009-10-28 09:11 wParma 阅读(862) 评论(8) 推荐(1)