51CTO博客开发
基本思路: 最外层有三个文件: Makefile, Make.share, Make.include. 每个工程目录中都有一个Makefile文件. 其中最外层的Makefile是外壳部分.需要调用者修改里面的某些参数,例如编译平台,要编译的子目录集合,每个工程都要用到的头文件,编译参数等,设置完成后,会进入每个子目录,执行当前子目录中的Makefile文件. Make.share和Mak
WNDPROC pfnWndProc = (WNDPROC)LongToPtr(::GetWindowLongPtr(hWnd, GWLP_WNDPROC)); ::SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG)PtrToLong(LAHWndProcCB));
Windows驱动程序的不同例程运行在不同的进程中.它能访问的只是本进程的虚拟地址. 有些虚拟内存是可以交换到文件中的,这类内存被称为分页内存; 而有些虚拟内存永远不会交换到文件中,这些内存被称为非分页内存. 当程序的中断请求级在DISPATCH_LEVEL之上时(包括DISPATCH_LEVEL层),程序只能使用非分页内存,否则将导致蓝屏死机. 局部变量存放在栈(Statck
8086PC中,存储单元的地址用段地址和偏移地址来表示 物理地址=段地址×16+偏移地址 一个数据的二进制形式左移N位,相当于该数据乘以2的N次方 物理地址=段地址<< 4 +偏移地址 一个段的起始地址一定是16的倍数,偏移地址为16位,16位地址的寻址能力为2的16次方=64K,所以一个段的长度最大为64K 给定段地址1000H,用偏移地址来寻址,CPU的寻址范
SSDT : System Service Descriptor Table MMU : Memory Management Unit IRP : I/O Request Packages IRQL : 中断请求级别 HAL : 硬件抽象层
1. WDM驱动在Win7上据说不能用EzDriverInstaller加载了,搜索了半天资料,才发现,win7自带的加载工具也不错. 计算机管理->设备管理器 : 菜单==操作->添加过时硬件.... 也不会再扫描硬件啊 2. WDM驱动加载崩溃,蓝屏信息一掠而过就重启了..这样看来,确实应该把蓝屏后重启的选项关闭. 然后蓝屏信息能看到了,DRIVER_UNLOADED_WIT
很多时候一个流程图就能描述个大概 visio File->Shapes->Flowchart->Basic Flowchart Shapes
地址总线:1位(根)的寻址能力为2个BYTE;N位的寻址能力为2的N次方BYTE的数据. 数据总线:1位(根)可以表示1个bit的数据;N位最多表示N个Bit的数据. 地址是以BYTE为单位划分的,一根地址总线可以指向BYTE[0]也可以指向BYTE[1]; 而数据,是以bit为单位划分的,一根数据总线只能表示一个bit的数据,或者为0或者为1. BTW :
《Windows驱动开发技术详解》 这本书不错,可是在win7上用checked环境编译的第一个nt驱动就遭遇卸载蓝屏实在让人郁闷,好在查到一条消息:把CreateDevice函数的声明从#pragma INITCODE改为#pragma PAGEDCODE就可以修正了。据说根本原因是因为CreateDevice分配字符串是在非分页内存,INTCODE的属性为用完就卸载,导致在Unload函数(
日志:
房租涨价 早餐包子涨价,豆浆涨价,粥都涨价 午餐不知道...哥不吃了还不行......
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号