成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么 SetWindowsHookEx 采用 HINSTANCE 參數?

系統 Windows
由于大多數程序的實例句柄都隨時可用,因此這是更自然的選擇。(更不用說它將保持與 16 位 Windows 的源代碼兼容性,這是試圖讓人們有興趣將他們的代碼移植到 Win32 時的一個重要標準。)

有開發者問了這樣一個問題:既然 SetWindowsHookEx 的第一個參數總是會被轉換為一個文件名,那為什么它的傳參類型是 HINSTANCE 呢?這豈不是多此一舉?

原因是這樣的:在 16 位 Windows 系統上,它不是這樣工作的。16 位 Windows 上根本就沒有 “鉤子注入” 的概念。
所有 16 位 Windows 應用程序都是運行在同一個地址空間,所以就沒有必要將代碼注入到其他程序中。所以,就沒有必要將實例句柄轉換為一個文件名來注入代碼。
實際的工作原理是這樣的:實例句柄將會被用來增加引用計數,從而鉤子函數就不會被意外釋放掉。當鉤子被卸載的時候,模塊的引用計數會自動減一。

即使到了 32 位 Windows,窗口管理器需要實例句柄才能將函數指針轉換回 RVA,以便在將模塊加載到另一個進程時可以找到函數。

如果你傳遞了帶有模塊路徑的 LPCWSTR,則窗口管理器無論如何都必須執行 GetModuleHandle 來恢復實例句柄。

由于大多數程序的實例句柄都隨時可用,因此這是更自然的選擇。(更不用說它將保持與 16 位 Windows 的源代碼兼容性,這是試圖讓人們有興趣將他們的代碼移植到 Win32 時的一個重要標準。)

總結

做 Windows 世界的良好公民,不要隨意使用鉤子。除非迫不得已。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-06-26 07:31:29

中文編程編碼

2015-08-27 16:48:11

FirefoxChrome

2019-12-30 08:34:40

ZabbixPrometheus監控

2022-04-02 09:32:06

大數據數據智能企業

2022-10-28 10:01:43

云應用云計算

2020-04-14 10:09:22

混合云公共云云計算

2021-07-15 10:17:24

混合云云計算云遷移

2018-05-31 21:50:12

云計算銀行安全

2012-12-16 15:26:49

超級計算機LinuxHPC

2023-10-09 08:24:54

IPC機制Binder

2020-11-12 18:13:21

辦公

2021-03-23 09:00:00

比特幣加密貨幣安全

2018-03-30 11:00:05

混合云云計算公共云

2021-03-05 13:02:31

物聯網IoT

2020-08-23 18:08:29

JavaScript命名參數位置參數

2022-03-28 11:51:00

深度學習機器學習模型

2015-09-08 16:53:37

生物識別人臉Windows 10

2024-07-12 15:45:13

2019-11-26 14:30:11

5G網絡技術

2021-09-15 09:39:56

公共云云遷移云端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 香蕉久久久| 亚洲一区二区三区高清 | 狠狠久 | 国产精品色 | 日本不卡视频 | 亚洲91av| 欧美一级片在线观看 | 国产片侵犯亲女视频播放 | 亚洲精品久久久9婷婷中文字幕 | 国产精品永久在线观看 | 欧美精品一区二区三区在线 | 日韩欧美在线观看视频 | 日本亚洲一区 | 日韩高清一区 | 在线免费观看视频黄 | www久久 | 一区二区三区免费 | 欧美aaaa视频 | 中文字幕男人的天堂 | 黄色一级视频 | 一区二区在线观看免费视频 | 久久免费香蕉视频 | 国产精品久久久久久久岛一牛影视 | 狠狠色综合欧美激情 | 麻豆91av| 国产在线观看一区二区三区 | caoporn国产| 久久精品91久久久久久再现 | 网站国产 | 五月婷婷在线播放 | 国产成人精品一区二区三区在线 | 欧美一区二区在线观看 | 日韩av在线中文字幕 | 亚洲精品乱码久久久久久按摩观 | 日本精品网站 | 超碰成人免费 | 欧美精品二区三区 | 日韩欧美国产精品一区 | 一区二区三区视频在线观看 | 成人精品一区亚洲午夜久久久 | 91久久国产综合久久 |