GDI对象存储和查看lib文件导出函数

本文介绍了Windows NT/2000系统中GDI对象的存储结构,包括用户模式和内核模式的对象,以及GDI句柄表的详细结构。同时,讨论了GdiQueryTable函数用于查询GDI对象表,但通过Dumpbin工具检查发现Gdi32.lib库并未导出该函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GDI对象存储
    C++对象通常存储在栈、堆或者由应用程序通过定制的新操作符分配的任何地址空间里。基本上,它总是存放在用户模式的地址空间里,除非我们正在讨论内核模式设备驱动程序。
    Windows NT/2000的图形系统可分为三个部分:用户模式客户端的GDI32.DLL;内核模式的图形引擎WIN32K.SYS;各种内核模式中的设备驱动程序。
    在Windows NT/2000下,GDI对象通常有两个存储部分,即用户模式对象和内核模式对象。用户模式对象提供快速访问,内核模式对象提供信息独立处理的存储。
    GDI句柄表一般存储在内核模式的地址空间里以使图形引擎能够很容易地访问它。通过一定的技巧,将为每个使用GDI的进程在用户模式存储空间里建立表的只读视图。
    GDI句柄表的每一个入口都是一个16字节的结构,

typedef struct
{
void * pKernel;
unsigned short nProcess;
unsigned short nCount;
unsigned short nUpper;
unsigned short nType;
void * pUser;
}GdiTableCell;

    GDI对象有一个指向它的内核模式对象的指针、一个指向其用户模式对象的指针、一个进程ID、一个种类的计数、一个类型标识符;
    存在着GDI对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值