memobj  
            Specifies the memory object being queried.
 param_name  
            
                        Specifies the information to query. The list of supported
                        param_name types and the
                        information returned in param_value by
                        clGetMemObjectInfo is described
                        in the table below.
                    
| cl_mem_info | Return Type | Info. returned in param_value | 
|---|---|---|
| CL_MEM_TYPE | cl_mem_object_type | Returns one of the following values: 
                                           
                                          cl_image_desc.image_type argument value if
                                           
                                             | 
| CL_MEM_FLAGS | cl_mem_flags | Returns the flagsargument value
                                      specified whenmemobjis created with
                                      clCreateBuffer,
                                      clCreateSubBuffer,
                                      clCreateImage.
                                      or
                                      clCreatePipe.
                                      Ifmemobjis a sub-buffer the memory
                                      access qualifiers inherited from parent buffer is also
                                      returned. | 
| CL_MEM_SIZE | size_t | Return actual size of the data store associated with memobjin bytes. | 
| CL_MEM_HOST_PTR | void * | 
                                      If  
                                      If  | 
| CL_MEM_MAP_COUNT | cl_uint | Map count. The map count returned should be considered immediately stale. It is unsuitable for general use in applications. This feature is provided for debugging. | 
| CL_MEM_REFERENCE_COUNT | cl_uint | Return memobjreference count. The reference count returned should
                                        be considered immediately stale. It is unsuitable for general use in
                                        applications. This feature is provided for identifying memory leaks. | 
| CL_MEM_CONTEXT | cl_context | Return context specified when memory object is created.
                                        If memobjis created using
                                        clCreateSubBuffer, the context
                                        associated with the memory object specified as thebufferargument to
                                        clCreateSubBuffer is returned. | 
| CL_MEM_ASSOCIATED_-
MEMOBJECT | cl_mem | Return memory object from which memobjis created.
                                          This returns the memory object specified
                                          as  
                                            This returns the mem_object specified in 
                                            cl_image_desc if  Otherwise a NULL value is returned. | 
| CL_MEM_OFFSET | size_t | Return offset if memobjis a sub-buffer object created using
                                        clCreateSubBuffer.
                                            This returns 0 if  | 
| CL_MEM_USES_SVM_POINTER | cl_bool | Return CL_TRUEifmemobjis a buffer 
                                        object that was created withCL_MEM_USE_HOST_PTRor is a 
                                        subbuffer object of a buffer object that was 
                                        created withCL_MEM_USE_HOST_PTRand thehost_ptrspecified when the 
                                        buffer object was created is a SVM 
                                        pointer; otherwise returnsCL_FALSE. | 
| CL_MEM_D3D10_RESOURCE_KHR | ID3D10Resource * | If the
                                        cl_khr_d3d10_sharing
                                        extension is enabled, and if memobjwas created using
                                        clCreateFromD3D10BufferKHR,
                                        clCreateFromD3D10Texture2DKHR,
                                        or clCreateFromD3D10Texture3DKHR,
                                        returns theresourceargument specified
                                        whenmemobjwas created. | 
| CL_MEM_DX9_MEDIA_-
ADAPTER_TYPE_KHR | cl_dx9_media_- adapter_type_khr | Returns the cl_dx9_media_adapter_type_khrargument
                                        value specified whenmemobjis created using
                                        clCreateFromDX9MediaSurfaceKHR
                                        (If the cl_khr_dx9_media_sharing
                                        extension is supported) | 
| CL_MEM_DX9_MEDIA_-
SURFACE_INFO_KHR | cl_dx9_- surface_info_khr | Returns the cl_dx9_surface_info_khrargument value specified whenmemobjis created using
                                        clCreateFromDX9MediaSurfaceKHR
                                        (If the cl_khr_dx9_media_sharing
                                        extension is supported) | 
| CL_MEM_D3D11_RESOURCE_KHR | ID3D11Resource * | If the cl_khr_d3d11_sharing 
                                        extension is supported,
                                        if memobjwas created using
                                        clCreateFromD3D11BufferKHR,
                                        clCreateFromD3D11Texture2DKHR, or
                                        clCreateFromD3D11Texture3DKHR,
                                        returns theresourceargument specified whenmemobjwas created. | 
 param_value  
            
                        A pointer to memory where the appropriate result being queried is returned.
                        If param_value is NULL, it is ignored.
                    
 param_value_size  
            
                        Used to specify the size in bytes of memory pointed to by param_value.
                        This size must be ≥ size of return type as described in the table above.
                    
 param_value_size_ret  
            
                        Returns the actual size in bytes of data being queried by param_value.
                        If param_value_size_ret is NULL, it is ignored.
                    
Returns CL_SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
param_name is not valid, or if size
                in bytes specified by param_value_size is < the size of return type as
                described in the table above and param_value is not NULL.
            memobj
                is a not a valid memory object.
            param_name
              is CL_MEM_D3D10_RESOURCE_KHR
              and memobj was not created by the function
              clCreateFromD3D10BufferKHR,
              clCreateFromD3D10Texture2DKHR,
              or
              clCreateFromD3D10Texture3DKHR.
            param_name is
              CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR
              and  memobj was not created by the function
              clCreateFromDX9MediaSurfaceKHR
              from a Direct3D9 surface. (If the
              cl_khr_dx9_media_sharing
              extension is supported)
            param_name is CL_MEM_D3D11_RESOURCE_KHR
              and memobj was not created by the function
              clCreateFromD3D11BufferKHR,
              clCreateFromD3D11Texture2DKHR,
              or
              clCreateFromD3D11Texture3DKHR."
             Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.
Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.