C语言结构体与内核对象管理,Windows内核对象、用户对象、GDI对象

Windows内核对象、用户对象、GDI对象

内核对象

介绍

内核对象是系统地址空间中的一个内存块,由系统创建并维护。内核对象为内核所拥有,而不为进程所拥有,所以不同进程可以访问同一个内核对象。

内核对象的创建函数汇总必须有安全描述符(PSECURITY_ATTRIBUTES),安全描述符描述了谁创建该内核对象,谁能够访问,谁无权访问等信息。

结构

对象头,对象体(OBJECT_HEADER+OBJECT)。所有类型的对象头结构都是相同的,而结构体部分却各不相同的。

指向对象的指针指向对象体OBJECT部分,若要访问OBJECT_HEADER,需要减去0X18、

OBJECT_HEADER的结构如下:

typedef struct _OBJECT_HEADER

{

DWORD PointerCount; // 指针引用的数目

DWORD HandleCount; // 打开句柄的数目

POBJECT_TYPE ObjectType; //指向类型对象的指针

BYTE NameOffset; //对象名的偏移

BYTE HandleDBOffset; // HANDLE DB的偏移

BYTE QuotaChargesOffset; //QUOTA CHARGES的偏移

BYTE ObjectFlags; // 对象标志

union

{ // 对象标志中OB_FLAG_CREATE_INFO ? ObjectCreateInfo : QuotaBlock

PQUOTA_BLOCK QuotaBlock;

POBJECT_CREATE_INFO ObjectCreateInfo;

};

PSECURITY_DESCRIPTOR SecurityDescriptor;

}OBJECT_HEADER, *POBJECT_HEADER;

核心对象

产生方法

事件对象

HANDLE CreateEvent();

文件对象

HANDLE CreateFile();

文件映射对象

HANDLE CreateFileMapping();

I/O完成对象

HANDLE CreateloCompletionPort();

作业对象

HANDLE CreateJobObject();

信箱对象

HANDLE CreateMailslot();

互斥对象

HANDLE CreateMutex();

管道对象

BOOL CreatePipe();

进程对象

BOOL CreateProcess();

信号量对象

HANDLE Create Semaphore();

线程对象

HANDLE CreateThread();

等待及时将其对象

HANDLE CreateWaitableTimer();

用户对象

用户创建的对象,用户具有使用权。

用户对象

产生方法

销毁方法

快捷键(HACCEL)

CreateAcceleratorTable

DestroyAcceleratorTable

插入标记(Caret)

CreateCaret

DestoryCaret

光标(HCURSOR)

CreateCursor,LoadCursor,LoadImage

DestroyCursor

钩子(HHOOK)

SetWindowsHookEx

UnhookWIndowsHookEx

图标(HICON)

CreateIconIndirect,LoadIcon,LoadImage

DestroyIcon

菜单(HMENU)

CreateMenu,CreatePopupMenu,
LoadMenu,LoadMenuIndirect

DeleteMenu

窗体(HWND)

CreateWindow,CreateWindowEx,
CreateDialogParam,CreateMDIWindow

DestroyWindow

延期窗口位置结构句柄(HDWP)

BeginDeferWindowPos

EndDeferWindowPos

GDI对象

图形对象,用户创建,用户具有使用权。

GDI对象

产生方法

销毁方法

位图(HBITMAP)

CreateBitmap,CreateBitmapIndirect,
CreateCompatibleBitmap,CreateDIBitmap,
CreateDIBSection,CreateDiscardableBitmap

DeleteObject

画刷(HBRUSH)

CreateBrushIndirect,CreateDIBPatternBrush,
CreateDIBPatternBrushPt,CreateHatchBrush,
CreatePatternBrush,CreateSolidBrush

DeleteObject

设备上下文(HDC)

CreateDC

DeleteDC,ReleaseDC

字体(HFONT)

CreateFont,CreateFontIndirect

DeleteObject

内存DC(HDC)

CreateCompatibleDC

DeleteDC

调色板(HPALETTE)

CreatePalette

DeleteObject

画笔(HPEN)

CreatePen,CreatePenIndirect

DeleteObject

区域(HRGN)

CombineRgn,CreateEllipticRgn,
CreateEllipticRgnIndirect,CreatePolygonRgn,
CreatePolyPolygonRgn,CreateRectRgn,
CreateRectRgnIndirect,CreateRoundRectRgn

DeleteObject

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值