Windows 核心编程 _ 内核对象:同步异步设备IO
概述 在Windows应用程序中,我们可以给每个线程指定一个处理器,这样在多个处理器的机器上就可以同时执行多个操作,从而提高吞吐量。 但是,当一个线程发出一个同步I/O请求的时候,它就会被临时挂起,知道设备完成I/O请求为止。此类挂起会影响性能,因为线程卡在那里不能做别的事情。 ...
概述 在Windows应用程序中,我们可以给每个线程指定一个处理器,这样在多个处理器的机器上就可以同时执行多个操作,从而提高吞吐量。 但是,当一个线程发出一个同步I/O请求的时候,它就会被临时挂起,知道设备完成I/O请求为止。此类挂起会影响性能,因为线程卡在那里不能做别的事情。 ...
概述 DllMain 是 Windows 动态链接库(DLL)的入口函数,类似于可执行程序的 main 函数 它在以下四种情况下会被系统自动调用: DLL 被加载到进程内存 DLL 被卸载 进程创建新线程 线程退出 参数 保留参数 lpReserved: DLL_PROCESS_...
进程的关联性 通常,进程中的线程可以在主机的任何CPU上执行。 然而,也可以强迫线程在可用CPU的一个子集上运行,这一点叫“处理器关联性”。 子进程继承了其父进程的关联性。 进程的错误模式 与每个进程都关联了一组标志。 这些标志的作用是让系统知道进程如何相应严重错误,包括磁盘介质...
高效调试 Dump 的通用步骤与方法 准备工作 确保符号文件(.pdb)可用 符号文件必须与崩溃时的程序版本完全一致(编译时间、代码、优化选项一致) 收集必要文件: MiniDump 文件(.dmp) 崩溃时的可执行文件(.exe)及依赖的库(.dll) 源代码(与编译版本一致)...
锚点布局 size size="width, height" width height full 代表高度或者宽度和父窗口的客户区大小相等 -1 根据窗口内容自动计算窗口大小 int pos | 代表参考父窗口的中心 % 代表在父窗口的百分比 [ 用于X时,参...
数字表达式语法 基本语法规则 十六进制 前缀:0x 或 0n 例如:0x3A, 0n3A 十进制 直接写数字,无需前缀 八进制 前缀:0o 或 0 例如:0o72, 072 二进制 前缀:0b 例如:0b111010 支持操作符 加减乘除,取模 按位与,按位或,按位异或,按位非 ...
简述 在Windows中,DLL(动态链接库)可以请求操作系统卸载自己,但这样做是有风险的 要确保在DLL被卸载后不再访问任何DLL内部的资源或函数 FreeLibrary 如果在test.dll的某个函数里面,获取到test.dll的句柄后,调用FreeLibrary释放了te...
调试堆内存 启用用户堆栈跟踪(User Stack Trace) 方法一 通过 gflags.exe 为目标进程添加堆栈跟踪标志: 方法二: 打开Global Flags,设置如图示: 相关问题 在实践过程中,发现勾选Enable page heap之后,虽然点击上图的应用确认之...
启动流程 BasicEntry 作为dll导出接口 PrepareEnv 先构建运行时 ntdll.dll kernel32.dll 获取当前dll句柄 EXE被当做DLL加载时,首先修复重定位数据,此时的全局变量等还无法访问 因为Windows操作系统不会修复当做DLL加载的E...
创建动画 窗口 这个内容的设计是,作为一个组件存在(DLL),其他一个地方,会在比较早的时机统一调用这些插件的同名接口。 调用的时候会创建UI对象,并在这个UI对象的初始化里面,创建下面的窗口对象,并指定该对象位置,调用该对象初始化函数InitControls,设置该对象的可见与...
搜索当前标签