Wednesday, October 28, 2015

list of env vars in windows

%cd% : current dir
%ProgramFiles%
%ProgramFiles(x86)%

view and set env var in bat

echo %ProgramFiles%

set ProgFiles=%ProgramFiles%
if exist "%ProgramFiles(x86)%" set ProgFiles=%ProgramFiles(x86)%

Sources文件

环境变量
$BASEDIR: DDK安装路径,如D:\ProgramFiles\WinDDK7600.16385.0
$_NTDRIVE !!DDK安装路径的驱动器目录,如D:\ProgramFiles\WinDDK7600.16385.0,则$NTDRIVE=D:
$_NTROOT $BASEDIR-$NTDRIVE,如$BASEDIR=D:\ProgramFiles\WinDDK7600.16385.0,则\ProgramFiles\WinDDK7600.16385.0
例1:
TARGETNAME=HelloDDK
TARGETTYPE=DRIVER
TARGETPATH=d:\t  //生成的sys文件放在TARGETPATH下
INCLUDES=$(BASEDIR)\inc;\
         $(BASEDIR)\inc\ddk;\
SOURCES=Driver.cpp\
例2:
TARGETNAME=HelloWDM
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
TARGETPATH=d:\t
INCLUDES=$(BASEDIR)\inc;\
         $(BASEDIR)\inc\ddk;\
SOURCES=HelloWDM.cpp\

Tuesday, October 27, 2015

吐槽大温2015新交规

2015新交规应该是异常严厉了,照这个罚法我裤衩都穿不起了 以下列几条猛的,平时总犯。
0 改住址超过10天通知DMV(Driver Licensing Office): CA$214
1 在双闪的校车后面不停要罚: CA$675
2 右转弯红灯不停: CA$533
3 非法U形转(U-Turn):CA$284
4. 超速:低于16迈(CA$224), 高于16迈(CA$338)
5. 开慢了: CA$328
6. 停牌越线:CA$284
7. 占公交站:CA$976
8. 开汽车大灯不关:CA$382
...

Sunday, October 25, 2015

NT式驱动和WDM

设备管理器中打开显示隐藏设备开关,就能在非即插即用中列出所有NT式驱程,显示的名称并非设备名称,也非设备的符号链接名称,而是CreateService函数中的参数lpServName。 AddDevice是WDM独有的,由PNP函数回调;而NT式驱动只能在DrvEntry调用IoCreateDev(即驱动加载以后设备也创建好了)

句柄之于Windows

内核对象都有安全属性,所有CreateXXX(lpSecurityAttr)函数都不会直接返回指针给用户,这就是句柄存在的意义。进程内的句柄值是唯一的,所以CloseHandle(hid)会准确地关闭相应的内核对象。内核对象都对应一个数据结构(比如KEVENT),通过句柄可以获得对象的指针(比如PKEVENT),方法是使用ObReferenceObByHandle(当然也可以通过内核对象的名称获取对象指针)。

Thursday, October 22, 2015

系统线程

系统线程隶属于系统进程(例如进程号为0的SystmIdleProc,csrss.exe,System等等),使用PsCreateSystemThread可以创建系统线程(这个函数也可以创建系统进程).