Windows内核函数(3) - 内核模式下的注册表操作2010-12-13 13:37:16|分类:驱动编程|标签:statushkeyulsize注册kdprint|举报|字号订阅注册表里的几个概念:1.创建关闭注册表项NTSTATUSZwCreateKey(OUTPHANDLEKeyHandl...
1.ASCII字符串和宽字符串打印一个ASCII字符串:CHAR* string = “Hello”;KdPrint((“%s\n”, string));//s为小写打印一个宽字符字符串WCHAR* string = L”Hello”;KdPrint((“%S\n”,string));//s为大写2...
近来在看 《寒江独钓 windows内核编程》,看到键盘过滤部分,记下笔记,仅供参考,有理解不对之处,还望大家指正。
现在来说一下传统型键盘过滤,就是把自己的设备对象绑定在KbdClass设备对象之上。那么发送到KbdClass的IRP都会先经过自己的设备对象,我们可以在读派遣函数中设置完成例程,当IRP完成后在完成历程中得到按键信息。
KbdClass被称为键盘类驱动,在windows中,类...
分类:
其他好文 时间:
2014-07-30 17:27:54
阅读次数:
269
线程同步技术:
原子锁
临界区(段)
互斥
事件
信号量(线程示例时已经使用过)
可等候定时器
使用范围:原子锁
效率: 原子锁>临界区(用户态)>互斥(内核态)
一般用临界区。
//等候多个信号
DWORD WaitForMultipleObjects(
DWORD nCount, // number of han...
分类:
编程语言 时间:
2014-07-29 13:14:26
阅读次数:
295
windows库程序:
静态库:
源代码被链接到调用的程序或动态库,被调用时,代码最少有1份,文件后缀.LIB
动态库: 函数被程序或其他动态库调用,被调用时,代码只有1份,文件后缀.DLL
静态库(C语言):
创建时,选择文本类型文件,输入Clib.c,设置输出路径 ../lib/Clib.lib
int Clib_add(int a,int b)
{
retur...
分类:
编程语言 时间:
2014-07-28 15:59:43
阅读次数:
320
windows系统磁盘文件存储:
分区格式:NTFS / FAT32
GetSystemDirectory();//获取系统路径
GetWindowsDirectory();//获取windows路径
GetCurrentDirectory();//获取当前工作目录
SetCurrentDirectory();//修改当前工作目录
CreateFile/ReadFile/WriteFi...
分类:
编程语言 时间:
2014-07-28 15:58:13
阅读次数:
393
Windows进程
进程是一个容器,包含程序执行需要的代码、数据、资源等信息,
windows进程的特点:
每个进程都有自己的ID号
每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。
每个进程都有自己的安全属性
每个进程至少包含一个线程。
获取和释放环境信息
GetEnvironmentStrings
FreeEnvironmentStrings
获取或设置 本程序...
分类:
编程语言 时间:
2014-07-28 15:55:23
阅读次数:
283
可视化操作创建的菜单,加载到窗口。
方法1:注册时指定菜单
wce.lpszMenuName=MAKEINTRESOURCE(IDR_MENUMAIN);//数字形式的资源ID转换为字符串形式的资源
方法2:
//创建窗口时加载菜单资源
HMENU menumain= LoadMenu(g_hinstance,MAKEINTRESOURCE(IDR_MENUMAIN));
menuma...
分类:
编程语言 时间:
2014-07-27 23:56:59
阅读次数:
438
//设置字体颜色
SetTextColor(hdc,RGB(255,0,0));
//窗口背景
//wce.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
//wce.hbrBackground=CreateSolidBrush(RGB(0,0,255));
//设置字体背景
SetBkColor(hdc,RGB(0,0,200));
...
分类:
编程语言 时间:
2014-07-27 23:56:39
阅读次数:
589
1.ASCII字符串和宽字符串打印一个ASCII字符串:CHAR* string = “Hello”;KdPrint((“%s\n”, string));//s为小写打印一个宽字符字符串WCHAR* string = L”Hello”;KdPrint((“%S\n”,string));//s为大写2...