I've take a look to boost::pool, tell me if I understand well.
 
Unfortunately, I never used it myself, so I'm afraid I can't enlighten you more than the library reference.
 
void MyMemoryObj::Write(long pData, long byte_to_write)
{
 // In windows I write the data pointed to pData into the buffer with:
 RtlMoveMemory pMem, pData, byte_to_write
}

Is there a way to copy memory in boost?
 
Why boost? It's just std::copy()
Or if you insist on working with plain C pointers, instead of c++ iterators, then use plain C memcpy()