6.2.3 KMDF驱动实现
其实上面的内容,一直是围绕KMDF进行讲解的。DrvClass内部的DriverEntry成员函数已经讲解过了,现在看看真正的入口函数该如何定义吧。
- extern "C" NTSTATUS DriverEntry(
- IN PDRIVER_OBJECT DriverObject,
- IN PUNICODE_STRING RegistryPath
- )
- {
- // 动态创建对象,此步在后面将被修改
- DrvClass* myDriver = new(NonPagedPool, 'CY01')DrvClass();
- if(myDriver == NULL)return STATUS_UNSUCCESSFUL;
- return myDriver->DriverEntry(DriverObject, RegistryPath);
- }
干净得不得了,驱动程序在加载之初就以快捷无比的速度向我们定义的类靠拢了。至于第1行代码动态创建对象的操作,当前这样实现已经完全可以了,但在后面将被修改,以支持多态。