def nvmlSystemGetNVMLVersion():
    r"""
    /**
     * Retrieves the version of the NVML library.
     *
     * For all products.
     *
     * The version identifier is an alphanumeric string.  It will not exceed 80 characters in length
     * (including the NULL terminator).  See \ref nvmlConstants::NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE.
     *
     * @param version                              Reference in which to return the version identifier
     * @param length                               The maximum allowed length of the string returned in \a version
     *
     * @return
     *         - \ref NVML_SUCCESS                 if \a version has been set
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a version is NULL
     *         - \ref NVML_ERROR_INSUFFICIENT_SIZE if \a length is too small
     */
    nvmlReturn_t DECLDIR nvmlSystemGetNVMLVersion
    """
    c_version = create_string_buffer(NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE)
    fn = _nvmlGetFunctionPointer("nvmlSystemGetNVMLVersion")
    ret = fn(c_version, c_uint(NVML_SYSTEM_NVML_VERSION_BUFFER_SIZE))
    _nvmlCheckReturn(ret)
    return bytes_to_str(c_version.value)