读书人

C++开发驱动中的重载有关问题

发布时间: 2013-01-02 13:08:44 作者: rapoo

C++开发驱动中的重载问题
template <POOL_TYPE PoolType> class CAllocator
{
public:

void* operator new(unsigned int size)
{
return ExAllocatePoolWithTag(PoolType, size, OSNTAG);
}

void* operator new[](unsigned int size)
{
return ExAllocatePoolWithTag(PoolType, size, OSNTAG);
}

PVOID operator new (size_t Size, void *addr)
{
return addr;
}

VOID operator delete(PVOID pMemory)
{
if(pMemory!=NULL)
ExFreePool(pMemory);
}

VOID operator delete[](PVOID pMemory)
{
if(pMemory!=NULL)
ExFreePool(pMemory);
}
};

typedef CAllocator<NonPagedPool> CNPAllocator;
typedef CAllocator<PagedPool> CPAllocator;

读书人网 >C++

热点推荐