code: public static int cuMemRangeGetAttributes(Pointer data[], long dataSizes[], int attributes[], long numAttributes, CUdeviceptr devPtr, long count)
      {
          return checkResult(cuMemRangeGetAttributesNative(data, dataSizes, attributes, numAttributes, devPtr, count));
      }
docs: Query attributes of a given memory range.<br>
  <br>
  Query attributes of the memory range starting at devPtr with a size of
  count bytes. The memory range must refer to managed memory allocated via
  cuMemAllocManaged or declared via __managed__ variables. The attributes
  array will be interpreted to have numAttributes entries. The dataSizes
  array will also be interpreted to have numAttributes entries. The results
  of the query will be stored in data.<br>
  <br>
  <br>
  The list of supported attributes are given below. Please refer to
  {@link JCudaDriver#cuMemRangeGetAttribute} for attribute descriptions and
  restrictions.
  <ul>
  <li>CU_MEM_RANGE_ATTRIBUTE_READ_MOSTLY</li>
  <li>CU_MEM_RANGE_ATTRIBUTE_PREFERRED_LOCATION</li>
  <li>CU_MEM_RANGE_ATTRIBUTE_ACCESSED_BY</li>
  <li>CU_MEM_RANGE_ATTRIBUTE_LAST_PREFETCH_LOCATION</li>
  </ul>
  
  @param data A two-dimensional array containing pointers to memory
  locations where the result of each attribute query will be written
  to.
  @param dataSizes Array containing the sizes of each result
  @param attributes An array of attributes to query (numAttributes and the
  number of attributes in this array should match)
  @param numAttributes Number of attributes to query
  @param devPtr Start of the range to query
  @param count Size of the range to query
  @return CUDA_SUCCESS, CUDA_ERROR_DEINITIALIZED,
  CUDA_ERROR_INVALID_CONTEXT, CUDA_ERROR_INVALID_VALUE,
  CUDA_ERROR_INVALID_DEVICE