在驱动编程中,处理字符串最好用UNICODE_STRING,UNICODE_STRING是一个结构,查看MSDN如下:
typedef struct _UNICODE_STRING{
USHORT length;\\字符串的长度
USHORT MaxnumLength;\\整个缓冲区的最大长度
PWSTR Buffer;\\缓冲
}UNICODE_STRING *PUNICODE_STRING;
字符串不是以00结尾,而是用一个结构来指定字符串的长度。
DDK提供了一个函数用于初始化字符串
VOID RtlInitUnicodeString(
IN OUT PUNICODE_STRING DestiantionString,//定义的字符串结构指针
IN PCWSTR SourceString//字符串
);
阅读全文
字符串, 学习, 程序, 笔记, 编写, 驱动
编译环境用xp下VC6+DDK
新建一个文件夹当作工程目录,路径是E:\lingdux\
从别的工程copy过来两个文件,
一个是makefile,它用来指定文件之间的依赖关系,确定项目中哪些文件时需要重新编译的,那些事已经编译过的。里面的内容不用改,直接默认就OK
另一个是source,它用来保存一些配置信息,内容如下:
TARGETNAME=lingdux 这句用来指定目标程序存放的路径
TARGETTYPE=DRIVER 这句是指定目标类型,DRIVER为驱动程序
TARGETPATH=Driver 这句指定编译时的中间文件存放的路径
SOURCES=lingdux.c 这句指定了源文件
在工程目录想创建一个空文件命名lingdux.c,双击用VC6打开,开始写代码~!
遵循C语言,只有一个入口函数DriverEntry,有两个参数
NTSTATUS Driver Entry(IN PDRIVER_OBJECT DriverObject, 第一个是PDRIVER_OBJECT类型 系统进程调用的驱动对象
IN OUNICODE_STRING RegistryPath) 第二个是IN OUNICODE_STRING类型 字符串类型,注册路径
返回值类型为NTSTATUS,系统状态。
输出函数为DbgPrint(),包含的头文件是ntddk.h
阅读全文
学习, 程序, 笔记, 编写, 驱动