OpenCL Pinned Memory with CL_MEM_COPY_HOST_PTR?

Is it possible tp create a pinned memory buffer using CL_MEM_COPY_HOST_PTR?
In the NVIDIA OpenCL Best Practices Guide the procedure for sending data to the GPU using pinned memory is:

1.)creating buffer
cmPinnedBufIn = clCreateBuffer(cxGPUContext, CL_MEM_READ_ONLY |CL_MEM_ALLOC_HOST_PTR, memSize,
NULL, NULL);
cmDevBufIn = clCreateBuffer(cxGPUContext, CL_MEM_READ_ONLY,
memSize, NULL, NULL);

2.)creating a pointer
cDataIn = (unsigned char*)clEnqueueMapBuffer(cqCommandQue, cmPinnedBufIn, CL_TRUE, CL_MAP_WRITE, 0, memSize, 0, NULL, NULL, NULL);

3.) storing data into memory pointed at by cDataIn
for(unsigned int i = 0; i < memSize; i++)
{
cDataIn[i] = (unsigned char)(i & 0xff);
}

4.) sending data to the GPU
clEnqueueWriteBuffer(cqCommandQue, cmDevBufIn, CL_FALSE, 0, szBuffBytes, cDataIn , 0, NULL, NULL);

Is it possible to create a pinned memory already filled with data using CL_MEM_COPY_HOST_PTR like this:

pinned_buffer = cl::Buffer( _context, CL_MEM_READ_ONLY | CL_MEM_ALLOC_HOST_PTR | CL_MEM_COPY_HOST_PTR, 32 * sizeof(cl_float), in_matrix.get(), &err );