成人免费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網絡技術

2023-04-14 14:51:24

云計算云優先IT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美国产不卡 | 99综合网 | 在线观看中文字幕 | 国产69精品久久久久777 | 在线永久看片免费的视频 | 韩国av网站在线观看 | 国产日韩欧美一区二区 | 中文字幕在线观看视频网站 | 久久精品播放 | 久在线 | 国产亚洲精品精品国产亚洲综合 | 日韩欧美三区 | 欧美性一区二区三区 | 日韩免费在线 | 国产高清视频一区 | 九九色九九| 一级aaaaaa毛片免费同男同女 | 亚洲在线一区二区 | 一区二区三区精品 | 色吊丝2288sds中文字幕 | 日韩免费毛片视频 | 婷婷去俺也去 | 一级在线观看 | 精品国产青草久久久久96 | 天天干视频网 | 免费在线一区二区三区 | 一区二区成人 | 久久久久久久久久久久久久国产 | 欧美日韩国产精品一区 | 国产精品欧美日韩 | 日韩网 | a国产视频| 国产高清视频 | 免费高潮视频95在线观看网站 | 一区二区三区免费 | 亚洲精色 | 久久国产传媒 | 中文一区| 久久久久亚洲精品 | 天天影视网天天综合色在线播放 | 国产精品一区久久久久 |