Windows核心编程随笔

最近在学习Windows底层原理,准备写个系列文章分享给大家,Michael Li(微软实习期间的Mentor,为人超好)在知乎回答过一些关于学习Windows原理的书籍推荐,大家可以去拜读其中一本来入门。我是先从《Windows核心编程》开始了解一些Windows底层管理程序与硬件交互的原理。

Windows核心编程(第5版)电子书的配套代码

学习前需要理解一些系统专业词汇的概念,比如:系统资源、内存管理、句柄、内核态/用户态、Hook、事件、消息等。不然后续对Windows底层原理的理解会有些误差和盲区,例如很容易将系统资源和CPU资源(CPU使用率)相混淆。

有哪些内核对象:

令牌对象 Token

事件对象 Event

文件对象 File

文件映射对象 Mapping File

线程对象 Thread

时钟对象 Timer

线程池对象 ThreadPool

I/O完成端对象 Completion port

工作对象 Job

邮槽对象 Mailslot

互斥对象 Mutex

管道对象 Pipe

进程对象 Process

信号灯对象 Semaphore

...

内核对象的结构:

公用部分(安全描述符、计数器) + 个性部分

1082520-20190926095811829-529832749.png

句柄、Windows数据类型:

WORD:16位无符号整型数据

DWORD:32位无符号整型数据(DWORD32)

DWORD64:64位无符号整型数据

INT:32位有符号整型数据类型

INT_PTR:指向INT数据类型的指针类型

INT32:32位符号整型

INT64:64位符号整型

UINT:无符号INT

LONG:32位符号整型(LONG32)

ULONG:无符号LONG

LONGLONG:64位符号整型(LONG64)

SHORT:无符号短整型(16位)

LPARAM:消息的L参数

WPARAM:消息的W参数

HANDLE:对象的句柄,最基本的句柄类型

HICON:图标的句柄

HINSTANCE:程序实例的句柄

HKEY:注册表键的句柄

HMODULE:模块的句柄

HWND:窗口的句柄

LPSTR:字符指针,也就是字符串变量

LPCSTR:字符串常量

LPCTSTR:根据环境配置,如果定义了UNICODE宏,则是LPCWSTR类型,否则则为LPCSTR类型

LPCWSTR:UNICODE字符串常量

LPDWORD:指向DWORD类型数据的指针

CHAR:8比特字节

TCHAR:如果定义了UNICODE,则为WCHAR,否则为CHAR

UCHAR:无符号CHAR

WCHAR:16位Unicode字符

BOOL:布尔型变量

BYTE:字节类型(8位)

CONST:常量

FLOAT:浮点数据类型

SIZE_T:表示内存大小,以字节为单位,其最大值是CPU最大寻址范围

VOID:无类型,相当于标准C语言中的void

WINAPI:Windows API的函数调用方式,常见于SDK头文件中对API函数的声明中,相当于_stdcall(更严格地说,这不是数据类型,而是一种函数调用约定

BYTE 8位 unsigned char

CHAR 8位 char

BOOL 16位 int

DWORD 32位 unsigned long int

HANDLE 一般句柄

HWND 32位 long int

LONG 32位 long int

LPCSTR 指向字符串的 const 指针

LPSTR 指向字符串的指针

SHORT 16位短整数

UINT 32位无符号长整数

WORD 16位无符号短整数

BITMAP 独立于逻辑设备的位图(DIB)

LOGBRUSH 逻辑刷

LOGFONT 逻辑字体

LOGPEN 逻辑笔

MSG 窗口消息

POINT 点

RECT 矩形

WNDCLASS 窗口类结构

hBitmap 为保存DIB图像信息的内存域的句柄

hBrush 当画图时用于填满设备范围的刷子的句柄

hCtl 子窗口控件的句柄

hCursor 鼠标光标句柄

hDc 设备描述表句柄

hDlg 文本字体的句柄

hFont 文本字体的句柄

hIcon 图标的句柄

hInstance windows应用程序实例句柄

hMem 内存块句柄

hMenu 菜单或弹出式菜单句柄

hModule 模式的句柄,常用于从一可执行文件获取资源数据

hPalette 颜色调色板

hPen 当在设备上画图时用于指明线型的笔的句柄

hRgn 在窗口上剪贴一块区域的句柄

hTask 独立于已执行的任务的句柄

hWnd 窗口句柄

转载于:https://www.cnblogs.com/ckjbug/p/11589106.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值