c++
文章平均质量分 66
fuekU
这个作者很懒,什么都没留下…
展开
-
windows核心编程1-4笔记
DBCS。在双字节字符集中,一个字符串中的每个字符都由1个或2个字节组成。 typedef char CHAR; typedef wchar_t WCHAR; ////////////// typedef CHAR *PCHAR; typedef CHAR *PSTR; typedef CONST CHAR *PCSTR; typedef WCHAR *PWCHAR;原创 2014-04-06 18:12:01 · 438 阅读 · 0 评论 -
windows核心编程5-8笔记
创建好一个作业之后,接着一般会根据作业中的进程能够执行哪些操作来建立一个沙箱。可以向作业应用以下几种类型的限制: 1.基本限额和扩展基本限额,用于防止作业中的进程独占系统资源。 2.基本的UI限制,用于防止作业内的进程更改用户界面。 3.安全限额,用于防止作业内的进程访问安全资源(文件、注册表子项等)。 线程由两部分组成:1线程内核对象,2线程栈。 每次初始化进程时,系统原创 2014-04-13 21:48:34 · 382 阅读 · 0 评论 -
windows核心编程 22
SetWindowLongPtr(hWnd, GWLP_WNDPROC,MySubclassProc):所有发到或发往hWnd窗口的消息,应该由MySubclassProc来处理,而不是由该窗口的标准窗口过程来处理. 1. 使用注册表来注入DLL 当User32.dll被映射到一个新的进程时,会收到DLL_PROCESS_ATTACH通知.当User32.dll对它进行处理的时原创 2014-07-19 22:04:07 · 423 阅读 · 0 评论 -
windows核心编程13-16 18
用户模式分区: 进程无法通过指针来读取、写入或以任何方式,访问驻留在这一分区中其他进程的数据。对所有应用程序来说,进程的大部分数据都保存在这一分区。由于每个进程都有自己的数据分区,因此一个应用程序破坏另一个应用程序的可能性就非常小,从而使得整个系统更加坚固。 在Windows中,所有.exe和运态链接库都载入到这一区域。每个进程都有可能将这些DLL载入到这一分区内的不同地址(虽然这种可能性很小原创 2014-07-02 23:22:29 · 342 阅读 · 0 评论 -
windows核心编程9笔记
在进程内核对象的内部有一个布尔变量,当系统创建内核对象的时候会把这个变量的值初始化为FALSE(未触发)。当进程终止的时候,操作系统会自动把相应的内核对象中的这个布尔值设为 TRUE,表示该对象已经被触发。 线程内核对象也遵循同样的规则,与进程内核对象相同,线程内核对象绝对不可能回到未触发状态。 Windows提供了专门用来帮助我们进行线程同步的内核对象:事件、可等待计时器、原创 2014-06-01 10:55:46 · 473 阅读 · 0 评论 -
windows核心编程 19
DLL能够包含诸如对话框模板、字符串、图标以及位图之类的资源。多个应用程序可以使用DLL来共享这些资源。 在所有的源文件编译完成之后,链接器会像链接应用程序的可执行文件那样,对它们进行链接,但在创建DLL的时候,我们必须给链接器指定/DLL开关。这个开关会使链接器在生成的DLL文件映像中保存一些与可执行文件略微不同的信息,这样操作系统的加载程序就能够将该文件映像识别为DLL,而不会将它识别原创 2014-07-06 22:07:49 · 394 阅读 · 0 评论 -
windows核心编程20-21
HMODULE LoadLibrary(PCTSTR pszDLLPathName); 函数返回的HMODULE值表示文件映像被映射到的虚拟内在地址. BOOL FreeLibrary(HMODULE hInstDll); VOID FreeLibraryAndExitThread(HMODULEhInstDll, DWORD dwExitCode); 系统会在每个进程中为每个DLL原创 2014-07-08 22:06:13 · 313 阅读 · 0 评论