private Device(PInvoke.SetupApi.SafeDeviceInfoSetHandle deviceInfoSetHandle, PInvoke.SetupApi.SP_DEVINFO_DATA deviceInfoData, string?devicePath, string deviceInstanceId, ExtendedPInvoke.CmDeviceCapabilitiesFlags capabilities)
 {
     // NOTE: deviceInfoSetHandle is a SafeHandle variant; it is shared widely and will automatically be cleaned up by .NET once the final device gets deallocated
     this.DeviceInfoSetHandle = deviceInfoSetHandle;
     this.DeviceInfoData      = deviceInfoData;
     this.DevicePath          = devicePath;
     this.DeviceInstanceId    = deviceInstanceId;
     this.Capabilities        = capabilities;
 }
 internal static extern bool SetupDiGetDeviceRegistryProperty(SafeHandle deviceInfoSet, ref PInvoke.SetupApi.SP_DEVINFO_DATA deviceInfoData, uint property, out UInt32 propertyRegDataType, IntPtr propertyBuffer, int propertyBufferSize, IntPtr requiredSize);