本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:
http://blog.csdn.net/zuishikonghuan/article/details/48805945
在上一篇中,我简单介绍了驱动开发的基础知识,这一篇中,将介绍编写一个NT空壳驱动(驱动基础框架)
一、驱动入口
驱动程序的入口点是DriverEntry,此函数的原型是:
extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING pRegistryPath)
参数1:系统发来的驱动对象的指针
参数2:一个内核字符串对象的指针,是驱动的服务名称。(NT驱动是以服务的形式安装的,关于服务的知识可以看我以前的服务开发和SCManager的相关博文)一般这个参数是用于在加载时判断服务名称是不是驱动程序所接受的(如果有这方面的需要)。关于内核字符串我将在之后的博文中讲。
返回值:返回内核状态码,STATUS_SUCCESS表示成功
二、注册驱动卸载函数
在驱动入口中可以注册驱动卸载函数,如果不注册,驱动程序一旦加载就无法卸载ÿ