几何尺寸与公差论坛

 找回密码
 注册
查看: 11469|回复: 0

<Windows核心编程>学习日志

[复制链接]
发表于 2007-5-20 08:50:41 | 显示全部楼层 |阅读模式
<Windows核心编程>




3

1)从注册表中读取RegOpenKeyEx

KEY_QUERY_VALUE //查询

KEY_ALL_ACCESS // 不安全

2)创建内核对象的所有函数几乎都有一个参数,用于设定安全属性

3WaitForInpuIdle

让父进程等待子进程完成初始化


第八章

8.1 原子访问:互锁 P173

InterLockedExchangedAdd(PLONG plAddend, LONG lIncrement);

//以原子操作方式来递增

8.2 高速缓存行 P177

始终都让单个线程来访问数据(函数参数和局部变量是确保做到这一点的最好方法).

线程亲缘性

8.3 高级线程同步 P179

不应该在单处理器计算机上使用循环锁,甚至在多处理器计算机上,也小心使用他们.

Volatile BOOL g_fFinishedCalculation;

8.4 关键代码段 P180

CRITICAL_SECTION g_cs;

EnterCriticalSection (&g_cs);

LeaveCriticalSection (&g_cs);

8.5 关键代码段准确的描述 P182

InitializeCritialSection (PCRITICAL_SECTION pcs);

EnterCritialSection(PCRITICAL_SECTION pcs);

VOID DeleteCriticalSection(PCRITICAL_SECTION pcs);

//删除对该结构中的成员变量








1) 堆栈 P452

ANSI字符串转换成Unicode字符串时,
ANSI
函数必须分配一个内存块,以便放置Unicode版本的字符串。





2) 为什么要创建辅助堆栈? P452

1.保护组件

2.更加有效地进行内存管理

3.进行本地访问

4.减少线程同步的开销

5.迅速释放

3)如何创建辅助堆栈? P454

HeapCreate()

4)从堆栈中分配内存块 P455

HeapAlloc

VirtualAlloc

5)内存映射 P397
CreateFileMapping和MapViewOfFile

6)缓存 P409

7)虚拟内存的状态 P333

GlobalMemoryStatus()

GlobalMemoryStatusEx(); // 内存大于4G

8)确定地址空间的状态 P336

VirtualQuery

VirtualQueryEx // 查询另一个进程的内存信息

9)两个应用程序之间共享数据? P300
采用预编译指令#pragma data_seg在DLL文件中创建一个新的段,并且在DEF文件中把该段的属性设置为“shared”
#pragma   pack

10)虚拟地址空间? P300

11)获得3GB用户方式分区

BOOT.ini

12)数据对其的重要性 P319






2) 23

1) 内联函数 P575

2) 产生内联(inline)代码,而不是生成调用函数的代码
25

1) 虚拟内存技术

2) 结构化异常

3) 异常代码在winError.h文件中定义

4) 异常写到日志或弹出一消息框

5) 与内存有关的异常

EXCEPTION_ACCESS_VIOLATION 线程试图对一个虚地址进行读和写,但没有做适当的存取。




附录B

B.1 消息分流器 P686

// 扩展代码的可读性

B.2 Pragma消息帮助宏 P676

#Pragma chMSG(Fix this later)




实用技巧

1) @err,hr

放在watch窗口,将显示线程的最后错误代码的号码和该错误的英文描述.

2) Error Loopup

Visual Studio 小实用程序将错误代号转换成相应的文本描述.










效率

1) 字符串的转换,需要占用大量内存,统一使用Unicode字符串

COM仅支持Unicode
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-22 01:25 , Processed in 0.040381 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表