def nvmlDeviceGetDetailedEccErrors(handle, errorType, counterType):
    r"""
    /**
     * Retrieves the detailed ECC error counts for the device.
     *
     * @deprecated   This API supports only a fixed set of ECC error locations
     *               On different GPU architectures different locations are supported
     *               See \ref nvmlDeviceGetMemoryErrorCounter
     *
     * For Fermi &tm; or newer fully supported devices.
     * Only applicable to devices with ECC.
     * Requires \a NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based ECC counts.
     * Requires \a NVML_INFOROM_ECC version 1.0 or higher to report all other ECC counts.
     * Requires ECC Mode to be enabled.
     *
     * Detailed errors provide separate ECC counts for specific parts of the memory system.
     *
     * Reports zero for unsupported ECC error counters when a subset of ECC error counters are supported.
     *
     * See \ref nvmlMemoryErrorType_t for a description of available bit types.\n
     * See \ref nvmlEccCounterType_t for a description of available counter types.\n
     * See \ref nvmlEccErrorCounts_t for a description of provided detailed ECC counts.
     *
     * @param device                               The identifier of the target device
     * @param errorType                            Flag that specifies the type of the errors.
     * @param counterType                          Flag that specifies the counter-type of the errors.
     * @param eccCounts                            Reference in which to return the specified ECC errors
     *
     * @return
     *         - \ref NVML_SUCCESS                 if \a eccCounts has been populated
     *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a device, \a errorType or \a counterType is invalid, or \a eccCounts is NULL
     *         - \ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature
     *         - \ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible
     *         - \ref NVML_ERROR_UNKNOWN           on any unexpected error
     *
     * @see nvmlDeviceClearEccErrorCounts()
     */
    nvmlReturn_t DECLDIR nvmlDeviceGetDetailedEccErrors
    """
    c_counts = c_nvmlEccErrorCounts_t()
    fn = _nvmlGetFunctionPointer("nvmlDeviceGetDetailedEccErrors")
    ret = fn(handle, _nvmlMemoryErrorType_t(errorType),
	         _nvmlEccCounterType_t(counterType), byref(c_counts))
    _nvmlCheckReturn(ret)
    return bytes_to_str(c_counts)
r"""
    /**
     * Retrieves the detailed ECC error counts for the device.
     *
     * @deprecated   This API supports only a fixed set of ECC error locations
     *               On different GPU architectures different locations are supported
     *               See \ref nvmlDeviceGetMemoryErrorCounter
     *
     * For Fermi &tm; or newer fully supported devices.
     * Only applicable to devices with ECC.
     * Requires \a NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based ECC counts.
     * Requires \a NVML_INFOROM_ECC version 1.0 or higher to report all other ECC counts.
     * Requires ECC Mode to be enabled.
     *
     * Detailed errors provide separate ECC counts for specific parts of the memory system.
     *
     * Reports zero for unsupported ECC error counters when a subset of ECC error counters are supported.
     *
     * See \ref nvmlMemoryErrorType_t for a description of available bit types.\n
     * See \ref nvmlEccCounterType_t for a description of available counter types.\n
     * See \ref nvmlEccErrorCounts_t for a description of provided detailed ECC counts.
     *
     * @param device                               The identifier of the target device
     * @param errorType                            Flag that specifies the type of the errors.
     * @param counterType                          Flag that specifies the counter-type of the errors.
     * @param eccCounts                            Reference in which to return the specified ECC errors
     *
     * @return
     *         - \ref NVML_SUCCESS                 if \a eccCounts has been populated
     *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a device, \a errorType or \a counterType is invalid, or \a eccCounts is NULL
     *         - \ref NVML_ERROR_NOT_SUPPORTED     if the device does not support this feature
     *         - \ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible
     *         - \ref NVML_ERROR_UNKNOWN           on any unexpected error
     *
     * @see nvmlDeviceClearEccErrorCounts()
     */
    nvmlReturn_t DECLDIR nvmlDeviceGetDetailedEccErrors