驱动程序中重载new与delete

全局重载跟类中重载

//全局new操作符 void * __cdecl operator new(size_t size,POOL_TYPE PoolType=PagedPool) { KdPrint(("global operator new\n")); KdPrint(("Allocate size :%d\n",size)); return ExAllocatePool(PagedPool,size); } //全局delete操作符 void __cdecl operator delete(void* pointer) { KdPrint(("Global delete operator\n")); ExFreePool(pointer); } class TestClass { public: //构造函数 TestClass() { KdPrint(("TestClass::TestClass()\n")); } //析构函数 ~TestClass() { KdPrint(("TestClass::~TestClass()\n")); } //类中的new操作符 void* operator new(size_t size,POOL_TYPE PoolType=PagedPool) { KdPrint(("TestClass::new\n")); KdPrint(("Allocate size :%d\n",size)); return ExAllocatePool(PoolType,size); } //类中的delete操作符 void operator delete(void* pointer) { KdPrint(("TestClass::delete\n")); ExFreePool(pointer); } private: char buffer[1024]; }; void TestNewOperator() { TestClass* pTestClass = new TestClass; delete pTestClass; pTestClass = new(NonPagedPool) TestClass; delete pTestClass; char *pBuffer = new(PagedPool) char[100]; delete []pBuffer; pBuffer = new(NonPagedPool) char[100]; delete []pBuffer; }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值