Advertisement

Windows driver supporting operator overloading for new and delete in C++

阅读量:

首先提供代码部分,因其相对直观易懂,后续将另行补充详细解析内容

复制代码
    #include<ntddk.h>
    
    #pragma warning (disable: 4996)
    
    void* __cdecl operator new(size_t size)
    {
    	KdPrint(("进入全局的new\n"));
    	return ExAllocatePool(PagedPool, size);
    }
    
    void* __cdecl operator new[](size_t size)
    {
    	KdPrint(("进入全局的new\n"));
    	return ExAllocatePool(PagedPool, size);
    }
    
    void __cdecl operator delete(void* p, size_t size)
    {
    	KdPrint(("进入全局的delete\n"));
    	if (p != NULL)
    	{
    		ExFreePool(p);
    	}
    }
    
    void __cdecl operator delete[](void* p)
    {
    	KdPrin

全部评论 (0)

还没有任何评论哟~