(Follow up from !6788)
The goal is to use the device object API as the backend for Windows.Devices.Enumeration, as most concepts from the latter have a one-to-one mapping to the former:
* The device object API is centred around the [`DEV_OBJECT`](https://learn.microsoft.com/en-us/windows/win32/api/devquerydef/ns-devqueryd...) type, which provides a unified representation for devnodes, device interfaces/containers, device interface classes, and association endpoints (networking protocols and service instances, like UPnP and Bluetooth), together with the properties associated with it. The [`DevObjectType`](https://learn.microsoft.com/en-us/windows/win32/api/devquerydef/ne-devqueryd...) enum maps to [`Windows.Devices.Enumeration.DeviceInformationKind`](https://learn.microsoft.com/en-us/uwp/api/windows.devices.enumeration.device...). This would be used to implement the [`DeviceInformation`](https://learn.microsoft.com/en-us/uwp/api/windows.devices.enumeration.device...) class. * [`DEVPROP_FILTER_EXPRESSION`](https://learn.microsoft.com/en-us/windows/win32/api/devfiltertypes/ns-devfil...) allows filtering device queries by their properties. AQS filter strings would be parsed into an array of filters, which are then passed to the query object methods. * `DevCreateObjectQuery` would be the backend for `DeviceWatcher`, as it provides asynchronous callbacks for initial device enumeration, device addition, removal and updates. * [`DevGetObjects`](https://learn.microsoft.com/en-us/windows/win32/api/devquery/nf-devquery-dev...) would be used to implement the `FindAllAsync*` methods.
This MR adds a basic implementation and tests for `DevGetObjects`.
-- v10: cfgmgr32: Add a basic implementation for DevGetObjects(Ex) for device interface objects. cfgmgr32/test: Add tests for DevGetObjects.