docs: def nvmlSystemGetProcessName(pid):
      r"""
      /**
       * Gets name of the process with provided process id
       *
       * For all products.
       *
       * Returned process name is cropped to provided length.
       * name string is encoded in ANSI.
       *
       * @param pid                                  The identifier of the process
       * @param name                                 Reference in which to return the process name
       * @param length                               The maximum allowed length of the string returned in \a name
       *
       * @return
       *         - \ref NVML_SUCCESS                 if \a name has been set
       *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
       *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a name is NULL or \a length is 0.
       *         - \ref NVML_ERROR_NOT_FOUND         if process doesn't exists
       *         - \ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation
       *         - \ref NVML_ERROR_UNKNOWN           on any unexpected error
       */
      nvmlReturn_t DECLDIR nvmlSystemGetProcessName
      """
      c_name = create_string_buffer(1024)
      fn = _nvmlGetFunctionPointer("nvmlSystemGetProcessName")
      ret = fn(c_uint(pid), c_name, c_uint(1024))
      _nvmlCheckReturn(ret)
      return bytes_to_str(c_name.value)