ucos里的hook函数是什么?为什么要有这些函数?干什么用的?

来源:百度知道 编辑:UC知道 时间:2024/05/25 11:43:05
如题
请详细解释一下

我的理解:ucos 里的hook函数用于当发生指定事件时,调用的函数,类似回调。比如OSTCBInitHook是当任务控制块初始化时会调用的函数,帮助用户扩展ucos的功能

钩子HOOK函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。当然,这么做也是需要付出一定的代价的。由于多了这么一道处理过程,系统性能会受到一定的影响,所以大家在必要的时候才使用“钩子”,并在使用完毕及时将其删除。
首先让我们看看HOOK函数是怎么安装、调用和删除的。应用程序通常是调用SetWindowsHookEx()函数来进行安装的,其函数的原型如下:

SetWindowsHookEx(

Int idHook;

HOOKPROC lpfn;

HINSTANCE hMod;

DWORD dwThreadId;

);

参数说明:

idHook 是”钩子”的类型,”钩子”的类型一共有13种,具体如下表:

“钩子”类型
解释

WH_CALLWNDPROC
系统将消息发送到指定窗口之前的“钩子”

WH_CALLWNDPROCRET
消息已经在窗口中处理的“钩子”

WH_CBT
基于计算机培训的“钩子”

WH_DEBUG
差错“钩子”

WH_FOREGROUNDIDLE
前台空闲窗口“钩子”

WH_GETMESSAGE
接收消息投递的“钩子”

WH_JOURNALPLAYBACK
回放以前通过WH_JOURNALRECORD“钩子”记录的输入消息

WH_JOURNALRECORD
输入消息记录“钩子”

WH_KEYBOARD
键盘消息“钩子”