docs: def nvmlDeviceGetHandleByPciBusId(pciBusId):
      r"""
      /**
       * Acquire the handle for a particular device, based on its PCI bus id.
       *
       * For all products.
       *
       * This value corresponds to the nvmlPciInfo_t::busId returned by \ref nvmlDeviceGetPciInfo().
       *
       * Starting from NVML 5, this API causes NVML to initialize the target GPU
       * NVML may initialize additional GPUs if:
       *  - The target GPU is an SLI slave
       *
       * \note NVML 4.304 and older version of nvmlDeviceGetHandleByPciBusId"_v1" returns NVML_ERROR_NOT_FOUND
       *       instead of NVML_ERROR_NO_PERMISSION.
       *
       * @param pciBusId                             The PCI bus id of the target GPU
       * @param device                               Reference in which to return the device handle
       *
       * @return
       *         - \ref NVML_SUCCESS                  if \a device has been set
       *         - \ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized
       *         - \ref NVML_ERROR_INVALID_ARGUMENT   if \a pciBusId is invalid or \a device is NULL
       *         - \ref NVML_ERROR_NOT_FOUND          if \a pciBusId does not match a valid device on the system
       *         - \ref NVML_ERROR_INSUFFICIENT_POWER if the attached device has improperly attached external power cables
       *         - \ref NVML_ERROR_NO_PERMISSION      if the user doesn't have permission to talk to this device
       *         - \ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs
       *         - \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 nvmlDeviceGetHandleByPciBusId
      """
      """
  /**
   * Acquire the handle for a particular device, based on its PCI bus id.
   *
   * For all products.
   *
   * This value corresponds to the nvmlPciInfo_t::busId returned by \ref nvmlDeviceGetPciInfo().
   *
   * Starting from NVML 5, this API causes NVML to initialize the target GPU
   * NVML may initialize additional GPUs if:
   *  - The target GPU is an SLI slave
   *
   * \note NVML 4.304 and older version of nvmlDeviceGetHandleByPciBusId"_v1" returns NVML_ERROR_NOT_FOUND
   *       instead of NVML_ERROR_NO_PERMISSION.
   *
   * @param pciBusId                             The PCI bus id of the target GPU
   * @param device                               Reference in which to return the device handle
   *
   * @return
   *         - \ref NVML_SUCCESS                  if \a device has been set
   *         - \ref NVML_ERROR_UNINITIALIZED      if the library has not been successfully initialized
   *         - \ref NVML_ERROR_INVALID_ARGUMENT   if \a pciBusId is invalid or \a device is NULL
   *         - \ref NVML_ERROR_NOT_FOUND          if \a pciBusId does not match a valid device on the system
   *         - \ref NVML_ERROR_INSUFFICIENT_POWER if the attached device has improperly attached external power cables
   *         - \ref NVML_ERROR_NO_PERMISSION      if the user doesn't have permission to talk to this device
   *         - \ref NVML_ERROR_IRQ_ISSUE          if NVIDIA kernel detected an interrupt issue with the attached GPUs
   *         - \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
   */
      """
      c_busId = c_char_p(pciBusId)
      device = c_nvmlDevice_t()
      fn = _nvmlGetFunctionPointer("nvmlDeviceGetHandleByPciBusId_v2")
      ret = fn(c_busId, byref(device))
      _nvmlCheckReturn(ret)
      return bytes_to_str(device)