Thi*_*tti 18
即使没有得到官方支持,您也可以使用C++作为Windows内核开发的开发语言.您应该了解以下事项:
你必须定义new和delete运算符以映射到ExAllocatePoolWithTag和ExFreePool.
尽量避免使用虚函数.似乎无法控制对象的vtable的位置,如果它位于可分页部分并且您使用IRQL> = DISPATCH_LEVEL调用代码,则可能会产生意外结果.
如果在IRQL> = DISPATCH_LEVEL上使用之前仍需要使用虚拟方法表而不是锁定.rdata段.
除了这些限制之外,您还可以使用C++进行驱动程序开发.