docs: def nvmlDeviceGetPciInfo(handle):
      r"""
      /**
       * Retrieves the PCI attributes of this device.
       *
       * For all products.
       *
       * See \ref nvmlPciInfo_t for details on the available PCI info.
       *
       * @param device                               The identifier of the target device
       * @param pci                                  Reference in which to return the PCI info
       *
       * @return
       *         - \ref NVML_SUCCESS                 if \a pci has been populated
       *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
       *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a device is invalid or \a pci is NULL
       *         - \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
       */
      nvmlReturn_t DECLDIR nvmlDeviceGetPciInfo
      """
      c_info = nvmlPciInfo_t()
      fn = _nvmlGetFunctionPointer("nvmlDeviceGetPciInfo_v2")
      ret = fn(handle, byref(c_info))
      _nvmlCheckReturn(ret)
      return bytes_to_str(c_info)