* Only start initial object enumeration if GetNameOwner succeeds for `org.bluez` (i.e, BlueZ is up). * Listen for the `NameOwnerChanged` signal on the system bus, this happens when: * BlueZ shuts down/crashes: In this case, we emit a `BLUETOOTH_WATCHER_EVENT_TYPE_SERVICE_DOWN`, which removes all added radios/devices/services from the PE driver. * BlueZ starts, here we perform an initial enumeration of objects, and register the authentication agent with BlueZ. -- v2: winebth.sys: Initialize and remove devices on BlueZ startup and shutdown respectively. winebth.sys: Only make calls to BlueZ if it is available. winebth.sys: Don't add Bluetooth devices/entries from Unix if they already exist. winebth.sys: Remove unneeded call to IoInvalidateDeviceRelations on radio removal. https://gitlab.winehq.org/wine/wine/-/merge_requests/10417