- 最后登录
- 2023-8-16
- 在线时间
- 1686 小时
- 威望
- 2135
- 金钱
- 50532
- 注册时间
- 2011-10-12
- 阅读权限
- 200
- 帖子
- 5207
- 精华
- 39
- 积分
- 2135
- UID
- 2
|
2#
发表于 2011-12-31 12:32:00
KGLHD is not Function
KGL -> Kernel Generic Library
KGLHD Library cache Handle structure
KGLOB - Object structure
KGLNA - Name structure
KGLHD -> KGLOB
-> KGLNA -> KGLNA->KGLNA
Object Handles
All objects that are stored in the library cache are accessed by using handles (kglhd). The handle stores the name of the object, its namespace, some flags that are used to get information about the object (if the object is read-only, remote or local, in CGA memory, marked to be kept pinned in memory, and so on), and statistical information regarding the object. The handle is also used by the library cache to keep a list of all users who have locks, pins, or references to the object as well as those who are waiting to acquire locks or pins on it.
Object handles are placed in linked lists according to a hashing algorithm, which is a function of the object’s name and namespace.
When a process requests an object, the library cache manager applies the hashing algorithm to determine the linked list (hash bucket) to be searched. If the object is in cache, the appropriate object handle will be found. It is possible for the handle to be in memory but the object heaps have been aged out. The object handle will tell us that. In this case, the required object heaps are reloaded. Finally, it is possible that the object handle is not found. In this case, a new one must be allocated, it must be populated with the object information, and the object heaps must be loaded.
Handles: kglhd
Files kgl.c kgl2.c kgl.h |
|