導航:首頁 > 編程語言 > windows核心編程第4版

windows核心編程第4版

發布時間:2023-01-02 03:17:47

㈠ Windows 核心編程的目錄

第1部分 必備知識
第1章 錯誤處理
1.1 定義自己的錯誤代碼
1.2 ErrorShow示常式序
第2章 字元和字元串處理
2.1 字元編碼
2.2 ANSI字元和Unicode字元與字元串數據類型
2.3 Windows中的Unicode函數和ANSI函數
2.4 C運行庫中的Unicode函數和ANSI函數
2.5 C運行庫中的安全字元串函數
2.5.1 初識新的安全字元串函數
2.5.2 在處理字元串時如何獲得更多控制
2.5.3 Windows字元串函數
2.6 為何要用Unicode
2.7 推薦的字元和字元串處理方式
2.8 Unicode與ANSI字元串轉換
2.8.1 導出ANSI和Unicode DLL函數
2.8.2 判斷文本是ANSI還是Unicode
第3章 內核對象
3.1 何為內核對象
3.1.1 使用計數
3.1.2 內核對象的安全性
3.2 進程內核對象句柄表
3.2.1 創建一個內核對象
3.2.2 關閉內核對象
3.3 跨進程邊界共享內核對象
3.3.1 使用對象句柄繼承
3.3.2 改變句柄的標志
3.3.3 為對象命名
3.3.4 終端服務命名空間
3.3.5 專有命名空間
3.3.5 復制對象句柄
第Ⅱ部分 工作機制
第4章 進程
4.1 編寫第一個Windows應用程序
4.1.1 進程實例句柄
4.1.2 進程前一個實例的句柄
4.1.3 進程的命令
4.1.4 進程的環境變數
4.1.5 進程的關聯性
4.1.6 進程的錯誤模式
4.1.7 進程當前所在的驅動器和目錄
4.1.8 進程的當前目錄
4.1.9 系統版本
4.2 CreateProcess函數
4.2.1 pszApplicationName和pszCommandLine參數
4.2.2 psaProcess,psaThread和bInheritHandles參數
4.2.3 fdwCreate參數
4.2.4 pvEnvironment參數
4.2.5 pszCurDir參數
4.2.6 psiStartInfo參數
4.2.7 ppiProcInfo參數
4.3 終止進程
4.3.1 主線程的入口點函數返回
4.3.2 ExitProcess函數
4.3.3 TerminateProcess函數
4.3.4 當進程中的所有線程終止時
4.3.5 當進程終止運行時
4.4 子進程
4.5 管理員以標准用戶許可權運行時
4.5.1 自動提升進程的許可權
4.5.2 手動提升進程的許可權
4.5.3 何為當前許可權上下文
4.5.4 枚舉系統中正在運行的進程
4.5.5 Process Information示常式序
第5章 作業
5.1 對作業中的進程施加限制
5.2 將進程放入作業中
5.3 終止作業中的所有線程查詢作業統計信息
5.4 作業通知
5.6 Job Lab示常式序
第6章 線程基礎
6.1 何時創建線程
6.2 何時不應該創建線程
6.3 編寫第一個線程函數
6.4 CreateThread函數
6.4.1 psa參數
6.4.2 cbStackSize參數
6.4.3 pfnStartAddr和pvParam參數
6.4.4 dwCreateFlags
6.4.5 pdwThreadID7
6.5 終止運行線程
6.5.1 線程函數返回
6.5.2 ExitThread函數
6.5.3 TerminateThread函數
6.5.4 進程終止運行時
6.5.5 線程終止運行時
6.6 線程內幕
6.7 C/C++運行庫注意事項
6.7.1 用_beginthreadex而不要用CreateThread創建線程
6.7.2 絕對不應該調用的C/C++運行庫函數
6.8 了解自己的身份
6.8.1 將偽句柄轉換為真正的句柄
第7章 線程調度、優先順序和關聯性
7.1 線程的掛起和恢復
7.2 進程的掛起和恢復
7.3 睡眠
7.4 切換到另一個線程
7.5 在超線程CPU上切換到另一個線程
7.6 線程的執行時間
7.7 在實際上下文中談CONTEXT結構
7.8 線程優先順序
7.9 從抽象角度看優先順序
7.10 優先順序編程
7.10.1 動態提升線程優先順序
7.10.2 為前台進程微調調度程序
7.10.3 調度I/O請求優先順序
7.10.4 Scheling Lab 示常式序
7.11 關聯性
第8章 用戶模式下的線程同步
8.1 原子訪問:Interlocked系列函數
8.2 高速緩存行
8.3 高級線程同步需要避免使用的一種方法
8.4 關鍵段
8.4.1 關鍵段:細節
8.4.2 關鍵段和旋轉鎖
8.4.3 關鍵段和錯誤處理
8.5 Slim讀/寫鎖
8.6 條件變數
8.6.1 Queue示常式序
8.6.2 在停止線程時的死鎖問題
8.6.3 一些有用的竅門和技巧
第9章 用內核對象進行線程同步
9.1 等待函數
9.2 等待成功所引起的副作用
9.3 事件內核對象
9.4 可等待的計時器內核對象
9.4.1 讓可等待的計時器添加APC調用
9.4.2 計時器的剩餘問題
9.5 信號量內核對象
9.6 互斥量內核對象
9.6.1 遺棄問題
9.6.2 互斥量與關鍵段的比較
9.6.3 Queue示常式序
9.7 線程同步對象速查表
9.8 其他的線程同步函數
9.8.1 非同步設備I/O
9.8.2 WaitForInputIdle函數
9.8.3 MsgWaitForMultipleObjects(Ex)函數
9.8.4 WaitForDebugEvent函數
9.8.5 SignalObjectAndWait函數
9.8.6 使用等待鏈遍歷API來檢測死鎖
第10章 同步設備I/O與非同步設備I/O
10.1 打開和關閉設備細看CreateFile函數
10.2 使用文件設備
10.2.1 取得文件的大小
10.2.2 設置文件指針的位置
10.2.3 設置文件尾
10.3 執行同步設備I/O
10.3.1 將數據刷新至設備
10.3.2 同步I/O的取消
10.4 非同步設備I/O基礎
10.4.1 OVERLAPPED結構
10.4.2 非同步設備I/O的注意事項
10.4.3 取消隊列中的設備I/O請求
10.5 接收I/O請求完成通知
10.5.1 觸發設備內核對象
10.5.2 觸發事件內核對象
10.5.3 可提醒I/O
10.5.4 I/O完成埠
10.5.5 模擬已完成的I/O請求
第11章 Windows線程池
11.1 情形1:以非同步方式調用函數
11.1.1 顯式地控制工作項
11.1.2 Batch示常式序
11.2 情形2:每隔一段時間調用一個函數
11.3 情形3:在內核對象觸發時調用一個函數
11.4 情形4:在非同步I/O請求完成時調用一個函數
11.5 回調函數的終止操作
11.5.1 對線程池進行定製
11.5.2 得體地銷毀線程池:清理組
第12章 纖程
第Ⅲ部分 內存管理
第13章 Windows內存體系結構
13.1 進程的虛擬地址空間
13.2 虛擬地址空間的分區
13.2.1 空指針賦值分區
13.2.2 用戶模式分區
13.3 地址空間中的區域
13.4 給區域調撥物理存儲器
13.5 物理存儲器和頁交換文件
13.6 頁面保護屬性
13.6.1 寫時復制
13.6.2 一些特殊的訪問保護屬性標志
13.7 實例分析
13.8 數據對齊的重要性
第14章 探索虛擬內存
14.1 系統信息
14.2 虛擬內存狀態
14.3 NUMA機器中的內存管理
14.4 確定地址空間的狀態
14.4.1 VMQuery函數
14.4.2 示常式序:虛擬內存映射
第15章 在應用程序中使用虛擬內存
15.1 預訂地址空間區域
15.2 給區域調撥物理存儲器
15.3 同時預訂和調撥物理存儲器
15.4 何時調撥物理存儲器
15.5 撤銷調撥物理存儲器及釋放區
15.5.1 何時撤銷調撥物理存儲器
15.5.2 虛擬內存分配示常式序
15.6 改變保護屬性
15.7 重置物理存儲器的內容
15.8 地址窗口擴展
第16章 線程棧
16.1 C/C++運行庫的棧檢查函數
16.2 Summation示常式序
第17章 內存映射文件
17.1 映射到內存的可執行文件和DLL
17.1.1 同一個可執行文件或DLL的多個實例不會共享靜態數據
17.1.2 在同一個可執行文件或DLL的多個實例間共享靜態數據
17.1.3 Application Instances示常式序
17.2 映射到內存的數據文件
17.2.1 方法1:一個文件,一塊緩存
17.2.2 方法2:兩個文件,一塊緩存
17.2.3 方法3:一個文件,兩塊緩存
17.2.4 方法4:一個文件,零個緩存
17.3 使用內存映射文件
17.3.1 第1步:創建或打開文件內核對象
17.3.2 第2步:創建文件映射內核對象
17.3.3 第3步:將文件的數據映射到進程的地址空間
17.3.4 第4步:從進程的地址空間撤銷對文件數據的映射
17.3.5 第5步和第6步:關閉文件映射對象和文件對象
17.6 File Reverse示常式序
17.7 用內存映射文件來處理大文件
17.8 內存映射文件和一致性
17.9 給內存映射文件指定基地址
17.10 內存映射文件的實現細節
第18章 堆
18.1 進程的默認堆
18.2 為什麼要創建額外的堆
18.2.1 對組件進行保護
18.2.2 更有效的內存管理
18.2.3 使內存訪問局部化
18.2.4 避免線程同步的開銷
18.2.5 快速釋放
18.3 如何創建額外的堆
18.3.1 從堆中分配內存塊
18.3.2 調整內存塊的大小
18.3.3 獲得內存塊的大小
18.3.4 釋放內存塊
18.3.5 銷毀堆
18.3.6 在C++中使用堆
18.4 其他堆函數
第Ⅳ部分 動態鏈接庫
第19章 DLL基礎
19.1 DLL和進程的地址空間
19.2 縱觀全局
19.2.1 構建DLL模塊
19.2.2 構建可執行模塊
19.2.3 運行可執行模塊
第20章 DLL高級技術
20.1 DLL模塊的顯式載入和符號鏈接
20.1.1 顯式地載入DLL模塊
20.1.2 顯式地卸載DLL模塊
20.1.3 顯式地鏈接到導出符號
20.2 DLL的入口點函數
20.2.1 DLL_PROCESS_ATTACH通知
20.2.2 DLL_PROCESS_DETACH通知
20.2.3 DLL_THREAD_ATTACH通知
20.2.4 DLL_THREAD_DETACH通知
20.2.5 DllMain的序列化調用
20.2.6 DllMain和C/C++運行庫
20.3 延遲載入DLL
20.4 函數轉發器
20.5 已知的DLL
20.6 DLL重定向
20.7 模塊的基地址重定位
20.8 模塊的綁定
第21章 線程局部存儲區
21.1 動態TLS
21.2 靜態TLS0
第22章 DLL注入和API攔截
22.1 DLL注入的一個例子
22.2 使用注冊表來注入DLL
22.3 使用Windows掛鉤來注入DLL
22.4 使用遠程線程來注入DLL
22.4.1 Inject Library示常式序
22.4.2 Image Walk DLL
22.5 使用木馬DLL來注入DLL
22.6 把DLL作為調試器來注入
22.7 使用CreateProcess來注入代碼
22.8 API攔截的一個例子9
22.8.1 通過覆蓋代碼來攔截API0
22.8.2 通過修改模塊的導入段來攔截API
22.8.3 Last MessageBox Info示常式序
第Ⅴ部分 結構化異常處理
第23章 終止處理程序
第24章 異常處理程序與軟體異常
24.1 通過實例理解異常過濾程序和異常處理程序
24.1.1 Funcmeister1函數
24.1.2 Funcmeister2函數
24.2 EXCEPTION_EXECUTE_HANDLER1
24.2.1 一些有用的例子
24.2.2 全局展開
24.2.3 停止全局展開
24.3 EXCEPTION_CONTINUE_EXECUTION
24.4 EXCEPTION_CONTINUE_SEARCH0
24.5 GetExceptionCode2
24.6 GetExceptionInformation6
24.7 軟體異常
第25章 未處理異常、向量化異常處理與C++異常
25.1 UnhandledExceptionFilter函數詳解
25.2 即時調試
25.3 電子表格示常式序
25.4 向量化異常和繼續處理程序
25.5 C++異常與結構化異常的比較
25.6 異常與調試器
第26章 錯誤報告與應用程序恢復
26.1 Windows錯誤報告控制台
26.2 可編程的Windows錯誤報告
26.3 對進程中所有的問題報告進行定製
26.4 問題報告的創建與定製
26.4.1 創建一個自定義的問題報告
26.4.2 設置報告參數:WerReportSetParameter
26.4.3 將小型轉儲文件放入報告:WerReportAddDump8
26.4.4 將任意文件放入報告:WerReportAddFile9
26.4.5 修改對話框文本:WerReportSetUIOption0
26.4.6 提交錯誤報告:WerReportSubmit0
26.4.7 關閉問題報告:WerReportCloseHandle
26.4.8 Customized WER示常式序
26.5 應用程序的自動重啟與恢復
26.5.1 應用程序的自動重啟
26.5.2 對應用程序恢復的支持
第Ⅵ部分
附錄A 構建環境
附錄B 消息處理宏、子控制項宏和API宏
索引

㈡ 怎麼學習《windows核心編程》

不要一開始就學這一本書,這是給高手學的,
如果你剛學完數據結構就學這本書是沒法看懂的,
我的建議是,先看<<windows程序設計>>這本書,現在好像已經出到第五版了。
剛開始學的時候不需要看懂全部,只需要看懂前面的消息機制(一定要看懂),
然後自己能照著書中的代碼寫出一個窗口就行了(不用記住代碼,但至少你要能把代碼輸入好,並編譯完成,程序運行正常,到這,這本書可以先放下,當然,後面的能囈懂最好能看下去,不能看懂,也要瀏覽一下,知道大概講的什麼,。

然後去下載 孫鑫的<<VC++從入門到精通>>的視頻,看完後再回頭看<<windows程序設計>>
看破完後你就可以看<<windows核心編程>>了

當然,就要很久的時間,我就用了差不多一年

㈢ windows核心編程 哪個版比較好

要在windows平台發展,首先要對標准C++有深入了解。MFC等庫中各種虛函數、框架等等都是建立在此基礎上的,建議看看《C++ Primer》
要想看懂《windows核心編程》,首先要對VC++有一定的了解,了解它的工作原理。建議看看《Windows程序設計(第五版)》,這本書雖然比較早,裡面的一些知識可能已經淘汰,但這本書被稱作Windows編程聖經,裡面講解的Windows程序原理至今依然適用。其次,還要對windows的操作系統本身有一定了解,建議看看操作系統原理。
linux和windows這2者之間有很大不同,從操作系統上就有很大差異,而且linux下更喜歡用C編程,windows的話就比較喜歡C++,看《windows核心編程》就可以看出來了。

㈣ windows 核心編程第四章中的一段代碼,我不能正確編譯,請幫我看看什麼問題,急急急!!!!!

日文不懂,不過意思猜到是:錯誤: unresolved external symbol _main
原因是你的你的程序類型和入口函數不匹配,編譯器根據類型在查找它認為的入口函數main,而你給出的是WinMain,他不認識。

解決方案:
1.試試看在[Project] --> [Settings] --> 選擇"Link"屬性頁,在Project Options中將/subsystem:console改成/subsystem:windows
2.或者用向導建立一個windows程序,把你的代碼粘過去覆蓋原來的WinMain函數
3.或者把你的WinMain改成main試試看

㈤ Windows核心編程的編輯推薦

亮點:長銷不衰的Windows編程經典
權威力作 再度新鮮亮相
名著名譯 彰顯經典魅力
深刻剖析底層實現機理
直擊Windows編程精髓
Windows核心編程(第5版)針對Windows XP,Windows Vista和Windows Server 2008全面修訂。主題廣泛,內容豐富,講解深入而精闢。透過這本Windows編程經典,我們可以在專家的悉心指導下,洞悉Windows編程精華,深入了解高級編程技巧,編寫出高性能的Windows應用程序。
本書重要主題:
如何為32位和64位Windows系統構建和實現應用程序;
如何新建和處理進程與作業;
如何調度.管理、同步和銷毀線程;
如何通過I/O完成埠執行同步和非同步設備I/O操作;
如何使用虛擬內存、內存映射文件和堆之類的各種技術來分配內存;
如何處理默認調撥的線程棧物理存儲;
如何為延遲載入、API攔截和進程注入構建DLL;
如何使用結構化異常處理、Windows錯誤恢復和應用程序重啟等機制。
《微軟技術叢書》包括以下幾個子系列:
從入門到精通:適合新手程序員的實用教程;側重於基礎技術和特徵;提供範例文件。
技術內幕:權威、必備的參考大全;包含豐富、實用的範例代碼;幫助讀者熟練掌握微軟體技術。
高級編程:側重於高級特性、技術和解決問題;包含豐富、適用性強的範例代碼;幫助讀者精通微軟技術。
精通&寶典:著重剖析應用技巧,以幫助提高工作效率;主題包括辦公應用和開發工具。
認證考試教材:完全根據考試要求來闡述每一個知識點;提供可供搜索的Ebook(英文版)和訓練題;提供實際場景、案例分析和故障診斷實驗。

㈥ 誰有《windows程序設計》《windows核心編程》這兩本書的txt,本人表示不想買了,有的話

Windows程序設計第五版 pdf 格式的

http://vdisk.weibo.com/s/z7lCy1d7nlZLj
《Windows核心編程(第四版)》中文版PDF格式.rar
70.52 M
http://vdisk.weibo.com/s/d4M6y2rEtj9Ei
[MFC.Windows程序設計(第2版)修訂版].(Programming.Windows.with.MFC,.2nd.Edition).(美)Jeff.Prosise.掃描版.pdf
http://vdisk.weibo.com/s/FlmEhSJrtUqW6

㈦ 《Windows核心編程(第5版)微軟技術叢書》pdf下載在線閱讀,求百度網盤雲資源

《Windows核心編程》(Jeffrey Richter)電子書網盤下載免費在線閱讀

鏈接:

密碼:xdpk

書名:Windows核心編程

作者:Jeffrey Richter

豆瓣評分:9.2

出版社:人民郵電出版社

出版年份:2008-8

頁數:820

內容簡介:

【內容簡介】

本書是Windows 程序設計領域的名著,涵蓋了Windows 的最新版本Vista 以及Windows XP 的最新內容。書中全面深入地介紹了Windows 的各種基本要素,如進程、線程池、虛擬內存、DLL、設備I/O 和SEH 等,並列舉了大量應用程序,精闢地分析了要素的使用方法。.

本書適於各層次Windows 編程人員閱讀。 ...

【目錄信息】

Acknowledgments . xxi

Introction xxiii

64-Bit Windows xxiii

What』s New in the Fifth Edition xxiv

Code Samples and System Requirements xxvi

Support for This Book xxvi

Questions and Comments xxvi

Part I Required Reading

1 Error Handling 3

Defining Your Own Error Codes 7

The ErrorShow Sample Application 7

2 Working with Characters and Strings 11

Character Encodings 12

ANSI and Unicode Character and String Data Types 13

Unicode and ANSI Functions in Windows 15

Unicode and ANSI Functions in the C Run-Time Library 17

Secure String Functions in the C Run-Time Library 18

Introcing the New Secure String Functions 19

How to Get More Control When Performing String Operations 22

<< 查看詳細目錄

作者簡介:

Jeffrey Richter全球享有盛譽的微軟技術專家,著名技術咨詢和培訓公司Wintellect創始人之一,MSDN Magazine雜志特邀編輯。多年來,他擔任微軟各開發團隊顧問,參與了微軟的許多關鍵產品包括各版本Windows、Visual Studio、Microsoft Offce和.NET框架的設計和編程。他撰寫了一系列著作,包括本書和《深入理解.NET》(第2版·英文版,人民郵電出版社。2008),都堪稱技術圖書的典範,影響了一代Windows程序員,並因此榮獲微軟公司杜區最高技術榮譽「微軟軟體傳奇人物」(Software Legend)稱號。

㈧ Windows核心編程的目錄

譯者序
前言
作譯者簡介
第一部分 程序員必讀
第1章 錯誤處理
1.1 自定義錯誤處理的實現
1.2 錯誤顯示常式
第2章 Unicode
2.1字元集
2.1.1 單位元組和雙位元組字元集
2.1.2 Unicode:寬位元組字元集
2.2 為何需要Unicode
2.3 Windows 2000和Unicode
2.4 Windows 98和Unicode
2.5 Windows CE和Unicode
2.6 評論
2.7 關於COM
2.8 如何編寫Unicode源代碼
2.8.1 C運行庫的Unicode支持
2.8.2 Windows定義的Unicode數據類型
2.8.3 Windows系統中的Unicode函數和ANSI函數
2.8.4 Windows字元串函數
2.9 讓應用程序符合ANSI和Unicode規范
2.9.1 Windows字元串函數
2.9.2 資源
2.9.3 確定文本是ANSI型還是Unicode型
2.9.4 在Unicode和ANSI間轉換字元串
第3章內核對象
3.1內核對象的概念
3.1.1 使用計數
3.1.2 安全性
3.2內核對象句柄表
3.2.1 創建內核對象
3.2.2 關閉內核對象
3.3 進程間內核對象的共享
3.3.1 對象句柄的繼承性
3.3.2 改變句柄標志
3.3.3 命名對象
3.3.4終端伺服器命名空間
3.3.5 復制對象句柄
第二部分 完成編程任務
第4章 進程
4.1 編寫第一個Windows應用程序
4.1.1 進程的實例句柄
4.1.2 進程的前一個實例句柄
4.1.3 進程的命令行
4.1.4 進程的環境變數
4.1.5 親緣性
4.1.6 進程的錯誤模式
4.1.7 當前驅動器和目錄
4.1.8當前目錄
4.1.9 系統版本
4.2 CreateProcess函數
4.2.1 pszApplicationName和pszCommandLine
4.2.2 psaProcess、psaThread和bInheritHandles
4.2.3 fdwCreate
4.2.4 pvEnvironment
4.2.5 pszCurDir
4.2.6 psiStartInfo
4.2.7 ppiProcInfo
4.3 進程的終止
4.3.1主線程的入口函數返回
4.3.2 ExitProcess函數
4.3.3 TerminateProcess函數
4.3.4 進程中所有線程的運行終止
4.3.5 進程的運行終止
4.4 子進程
4.5 枚舉系統中運行的進程
第5章 作業
5.1 對作業進程的限制
5.2 把進程放入作業
5.3 終止作業中所有進程的運行
5.4 查詢作業統計信息
5.5 作業通知信息
5.6 JobLab示例應用程序
第6章 線程的基本知識
6.1 創建線程的時機
6.2 何時不能創建線程
6.3 編寫第一個線程函數
6.4 CreateThread函數
6.4.1 psa
6.4.2 cbStack
6.4.3 pfnStartAddr和pvParam
6.4.4 fdwCreate
6.4.5 pdwThreadID
6.5 終止線程
6.5.1 線程函數返回
6.5.2 ExitThread函數
6.5.3TerminateThread函數
6.5.4 在進程終止運行時終止線程
6.5.5 線程終止運行時發生的操作
6.6 線程的一些內部細節
6.7 對於C/C++運行時庫的考慮
6.7.1 Oops—錯誤地調用了CreateThread
6.7.2 不該調用的C/C++運行時庫函數
6.8 線程的身份標識
第7章 線程的調度、優先順序和親緣性
7.1 掛起和恢復線程的運行
7.2 進程的掛起和喚醒
7.3 睡眠
7.4 線程切換
7.5 線程的運行時間
7.6 上下文環境切換
7.7 線程優先順序
7.8 優先順序的抽象說明
7.9 編程優先順序
7.9.1 動態提高線程的優先順序等級
7.9.2 為前台進程調整調度程序
7.9.3 Scheling Lab示例應用程序
7.10 親緣性
第8章 用戶模式下的線程同步
8.1 原子訪問:互鎖函數族
8.2 高速緩存行
8.3 高級線程同步
8.4臨界區
8.4.1臨界區准確的描述
8.4.2臨界區與循環鎖
8.4.3臨界區與錯誤處理
8.4.4 有用的提示和技巧
第9章 線程與內核對象的同步
9.1等待函數
9.2 成功等待的副作用
9.3 事件內核對象
9.4 等待定時器內核對象
9.4.1 用等待定時器給APC項排隊
9.4.2定時器的鬆散特性
9.5信號量內核對象
9.6 互斥內核對象
9.6.1 釋放問題
9.6.2互斥對象與臨界區的比較
9.6.3 Queue應用程序示例
9.7線程同步對象表
9.8 其他線程同步函數
9.8.1 非同步設備I/O
9.8.2WaitForInputIdle
9.8.3 MsgWaitForMultipleObjects(Ex)
9.8.4 WaitForDebugEvent
9.8.5SignalObjectAndWait
第10章線程同步工具包
10.1臨界區的實現:Optex
10.2 創建線程安全的數據類型和反信號量
10.3 單寫入多讀出程序的保護
10.4 WaitForMultipleExpressions函數的實現
第11章線程池
11.1 場景1:非同步調用函數
11.2 場景2:按規定的時間間隔調用函數
11.3 場景3:在某個內核對象變為已通知狀態時調用函數
11.4 場景4:非同步I/O請求運行完成時調用函數
第12章纖程
12.1 使用纖程
12.2 Counter示例應用程序
第三部分內存管理
第13章 Windows內存結構
13.1 進程的虛擬地址空間
13.2 虛擬地址空間分區
13.2.1 無效斷點分配分區(適於Windows 2000和Windows 98)
13.2.2MS-DOS/16位Windows應用程序兼容分區(僅適於Windows 98)
13.2.3 用戶模式分區(適用Windows 2000和Windows 98)
13.2.4 64KB禁止進入分區(僅適用於Windows 2000)
13.2.5 共享的MMF分區(僅適用於Windows 98)
13.2.6 內核模式分區(使用於Windows 2000和Windows 98)
13.3地址空間區域
13.4 在地址空間區域中提交物理存儲器
13.5 物理存儲器和頁面文件
13.6 保護屬性
13.6.1 Copy-On-Write訪問
13.6.2 特殊訪問保護屬性標志
13.7 綜合使用所有元素
13.7.1 區域的內部詳情
13.7.2 Windows 98上地址空間的差異
13.8 數據對齊的重要性
第14章虛擬內存
14.1系統信息
14.2虛擬內存的狀態
14.3 確定地址空間狀態
14.3.1 VMQery函數
14.3.2虛擬內存表應用程序示例
第15章應用程序中虛擬內存的使用
15.1地址空間中保留區域
15.2 在保留區域中提交存儲器
15.3 同時進行保留區域並提交內存
15.4 何時提交物理存儲器
15.5 物理存儲器的回收和地址空間區域的釋放
15.5.1 何時回收物理存儲器
15.5.2虛擬內存分配示例應用程序
15.6 改變保護屬性
15.7 清除物理存儲器內容
15.8 地址窗口擴展(僅使用於Windows 2000)
第16章 線程棧
16.1 Windows 98下的線程棧
16.2 C/C++運行時庫中的棧檢測函數
16.3 Summation示例應用程序
第17章內存映射文件
17.1 內存映射的可執行文件和DLL文件
17.1.1可執行文件或DLL的多個實例之間無法共享的靜態數據
17.1.2 在可執行文件或DLL的多個實例之間共享靜態數據
17.1.3 AppInst示例應用程序
17.2 內存映射數據文件
17.2.1 方法1:一個文件,一個緩存
17.2.2 方法2:兩個文件,一個緩存
17.2.3 方法3:一個文件,兩個緩存
17.2.4 方法4:一個文件,零個緩存
17.3 使用內存映射文件
17.3.1 步驟1:創建或打開文件內核對象
17.3.2 步驟2:創建文件映射內核對象
17.3.3 步驟3:將文件數據映射到進程地址空間
17.3.4 步驟4:進程地址空間中撤銷文件數據的映像
17.3.5 步驟5和步驟6:關閉文件映射對象和文件對象
17.3.6 文件倒序示例應用程序
17.4 使用內存映射文件處理大文件
17.5內存映射文件的一致性
17.6 設定內存映射文件的基地址
17.7 實現內存映射文件的具體細節
17.8 使用內存映射文件在進程之間實現數據共享
17.9 受頁面文件支持的內存映射文件
17.10 稀疏提交的內存映射文件
第18章 堆
18.1 進程的默認堆
18.2 創建輔助堆的原因
18.2.1 保護組件
18.2.2 更有效地管理內存
18.2.3 進行本地訪問
18.2.4 減少線程同步開銷
18.2.5 快速釋放
18.3 創建輔助堆的方法
18.3.1 分配堆中的內存塊
18.3.2 改變內存塊的大小
18.3.3 獲取內存塊的大小
18.3.4 釋放內存塊
18.3.5 銷毀堆
18.3.6 用C++程序使用堆
18.4 其他堆函數
第四部分動態鏈接庫
第19章 DLL基礎
19.1 DLL與進程的地址空間
19.2 DLL的總體運行情況
19.3 創建DLL模塊
19.3.1 導出的真正含義
19.3.2 使用非Visual C++工具創建DLL
19.4 創建可執行模塊
19.5 運行可執行模塊
第20章 DLL高級技術
20.1 顯式載入DLL模塊和符號鏈接
20.1.1 顯式載入DLL模塊
20.1.2 顯式卸載DLL模塊
20.1.3 顯式鏈接到導出符號
20.2 DLL的入口函數
20.2.1 DLL_PROCESS_ATTACH通知
20.2.2 DLL_PROCESS_DETACH通知
20.2.3 DLL_THREAD_ATTACH通知
20.2.4 DLL_THREAD_DETACH通知
20.2.5順序調用DllMain
20.2.6 DllMain和C/C++運行時庫
20.3延遲載入DLL
20.4 函數轉發器
20.5 已知的DLL
20.6 DLL重定向
20.7 模塊的基址重置
20.8 綁定模塊
第21章 線程本地存儲
21.1 動態TLS
21.2 靜態TLS
第22章 DLL注入以及API掛接
22.1 DLL注入:一個例子
22.2 使用注冊表注入DLL
22.3 使用Windows鉤子注入DLL
22.4 使用遠程線程注入DLL
22.4.1 Inject Library示例應用程序
22.4.2 Image Walk DLL
22.5 使用特洛伊DLL注入DLL
22.6 將DLL作為調試程序注入
22.7 在Windows 98平台上使用內存映射文件注入代碼
22.8 使用CreateProcess來注入代碼
22.9 API掛接:一個例子
22.9.1 通過覆寫代碼實現API掛接
22.9.2 通過操作模塊的導入部分來實現API掛接
22.9.3 LastMsgBoxInfo示例應用程序
第五部分結構化異常處理
第23章 終止處理常式
23.1 Funcenstein1
23.2 Funcenstein2
23.3 Funcenstein3
23.4 Funcfurter1
23.5 小測驗:FuncaDoodleDoo
23.6 Funcenstein4
23.7 Funcarama1
23.8 Funcarama2
23.9 Funcarama3
23.10 Funcarama4:最終的邊界
23.11 有關finally塊的說明
23.12 Funcfurter2
23.13 SEH終止示例應用程序
第24章 異常處理程序和軟體異常
24.1 通過例子理解異常過濾器和異常處理程序
24.1.1 Funcmeister1
24.1.2 Funcmeister2
24.2 EXCEPTION_EXECUTE_HANDLER
24.2.1 一些有用的例子
24.2.2 全局展開
24.2.3 暫停全局展開
24.3 EXCEPTION_CONTINUE_EXECUTION
24.4 EXCEPTION_CONTINUE_SEARCH
24.5GetExceptionCode
24.5.1 與內存相關的異常
24.5.2 與異常相關的異常
24.5.3 與調試相關的異常
24.5.4 與整數相關的異常
24.5.5 與浮點數相關的異常
24.6 GetExceptionInformation
24.7軟體異常
第25章 未處理異常和C++異常
25.1 即時調試
25.2 關閉異常消息框
25.2.1 強制進程終止運行
25.2.2 包裝一個線程函數
25.2.3 包裝所有的線程函數
25.2.4 自動調用調試器
25.3 自己調用UnhandledExceptionFilter
25.4 UnhandledExceptionFilter函數的內部細節
25.5 異常和調試程序
25.6 C++異常與結構化異常比較
第六部分 窗口
第26章 窗口消息
26.1 線程的消息隊列
26.2 將消息投送到一個線程的消息隊列中
26.3 向窗口發送消息
26.4 喚醒一個線程
26.4.1 隊列狀態標志
26.4.2 從線程隊列中提取消息的演算法
26.4.3 使用內核對象或者隊列狀態標志來喚醒一個線程
26.5 使用消息發送數據
26.6 Windows處理ANSI/Unicode字元和字元串的方法
第27章 硬體輸入模型與本地輸入狀態
27.1 原始輸入線程
27.2 本地輸入狀態
27.2.1 鍵盤輸入和焦點
27.2.2 滑鼠游標管理
27.3 將虛擬輸入隊列和本地輸入狀態相關聯
27.3.1 LISLab示例應用程序
27.3.2 LISWatch示例應用程序
附錄
附錄A 構建環境
附錄B 消息解析器、子控制項宏以及API宏

㈨ 想學習windows內核編程,誰可以推薦幾本書啊

Windows不開源,沒有真正講它內核的書。
我推薦你學習學習《Windows核心編程》和《深入解析Windows(第四版)》這兩本書,真的很好,很經典,學完之後你會有一種如獲至寶的感覺,寫起內核代碼會得心應手,強烈推薦!

㈩ 如何學好《windows核心編程》

很多人從MFC開始學習,結果常常是一頭霧水,知難而退;也有人毅力堅強,熬過了MFC的陣痛期,最後卻是知其然而不知其所以然,並且思維被限制在MFC的框架之中,遇到稍微有點規模的程序就無從下手了。x0dx0a以我個人的這些年的Windows開發經歷,我建議Windows上的學習路線如下:x0dx0a首先當然是語言的學習,比如C或C++(STL),它是平台無關的x0dx0a然後可以從《Windows程序設計》(byx0dx0aCharlesPetzoldx0dx0a)入門,從最原始的WindowsAPI開始學習x0dx0a接下來可以學習《Windows核心編程》(byx0dx0aJeffreyRichterx0dx0a),它會讓你比較深刻的理解Windows的前台和後台機制x0dx0a學完上面2本書,對Windows系統已經比較熟悉了,再要深入的話可以學下《Windows圖形編程》(by袁鋒)。x0dx0a至此,已經可以用API的方式開發大部分Windows應用程序了,x0dx0a接下來可以學一些常用庫,比如MFC,WTL,ATL等,此時學習MFC和一開始就學習MFC已是截然不同的感覺,彼時痛苦難熬,此時會心一笑。x0dx0a其他就是根據項目需要,專業知識的學習,比如COM技術,網路,D3D等。

閱讀全文

與windows核心編程第4版相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163