6.2.3 KMDF驱动实现

2013-10-07 13:20:28 · 作者: · 浏览: 93

6.2.3  KMDF驱动实现

其实上面的内容,一直是围绕KMDF进行讲解的。DrvClass内部的DriverEntry成员函数已经讲解过了,现在看看真正的入口函数该如何定义吧。

  1. extern "C" NTSTATUS DriverEntry(  
  2.      IN PDRIVER_OBJECT  DriverObject,  
  3.      IN PUNICODE_STRING  RegistryPath  
  4.      )  
  5. {  
  6.     // 动态创建对象,此步在后面将被修改  
  7.     DrvClass* myDriver = new(NonPagedPool, 'CY01')DrvClass();  
  8.     if(myDriver == NULL)return STATUS_UNSUCCESSFUL;  
  9.     return myDriver->DriverEntry(DriverObject, RegistryPath);  

干净得不得了,驱动程序在加载之初就以快捷无比的速度向我们定义的类靠拢了。至于第1行代码动态创建对象的操作,当前这样实现已经完全可以了,但在后面将被修改,以支持多态。