Returns a cleared ByteBuffer that can store capacity bytes.
Releases a ByteBuffer back into the pool for re-use later on.
Releases a ByteBuffer back into the pool for re-use later on. This isn't
strictly required, but if direct is true, then you most certainly
should.