/// <summary>
 /// Get ID's of the Devices
 /// </summary>
 /// <returns></returns>
 public static OpenCLErrorCode GetDeviceIDs(PlatformHandle platform,
                                      DeviceType deviceType,
                                      uint numEntries,
                                      DeviceHandle[] devices,
                                      out uint numDevices)
 {
     return clGetDeviceIDs((platform as IHandleData).Handle, deviceType, numEntries, devices, out numDevices);
 }
 /// <summary>
 /// Get Information for a Device (CPU/GPU/...)
 /// </summary>
 /// <returns></returns>
 public static OpenCLErrorCode GetDeviceInfo(DeviceHandle device,
                                       DeviceInfo paramName,
                                       IntPtr paramValueSize,
                                       InfoBuffer paramValue,
                                       out IntPtr paramValueSizeRet)
 {
     return clGetDeviceInfo((device as IHandleData).Handle, paramName, paramValueSize, paramValue.Address, out paramValueSizeRet);
 }
 public static ContextHandle CreateContext(ContextProperty[] properties,
                                     uint numDevices,
                                     DeviceHandle[] devices,
                                     ContextNotify pfnNotify,
                                     IntPtr userData,
                                     out OpenCLErrorCode errcodeRet)
 {
     return new ContextHandle(clCreateContext(properties, numDevices, devices, pfnNotify, userData, out errcodeRet));
 }