[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

     经部  史类  子部  集部  古籍管理  古籍工具书  四库全书  古籍善本影音本  中国藏书
  •  文化

     文化评述  文化随笔  文化理论  传统文化  世界各国文化  文化史  地域文化  神秘文化  文化研究  民俗文化  文化产业  民族文化  书的起源/书店  非物质文化遗产  文化事业  文化交流  比较文化学
  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

     执业资格考试用书  室内设计/装潢装修  标准/规范  建筑科学  建筑外观设计  建筑施工与监理  城乡规划/市政工程  园林景观/环境艺术  工程经济与管理  建筑史与建筑文化  建筑教材/教辅  英文原版书-建筑
  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

     园艺  植物保护  畜牧/狩猎/蚕/蜂  林业  动物医学  农作物  农学(农艺学)  水产/渔业  农业工程  农业基础科学  农林音像
  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

  •  保健/养生

  •  体育/运动

  •  手工/DIY

  •  休闲/爱好

  •  英文原版书

  •  港台图书

  •  研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学

  •  音乐
     音乐理论

     声乐  通俗音乐  音乐欣赏  钢琴  二胡  小提琴
  • Windows核心編程(第5版 中文限量版)
    該商品所屬分類:計算機/網絡 -> 程序設計
    【市場價】
    1268-1838
    【優惠價】
    793-1149
    【作者】 美傑弗裡·李希特 
    【所屬類別】 圖書  計算機/網絡  程序設計  其他 
    【出版社】清華大學出版社 
    【ISBN】9787302609322
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302609322
    作者:[美]傑弗裡·李希特

    出版社:清華大學出版社
    出版時間:2022年10月 

        
        
    "

    產品特色

    編輯推薦

    為特別響應廣大忠實讀者的需求,榮獲“中國書刊協會全行業暢銷書”稱號的《Windows核心編程》低調推出了中文限量版。
    全新亮相的《Windows核心編程》(第5版 中文限量版)一共包含5卷,分別采用5大具有典型國風的色彩作為區分。
    為了滿足不同年齡段的讀者多層次的閱讀需求,為了幫助讀者化整為零,化繁為簡,為了盡可能營造出“慢讀”的意境,從而幫助讀者更容易進入心流並落實四到:眼到、心到、腦到和手到,《Windows核心編程》更是在內容和視覺上也進行了精心的設計、更新和修訂。當然,重中之重仍然是更準確無誤的內容。

     
    內容簡介

    《Windows核心編程(第5版 中文限量版)》是一本經典的Windows核心編程指南,從第1版到第5版,引領著數十萬程序員走入Windows開發陣營,培養了大批精英。
    作為Windows開發人員的參考,《Windows核心編程(第5版 中文限量版)》是為打算理解Windows的C和C 程序員精心設計的。第5版全面覆蓋Windows XP,Windows Vista和Windows Server 2008中的170個新增函數和Windows特性。書中還講解了Windows繫統如何使用這些特性,我們開發的應用程序又如何充分使用這些特性,如何自行創建新的特性。


     

    作者簡介
    傑弗裡·李希特
    (Jeffrey Richter)
    知名Windows和.NET技術專家,專業暢銷書作者。他的《Windows核心編程》和《CLR》繫列培育了好幾代軟件開發人員。他是Wintellect公司的聯合創始人,也是MSDN雜志.NET專欄的特邀編輯。1999年開始,他就以技術顧問的方式與.NET框架開發團隊緊密合作,共同經歷了.NET框架的孕育與誕生,對.NET思想的領悟、對.NET的細節熟稔,是其他任何作者難以企及的,他是.NET領域當之無愧的一面旗幟。傑弗裡目前供職於微軟。
    (Christophe Nasarre)
    MSDN雜志撰稿人,Business Objects的軟件架構師和開發部門領導,該公司致力於通過商務智能解決方案來提升決策能力和績效。

    傑弗裡·李希特
    (Jeffrey Richter)
    知名Windows和.NET技術專家,專業暢銷書作者。他的《Windows核心編程》和《CLR》繫列培育了好幾代軟件開發人員。他是Wintellect公司的聯合創始人,也是MSDN雜志.NET專欄的特邀編輯。1999年開始,他就以技術顧問的方式與.NET框架開發團隊緊密合作,共同經歷了.NET框架的孕育與誕生,對.NET思想的領悟、對.NET的細節熟稔,是其他任何作者難以企及的,他是.NET領域當之無愧的一面旗幟。傑弗裡目前供職於微軟。


    克裡斯托弗·納薩雷
    (Christophe Nasarre)
    MSDN雜志撰稿人,Business Objects的軟件架構師和開發部門領導,該公司致力於通過商務智能解決方案來提升決策能力和績效。


    周   靖
    微軟MVP(有價值專家),技術型資深譯者。涉獵廣泛,具有深厚的技術功底和良好的文學素養。早期痴迷於硬件,曾多年擔任《微型計算機》雜志特約作者。繼而潛心鑽研程序設計並在這方面積累了豐富的經驗。翻譯風格嚴謹、準確、樸實、流暢,深受讀者好評。代表譯著有《C 入門經典》(版第10版)、《Windows核心編程》(版第5版)、《CLR via C》(版第4版)和《Visual C#從入門到精通》(版第10版)等。

    目錄

    第I 部分 必 備 知 識
    第1 章 錯誤處理 3
    第2 章 字符和字符串處理 11
    第3 章 內核對像 35
    第II 部分 工 作 機 理
    第4 章 進程 75
    第5 章 作業 139
    第6 章 線程基礎 161
    第7 章 線程調度、優先級和親和性 191
    第8 章 用戶模式下的線程同步 231
    第9 章 用內核對像進行線程同步 271
    第10 章 同步和異步設備I/O 325
    第11 章 Windows 線程池 381


    第I 部分 必 備 知 識
    第1 章 錯誤處理     3
    第2 章 字符和字符串處理    11
    第3 章 內核對像        35
    第II 部分 工 作 機 理
    第4 章 進程        75
    第5 章 作業      139
    第6 章 線程基礎       161
    第7 章 線程調度、優先級和親和性        191
    第8 章 用戶模式下的線程同步    231
    第9 章 用內核對像進行線程同步       271
    第10 章 同步和異步設備I/O      325
    第11 章 Windows 線程池       381
    第12 章 纖程     407
    第III 部分 內 存 管 理
    第13 章 Windows 內存架構     417
    第14 章 探索虛擬內存      443
    第15 章 在應用程序中使用虛擬內存       469
    第16 章 線程棧        505
    第17 章 內存映射文件      519
    第18 章 堆       581
    第IV 部分 動態鏈接庫
    第19 章 DLL 基礎     601
    第20 章DLL 高級技術  619
    第21 章 線程局部存儲      667
    第22 章 DLL 注入和API 攔截    675
    第V 部分 結構化異常處理
    第23 章 終止處理程序       739
    第24 章 異常處理程序與軟件異常     761
    第25 章 未處理異常、向量化異常處理與C 異常   791
    第26 章 錯誤報告與應用程序恢復     821
    附 錄
    附錄A 生成環境       851
    附錄B 消息處理宏、子控件宏和API 宏     865
    索引         871


    詳細目錄
    第I 部分 必 備 知 識
    第1 章 錯誤處理        3
    1.1 定義自己的錯誤碼     7
    1.2 ErrorShow 示例程序        8
    第2 章 字符和字符串處理   11
    2.1 字符編碼     12
    2.2 ANSI 字符和Unicode 字符與字符串數據類型         14
    2.3 Windows 中的Unicode 和ANSI 函數         16
    2.4 C 運行庫中的Unicode 函數和ANSI 函數    19
    2.5 C 運行庫中的安全字符串函數      19
    2.4.1 初識新的安全字符串函數         20
    2.4.2 字符串處理時如何獲得更多控制     24
    2.4.3 Windows 字符串函數        26
    2.6 為何要用Unicode         27
    2.7 推薦的字符和字符串處理方式      28
    2.8 Unicode 與ANSI 字符串轉換       29
    2.8.1 導出ANSI 和Unicode DLL 函數     31
    2.8.2 判斷文本是ANSI 還是Unicode       33
    第3 章 內核對像       35
    3.1 何為內核對像         35
    3.1.1 使用計數      37
    3.1.2 安全性         37
    3.2 進程的內核對像句柄表        40
    3.2.1 創建內核對像          41
    3.2.2 關閉內核對像          43
    3.3 跨進程邊界共享內核對像     46
    3.3.1 使用對像句柄繼承           46
    3.3.2 改變句柄的標志       50
    3.3.3 為對像命名        51
    3.3.4 終端服務命名空間           56
    3.3.5 專有命名空間          57
    3.3.6 復制對像句柄          66
    第II 部分 工 作 機 理
    第4 章 進程     75
    4.1 編寫個Windows 應用程序    76
    4.1.1 進程實例句柄          81
    4.1.2 進程前一個實例的句柄     84
    4.1.3 進程的命令行          84
    4.1.4 進程的環境變量       86
    4.1.5 進程的親和性          92
    4.1.6 進程的錯誤模式       92
    4.1.7 進程當前所在的驅動器和目錄        93
    4.1.8 進程的當前目錄       94
    4.1.9 繫統版本      95
    4.2 CreateProcess 函數         99
    4.2.1 pszApplicationName 參數和pszCommandLine 參數    99
    4.2.2 參數psaProcess,psaThread 和bInheritHandles       101
    4.2.3 fdwCreate 參數       104
    4.2.4 pvEnvironment 參數        106
    4.2.5 pszCurDir 參數       106
    4.2.6 psiStartInfo 參數      106
    4.2.7 ppiProcInfo 參數      113
    4.3 終止進程         116
    4.3.1 主線程的入口點函數返回       116
    4.3.2 ExitProcess 函數      116
    4.3.3 TerminateProcess 函數      118
    4.3.4 當進程中的所有線程終止時         119
    4.3.5 當進程終止運行時         119
    4.4 子進程      120
    4.5 管理員以標準用戶權限運行       122
    4.5.1 自動提升進程權限         126
    4.5.2 手動提升進程權限         127
    4.5.3 何為當前權限上下文       129
    4.5.4 枚舉繫統中正在運行的進程         131
    4.5.5 Process Information 示例程序         132
    第5 章 作業          139
    5.1 對作業中的進程施加限制          144
    5.2 將進程放入作業中       151
    5.3 終止作業中的所有線程       152
    5.4 作業通知         156
    5.5 Job Lab 示例程序         158
    第6 章 線程基礎      161
    6.1 何時創建線程        162
    6.2 何時不應該創建線程         164
    6.3 編寫個線程函數         165
    6.4 CreateThread 函數        166
    6.4.1 psa 參數      167
    6.4.2 cbStackSize 參數     167
    6.4.3 pfnStartAddr 參數和pvParam 參數       168
    6.4.4 dwCreateFlags 參數         169
    6.4.5 pdwThreadID 參數         169
    6.5 終止運行線程        170
    6.5.1 線程函數返回         170
    6.5.2 ExitThread 函數       170
    6.5.3 TerminateThread 函數      171
    6.5.4 進程終止運行時      171
    6.5.5 線程終止運行時      172
    6.6 線程內幕         173
    6.7 C/C 運行庫注意事項       175
    6.7.1 用_beginthreadex 而不要用CreateThread 創建線程      185
    6.7.2 不應該調用的C/C 運行庫函數       186
    6.8 了解自己的身份     187
    第7 章 線程調度、優先級和親和性  191
    7.1 線程的掛起和恢復       193
    7.2 進程的掛起和恢復       194
    7.3 睡眠         196
    7.4 切換到另一個線程       196
    7.5 在超線程CPU 上切換到另一個線程         197
    7.6 線程的執行時間     197
    7.7 在實際上下文中談CONTEXT 結構         202
    7.8 線程優先級           207
    7.9 從抽像角度看優先級         208
    7.10 優先級編程         211
    7.10.1 動態提升線程優先級     214
    7.10.2 為前臺進程調整調度程序      216
    7.10.3 調度I/O 請求優先級      216
    7.10.4 Scheduling Lab 示例程序       218
    7.11 親和性     224
    第8 章 用戶模式下的線程同步      231
    8.1 原子訪問:Interlocked 繫列函數        232
    8.2 高速緩存行           239
    8.3 高級線程同步        241
    8.4 關鍵段      243
    8.4.1 關鍵段:細節         246
    8.4.2 關鍵段和自旋鎖      249
    8.4.3 關鍵段和錯誤處理         250
    8.5 Slim 讀/ 寫鎖        251
    8.6 條件變量         254
    8.6.1 Queue 示例程序      255
    8.6.2 停止線程時的死鎖問題          265
    8.6.3 一些有用的技巧和技術          267
    第9 章 用內核對像進行線程同步    271
    9.1 等待函數         274
    9.2 等待成功所引起的副作用          276
    9.3 事件內核對像        278
    9.4 可等待的計時器內核對像          289
    9.4.1 讓可等待的計時器入隊APC 調用       293
    9.4.2 計時器未盡事宜      295
    9.5 信號量內核對像     296
    9.6 互斥量內核對像     299
    9.6.1 遺棄問題         301
    9.6.2 互斥量與關鍵段的比較          302
    9.6.3 Queue 示例程序      302
    9.7 線程同步對像速查表         312
    9.8 其他線程同步函數       313
    9.8.1 異步設備I/O          313
    9.8.2 WaitForInputIdle 函數      314
    9.8.3 MsgWaitForMultipleObjects(Ex) 函數         315
    9.8.4 WaitForDebugEvent 函數         315
    9.8.5 SignalObjectAndWait 函數       316
    9.8.6 使用等待鏈遍歷API 來檢測死鎖   317
    第10 章 同步和異步設備I/O         325
    10.1 打開和關閉設備         326
    10.2 使用文件設備       335
    10.2.1 取得文件的大小           335
    10.2.2 定位文件指針       337
    10.2.3 設置文件尾          339
    10.3 執行同步設備I/O           339
    10.3.1 將數據回寫到設備        340
    10.3.2 同步I/O 取消        340
    10.4 異步設備I/O 基礎           342
    10.4.1 OVERLAPPED 結構      343
    10.4.2 異步設備I/O 的注意事項       345
    10.4.3 取消隊列中的設備I/O 請求         347
    10.5 接收I/O 請求完成通知     348
    10.5.1 觸發設備內核對像        348
    10.5.2 觸發事件內核對像        350
    10.5.3 可提醒I/O           353
    10.5.4 I/O 完成端口         359
    10.5.5 模擬已完成的I/O 請求         371
    第11 章 Windows 線程池      381
    11.1 情形1:異步調用函數      382
    11.1.1 顯式控制工作項           383
    11.1.2 Batch 示例程序      385
    11.2 情形2:定時調用函數      389
    11.3 情形3:在內核對像觸發時調用函數       395
    11.4 情形4:在異步I/O 請求完成時調用函數      397
    11.5 回調函數的終止操作        399
    11.5.1 對線程池進行定制        400
    11.5.2 得體地銷毀線程池:清理組        403
    第12 章 纖程        407
    第III 部分 內 存 管 理
    第13 章 Windows 內存架構        417
    13.1 進程的虛擬地址空間        417
    13.2 虛擬地址空間的分區        418
    13.2.1 空指針賦值分區           419
    13.2.2 用戶模式分區       419
    13.3 地址空間中的區域           422
    13.4 為區域調撥物理存儲        423
    13.5 物理存儲和分頁文件        424
    13.6 頁面保護屬性         428
    13.6.1 寫時復制        429
    13.6.2 一些特殊的訪問保護屬性標志     430
    13.7 實例分析       430
    13.8 數據對齊的重要性           438
    第14 章 探索虛擬內存    443
    14.1 繫統信息       443
    14.2 虛擬內存狀態       453
    14.3 NUMA 機器中的內存管理       455
    14.4 確定地址空間的狀態        458
    14.4.1 VMQuery 函數      460
    14.4.2 示例程序:虛擬內存映射      466
    第15 章 在應用程序中使用虛擬內存      469
    15.1 預訂地址空間區域           470
    15.2 為預訂的區域調撥物理存儲      472
    15.3 同時預訂和調撥物理存儲         473
    15.4 何時調撥物理存儲           474
    15.5 撤銷調撥物理存儲並釋放區域         476
    15.5.1 何時撤銷調撥物理存儲         477
    15.5.2 虛擬內存分配示例程序         478
    15.6 更改保護屬性       487
    15.7 重置物理存儲的內容        488
    15.8 地址窗口擴展       492
    第16 章 線程棧      505
    16.1 C/C 運行庫的棧檢查函數      510
    16.2 Summation 示例程序        512
    第17 章 內存映射文件    519
    17.1 映射到內存的可執行文件和DLL      520
    17.1.1 同一個可執行文件或DLL 的多個實例不會共享靜態數據         521
    17.1.2 在同一個可執行文件或DLL 的多個實例間共享靜態數據         523
    17.1.3 Application Instances 示例程序     529
    17.2 映射到內存的數據文件     533
    17.2.1 方法1:一個文件,一個緩衝區   533
    17.2.2 方法2:兩個文件,一個緩衝區   534
    17.2.3 方法3:一個文件,兩個緩衝區   534
    17.2.4 方法4:一個文件,零個緩衝區   534
    17.3 使用內存映射文件           535
    17.3.1 第1 步:創建或打開文件內核對像         535
    17.3.2 第2 步:創建文件映射內核對像       536
    17.3.3 第3 步:將文件的數據映射到進程的地址空間     540
    17.3.4 第4 步:從進程的地址空間撤銷對文件數據的映射         543
    17.3.5 第5 步和第6 步:關閉文件映射對像和文件對像       545
    17.3.6 File Reverse 示例程序           546
    17.4 用內存映射文件處理大文件      553
    17.5 內存映射文件和一致性     555
    17.6 為內存映射文件指定基地址      556
    17.7 內存映射文件的實現細節         557
    17.8 用內存映射文件在進程間共享數據         558
    17.9 以分頁文件作為後備存儲的內存映射文件     559
    17.10 稀疏調撥的內存映射文件       565
    第18 章 堆    581
    18.1 進程的默認堆       582
    18.2 為什麼要創建額外的堆     583
    18.2.1 對組件進行保護           583
    18.2.2 更高效的內存管理        584
    18.2.3 局部訪問        584
    18.2.4 避免線程同步的開銷     585
    18.2.5 快速釋放        585
    18.3 如何創建額外的堆           585
    18.3.1 從堆中分配內存塊        588
    18.3.2 調整內存塊的大小        589
    18.3.3 獲得內存塊的大小        590
    18.3.4 釋放內存塊          590
    18.3.5 銷毀堆      591
    18.3.6 在C 中使用堆          591
    18.4 其他堆函數         594
    第IV 部分 動態鏈接庫
    第19 章 DLL 基礎        601
    19.1 DLL 和進程的地址空間           602
    19.2 縱觀全局       605
    19.2.1 生成DLL 模塊      607
    19.2.2 生成可執行模塊           613
    19.2.3 運行可執行模塊          616
    第20 章 DLL 高級技術    619
    20.1 DLL 模塊的顯式加載和符號鏈接      619
    20.1.1 顯式加載DLL 模塊       621
    20.1.2 顯式卸載DLL 模塊       624
    20.1.3 顯式鏈接到導出的符號         627
    20.2 DLL 的入口點函數          628
    20.2.1 DLL_PROCESS_ATTACH 通知    630
    20.2.2 DLL_PROCESS_DETACH 通知    631
    20.2.3 DLL_THREAD_ATTACH 通知     633
    20.2.4 DLL_THREAD_DETACH 通知     634
    20.2.5 DllMain 的序列化調用         635
    20.2.6 DllMain 和C/C 運行庫      638
    20.3 延遲加載DLL      639
    20.4 函數轉發器         652
    20.5 已知的DLL         652
    20.6 DLL 重定向         654
    20.7 模塊的基址重定位           655
    20.8 模塊的綁定         662
    第21 章 線程局部存儲    667
    21.1 動態TLS       668
    21.2 靜態TLS       673
    第22 章 DLL 注入和API 攔截      675
    22.1 DLL 注入的一個例子       676
    22.2 使用注冊表來注入DLL           678
    22.3 使用Windows 掛鉤來注入DLL        680
    22.4 使用遠程線程來注入DLL        694
    22.4.1 Inject Library 示例程序         698
    22.4.2 Image Walk DLL           705
    22.5 使用木馬DLL 來注入DLL       708
    22.6 將DLL 作為調試器來注入       708
    22.7 使用CreateProcess 來注入代碼         709
    22.8 API 攔截的一個例子        709
    22.8.1 通過覆蓋代碼來攔截API      710
    22.8.2 通過修改模塊的導入段來攔截API         711
    22.8.3 Last MessageBox Info 示例程序     715
    第V 部分 結構化異常處理
    第23 章 終止處理程序    739
    第24 章 異常處理程序與軟件異常   761
    24.1 通過實例理解異常過濾程序和異常處理程序       762
    24.1.1 Funcmeister1 函數         762
    24.1.2 Funcmeister2 函數         763
    24.2 EXCEPTION_EXECUTE_HANDLER      765
    24.2.1 一些有用的例子           766
    24.2.2 全局展開        769
    24.2.3 停止全局展開       772
    24.3 EXCEPTION_CONTINUE_EXECUTION       774
    24.4 EXCEPTION_CONTINUE_SEARCH       776
    24.5 GetExceptionCode           778
    24.6 GetExceptionInformation 函數           783
    24.7 軟件異常       787
    第25 章 未處理異常、向量化異常處理與C 異常      791
    25.1 UnhandledExceptionFilter 函數詳解         794
    25.2 即時調試       799
    25.3 Spreadsheet 示例程序       802
    25.4 向量化異常和繼續處理程序      814
    25.5 C 異常與結構化異常的比較        815
    25.6 異常與調試器       817
    第26 章 錯誤報告與應用程序恢復   821
    26.1 Windows 錯誤報告控制臺         821
    26.2 可編程的Windows 錯誤報告    824
    26.3 定制進程中的所有問題報告      826
    26.4 問題報告的創建與定制     828
    26.4.1 創建自定義問題報告     830
    26.4.2 設置報告參數:WerReportSetParameter     832
    26.4.3 將小型轉儲文件放入報告:WerReportAddDump    832
    26.4.4 將任意文件放入報告:WerReportAddFile       833
    26.4.5 修改對話框文本:WerReportSetUIOption       834
    26.4.6 提交錯誤報告:WerReportSubmit       835
    26.4.7 關閉問題報告:WerReportCloseHandle     836
    26.4.8 Customized WER 示例程序         837
    26.5 應用程序的自動重啟與恢復      845
    26.5.1 應用程序的自動重啟     845
    26.5.2 應用程序恢復的支持           846
    附 錄
    附錄A 生成環境      851
    附錄B 消息處理宏、子控件宏和API 宏       865
    索引      871

    前言

    Windows是一個復雜的操作繫統。它提供的特性非常豐富,對任何個人而言,要想完全透徹地理解整個繫統幾乎不可能。其復雜性也使我們很難確定應該把主要精力集中在哪些地方。萬丈高樓平地起,就我個人而言,我始終傾向於從底層開始,深刻理解繫統的基本構件。一旦掌握了基本的東西,就很容易向自己的知識庫中逐步添加更多高層的東西。所以本書將集中介紹Windows的基本構件和基礎概念,對於建構和實現Windows應用程序來說,這些都是必須掌握的。簡而言之,本書介紹了各種Windows特性,以及如何通過C和C 語言來使用這些特性。
    雖然本書不會涵蓋某些Windows概念,比如組件對像模型(Component Object Model,COM),但COM是在進程、線程、內存管理、DLL、線程本地存儲區以及Unicode等基本構件的基礎上構建的。如果了解了這些基本構件,那麼要理解COM就相當於理解如何使用這些基本構件。對於那些試圖跳過這些基本構件,悉心鑽研COM體繫結構的朋友,我深表同情。要完善知識庫,他們還有很長一段路要走,這必然會對他們的代碼和軟件開發進度產生很大的負面影響。


    Windows是一個復雜的操作繫統。它提供的特性非常豐富,對任何個人而言,要想完全透徹地理解整個繫統幾乎不可能。其復雜性也使我們很難確定應該把主要精力集中在哪些地方。萬丈高樓平地起,就我個人而言,我始終傾向於從底層開始,深刻理解繫統的基本構件。一旦掌握了基本的東西,就很容易向自己的知識庫中逐步添加更多高層的東西。所以本書將集中介紹Windows的基本構件和基礎概念,對於建構和實現Windows應用程序來說,這些都是必須掌握的。簡而言之,本書介紹了各種Windows特性,以及如何通過C和C 語言來使用這些特性。
    雖然本書不會涵蓋某些Windows概念,比如組件對像模型(Component Object Model,COM),但COM是在進程、線程、內存管理、DLL、線程本地存儲區以及Unicode等基本構件的基礎上構建的。如果了解了這些基本構件,那麼要理解COM就相當於理解如何使用這些基本構件。對於那些試圖跳過這些基本構件,悉心鑽研COM體繫結構的朋友,我深表同情。要完善知識庫,他們還有很長一段路要走,這必然會對他們的代碼和軟件開發進度產生很大的負面影響。
    微軟的.NET Framework的公共語言運行時(Common Language Runtime,CLR)是本書未涉及的另一種技術(感興趣的讀者可以閱讀我的另一本專著《CLR via C#》第4版)。然而,CLR是作為動態鏈接庫(DLL)中的COM對像實現的,它在一個進程中加載,並使用線程來執行代碼,以操作在內存中托管的Unicode字符串。所以,本書所介紹的基本構件同樣有助於軟件開發人員編寫托管代碼。另外,借助於CLR的平臺調用(Platform Invocation,P/Invoke)技術,可以調用本書所介紹的各種Windows API。
    所以,這就是本書的全部,每個Windows開發人員(至少在我看來)都應密切關注的基本Windows構件。討論每個構件時,我還描述了繫統如何使用這些模塊,以及你自己的應用程序如何好地利用這些構件。我在很多章中展示了如何創建自己的構件。這些構件通常以通用函數或C 類的形式實現,它們將一組Windows構件組合在一起,形成一個遠遠大於其各部分之和的整體。
    64位Windows操作繫統
    微軟發售支持x86 CPU體繫結構的32位Windows操作繫統已有多年歷史。如今,微軟還提供支持x64和IA-64 CPU體繫結構的64位Windows操作繫統。基於這些64位CPU體繫結構的計算機迅速為市場所接受。事實上,在不遠的將來,所有臺式機和服務器都將使用64位CPU。為此,微軟已發表聲明,Windows Server 2008將是後一款32位版本的Windows操作繫統!對於開發人員而言,現在是時候集中精力讓自己的應用程序能在64位Windows操作繫統上正常運行了。本書全面覆蓋相關的知識,讓開發人員的應用程序能夠在64位Windows操作繫統(同時也包括32位Windows)上正常運行。
    應用程序從64位地址空間所獲得的的好處是能輕松處理大量數據,因為應用程序的進程不再受限於2GB可用地址空間。即使應用程序並不需要所有這些空間,Windows本身也可以利用這個顯然大得多的地址空間(約8TB)來加快運行速度。
    下面簡單列出了對於64位Windows操作繫統需要關注的內容。
    64位Windows內核是32位Windows內核的移植版本。這意味著以前所學的32位Windows所有細節和難點均適用於64位Windows。事實上,微軟已修改了32位Windows的源代碼,使其既可以編譯生成32位繫統,也可以編譯生成64位繫統。兩個繫統使用同一個源代碼庫,所以新特性和bug修復會同時應用於兩個繫統。
    由於內核使用相同的代碼和基本概念,所以在兩個平臺上的Windows API是一樣的。這意味著我們不必重新設計或實現應用程序,就能讓它在64位Windows操作繫統上運行。隻需要對源代碼做少許改動,然後重新生成應用程序即可。
    為了保持向後兼容性,64位Windows操作繫統是可以執行32位應用程序的。但是,如果應用程序是作為64位應用程序來生成的,那麼它的性能會有顯著的提高。
    因為移植32位代碼非常容易,所以64位Windows操作繫統中已經有很多的設備驅動程序、工具和應用程序了。遺憾的是,Visual Studio是32位的,而且微軟似乎還並不急於將其移植為64位的。不過,好消息是32位的Visual Studio在64位Windows操作繫統上的確運行得非常好,隻不過其數據結構的地址空間有限。而且,我們還可以用Visual Studio來調試64位應用程序。
    並不需要學習太多新知識。大多數數據類型仍然保持32位寬度,這是很多讀者很高興看到的。它們是INT、DWORD、LONG和BOOL等。事實上,大多數情況下我們隻需要擔心指針和句柄,因為它們現在變成64位了。
    對於如何將現有源代碼修改為64位,微軟已經提供了相當豐富的信息,所以不打算在本書深入這些細節。不過,在我寫每一章的時候,我都會考慮到64位Windows操作繫統。
    在適當的時候,我會加入64位Windows的特定信息。同時,我還在64位Windows中編譯和測試了本書中的所有示例程序。所以,如果讀者效仿書中的示例程序和我的做法,那麼創建一個能夠為32位或64位Windows編譯的源代碼庫應該完全不成問題。
    《Windows核心編程(第5版)》中有哪些新內容
    在過去,本書曾經被冠以“Advanced NT”“Advanced Windows”和“Programming Application for Windows”等名字。為保持這個傳統,本書的第5版也有一個新的書名,即Windows via C/C 。新的書名表示本書是為打算理解Windows的C和C 程序員設計的。第5版全面覆蓋了Windows XP,Windows Vista和Windows Server 2008中的170個新增函數和Windows特性。
    有些章已全部重寫,例如第11章,這一章解釋了如何使用新的線程池API。第4版原有的各章都已大幅修訂,以突出新特性。例如,第4章現已包含了對用戶賬戶控制(User Account Control)的介紹,第8章現在介紹了新的同步機制。
    同時,我還更全面地介紹了C/C 運行庫如何與操作繫統交互,特別強調安全性和異常處理。後,第5版新增兩章內容,解釋了I/O操作的工作原理以及如何深入理解新的Windows錯誤報告(WER)繫統,此繫統改變了應用程序錯誤報告和應用程序恢復的方式。
    除了新的結構和更深入的介紹,這一版還新增了大量內容。第5版著重在以下幾個方面進行了更深入的講解。
    Windows Vista和Windows Server 2008新特性 當然,除非本書涵蓋了Windows XP、Windows Vista、Windows Server 2008和C/C 運行庫的所有新特性,否則它就算不上是真正的修訂。第5版著重強調安全字符串函數、內核對像的變化(例如命名空間和邊界描述符)、線程和進程屬性列表、線程和I/O優先級調度、取消同步I/O、向量異常處理等方面的信息。
    64位Windows支持 本書旨在解決64位Windows的特定問題,所有示例程序都在64位Windows上生成並測試過。
    使用C 語言 示例程序使用C 語言,所需要的代碼更少,而且C 的邏輯更清楚,也更容易理解。
    可重用的代碼 我盡量讓源代碼既通用,又可重用。這樣一來,讀者隻需對單獨的函數或整個C 類稍作改動或根本無需改動,就能在自己的應用程序中使用它們。C 語言的使用進一步增強了代碼的可重用性。
    ProcessInfo實用工具 前幾版一直都有的這個特殊示例程序已被增強,可以顯示進程所有者、命令行和UAC相關詳情。
    LockCop實用工具 這個示例程序是新增的。它顯示了繫統中有哪些進程正在運行。一旦選定了一個進程,這個工具就會列出進程中的所有線程,以及每個線程是被哪種同步機制阻塞,同時明確指出死鎖的情況。
    API攔截 我介紹了更新後的一些C 類,它們使對進程中的一個或所有模塊進行API攔截(API hooking)變得相當簡單。我的代碼甚至攔截了對LoadLibrary和GetProcAddress的運行時調用,使你的API掛勾得以強制執行。
    結構化異常處理有所增強 我重寫並重新組織了結構化異常處理(SEH)的內容。對未處理異常進行了更多的討論,並討論了如何根據自己的需求自定義Windows錯誤報告。
    示例代碼和繫統需求
    本書示例程序可從本書中文版網站下載,網址如下:
    https://bookzhou.com
    為了構建示例程序,讀者需要安裝Visual Studio 2005或更新版本,Microsoft Platform SDK for Windows Vista和Windows Server 2008(有些版本的Visual Studio自帶這個SDK)。
    此外,要運行示例程序,還需要一臺已安裝Windows Vista(或更新的版本)的計算機(或虛
    擬機)。
    本書支持
    我們已經盡力確保本書及其配套內容的準確性。我們會將收集到的勘誤或改動添加到一個勘誤表中,讀者可從以下網址下載這個勘誤表:
    https://bookzhou.com
    問題和評論
    有關本書或者網絡配套內容的任何評論、問題或想法,或者通過訪問上述網址仍然未能解決的疑惑,請通過電子郵件發送給微軟出版社:
    mspinput@microsoft.com

















     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部