<?xml version="1.0"?>
<doc>
    <assembly>
        <name>YourPhone.Connectivity.Bluetooth.Managed</name>
    </assembly>
    <members>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Communication.MessageHandlerSendMessageResult.IsBluetoothServicesNotFoundError(YourPhone.Connectivity.Bluetooth.Managed.ConnectionManagement.ConnectionResults.BluetoothConnectResult)">
            <summary>
            Returns whether the device is rejecting connections. One possible cause is that the device's Bluetooth is in a partially disabled state
            (i.e., where Bluetooth is enabled, but the phone actively rejects incoming connections). Currently only checking for 2 or more services
            running into this error since its possible for other profiles to timeout.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Services.BluetoothClassicDeviceNameService.#ctor(YourPhone.AppCore.WinRT.Devices.IDeviceDataStore,YourPhone.Connectivity.Bluetooth.Managed.Services.DeviceManagement.IBluetoothClassicDeviceProvider,YourPhone.Contracts.Connectivity.Bluetooth.Radios.IBluetoothRadioManager)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhone.Connectivity.Bluetooth.Managed.Services.BluetoothClassicDeviceNameService"/> class.
            This class watches for changes to the BluetoothDevice name and updates the DeviceData object as appropriate.
            We use BT Classic for this since a Bluetooth LE connection does not appear to fire the NameChanged event.
            </summary>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.Services.PairedLEDeviceChangeProcessor">
            <summary>
            When a device is removed from Windows Bluetooth Settings, we need to react. We already do this on (cold) app start, but doing so proactively
            eliminates a point of friction where the user may get stuck in a pairing loop (caused by Windows Swift pair) when PL next attempts a connection in this state.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Services.PairedLEDeviceChangeProcessor.VerifyCurrentDevicePairingStatesAsync">
            <summary>
            Devices may have been unpaired from Bluetooth while the app was not running.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Devices.BluetoothClassicDeviceFinder.DoBluetoothCallingDeviceIdsMatch(YourPhone.Connectivity.Bluetooth.Shims.IDeviceInformation,YourPhone.AppCore.WinRT.Devices.IDeviceData)">
            <summary>
            Compares an incoming device's bluetooth device id with the calling ID stored in IDeviceData. This id is
            stored by the HfpDeviceManager after it registers a device for calling.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Devices.BluetoothClassicDeviceFinder.DoBluetoothClassicDeviceIdsMatch(YourPhone.Connectivity.Bluetooth.Shims.IDeviceInformation,YourPhone.AppCore.WinRT.Devices.IDeviceData)">
            <summary>
            Compares an incoming device's bluetooth device id with the Bluetooth Classic ID stored in IDeviceData.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Devices.BluetoothClassicDeviceFinder.DoBluetoothCallingAddressesMatch(YourPhone.Connectivity.Bluetooth.Shims.IDeviceInformation,YourPhone.AppCore.WinRT.Devices.IDeviceData)">
            <summary>
            Compares bluetooth addresses of an incoming device with the calling address stored in IDeviceData. This address is
            stored only when going through the universal pairing flow (currently only applicable to Android devices) and is
            retained here for backcompat
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Devices.BluetoothLEDeviceCreationParameters.CreateMetaDataFromDevice(YourPhone.Contracts.Connectivity.Bluetooth.Devices.IBluetoothDeviceDataFactory,YourPhone.AppCore.WinRT.Devices.IDeviceData)">
            <summary>
            This is a reverse mapping of the <see cref="M:YourPhone.Connectivity.Bluetooth.Managed.Devices.BluetoothLEDeviceCreationParameters.Initialize(YourPhone.AppCore.WinRT.Devices.IDeviceData)"/> method above
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Discovery.Utilities.IBluetoothDeviceDiscoveryFilter.SupportsLEAdvertisements">
            <summary>
            Boolean indicating whether the filter can be represented as a BluetoothLEAdvertisementFilter.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Discovery.Utilities.IBluetoothDeviceDiscoveryFilter.TelemetryDetails">
            <summary>
            For telemetry log purposes only
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.BluetoothLEPairingDriver.TryNotifyPairingCompleteWithRetryAsync(YourPhone.Connectivity.Bluetooth.Shims.IBluetoothLEDevice,System.Guid,System.Byte[])">
            <summary>
            This is a best effort method which tries to notify the remote device that pairing has succeeded.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.BluetoothPairingService.TryUpdateDeviceNameIfNecessary(YourPhone.AppCore.WinRT.Connectivity.TraceContext,System.String)">
            <summary>
            Android 12 (API level 31) gates the Bluetooth name behind a runtime permission. Without this permission,
            LTW sends us a fallback display name which can be different from the Bluetooth name for certain devices.
            Since this name is used to select a device for BT pairing, once the user grants us required permissions on LTW, we need to refresh this value.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.BluetoothPairingService.StopUnpairedDeviceWatcherAsync">
            <summary>
            Stops the unpaired device watcher, and waits for the Stopped event. This is a documented requirement before calling DeviceWatcher.Start()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.UserControls.BluetoothPairingDialog.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.UserControls.BluetoothPairingDialog.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.UserControls.BluetoothPairingDialog.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.UserControls.ConfirmPairingDialog.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.UserControls.ConfirmPairingDialog.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.UserControls.ConfirmPairingDialog.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.ViewModels.BluetoothInlinePairingViewModel.CleanupDeferralAsync">
            <summary>
            The deferral must be completed on a background thread. Not calling Deferral.Complete() or calling it from the main thread results in
            bad behavior (the DeviceInformationCustomPairing.PairAsync call that initiated this pairing operation will hang,
            and the PC-phone combination stays in a bad state until the PC restarts
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.BluetoothPairingModalView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.BluetoothPairingModalView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.BluetoothPairingModalView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.BluetoothInlinePairingPage.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.BluetoothInlinePairingPage.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.BluetoothInlinePairingPage.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.BluetoothPairingPage.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.BluetoothPairingPage.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.BluetoothPairingPage.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.ManualBluetoothPairingPage.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.ManualBluetoothPairingPage.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Pairing.Views.Pages.ManualBluetoothPairingPage.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Common.BluetoothLEProfileBase.ClearSessionAsync">
            <summary>
            ClearSessionAsync() currently potentially does too much. Specifically, writing to the CCCD is theoretically unnecessary and in
            cases where we do this when the GATT session is not active, is much more likely to fail, exacerbating the well-known
            "limited resources" bug
            </summary>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Common.BluetoothLEProfileBase.Log.__ConnectCancelledStruct">
            <summary> This API supports the logging infrastructure and is not intended to be used directly from your code. It is subject to change in the future. </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Common.CharacteristicHandlerBase.UnsubscribeAsync(System.Threading.CancellationToken)">
            <summary>
            This function writes None to the ClientCharacteristicConfigurationDescriptor and then removes the ValueChanged listener.
            </summary>
            <returns>Result of the Write operation on the ClientCharacteristicConfigurationDescriptor</returns>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Common.CharacteristicHandlerBase.UnsubscribeSilent">
            <summary>
            This function only removes the ValueChanged listener on the underlying Characteristic, without writing to the ClientCharacteristicConfigurationDescriptor.
            Use this when you need to dispose of a handler object without changing the underlying CCCD.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.MAP.RequestPermissionsResult.PossiblyDenied">
            <summary>
            Either permission is denied or it's possible the phone is locked
            </summary>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Pairing.LtwScenario">
            <summary>
            This must be kept in sync with LtwScenario.swift and YourPhone.OnboardingSDK.Bluetooth.Pairing.Utilities.LtwScenario.cs
            </summary>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Pairing.PairingService">
            <summary>
            This class manages interactions with our custom LE GATT service used for pairing the PC and Phone
            during onboarding flows.
            Currently, this is used to support iOS devices only.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Pairing.PairingService.ReadProtocolVersionAsync(System.Boolean)">
            <summary>
            Read the ProtocolVersion from the pairing service. Default behavior is to use a locally cached value, if available.
            </summary>
            <param name="getUncached">Force a request to the device to load the current protocol version.</param>
            <returns>String representing the protocol version, e.g. "1.0"</returns>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Pairing.PairingService.ReadPairingIdAsync(System.Boolean)">
            <summary>
            Read the PairingId from the pairing service. Default behavior is to query the device
            to ensure the latest ID is retrieved.
            </summary>
            <param name="getCached">Return the last-read value (or null) of the PairingId.</param>
            <returns>Byte array containing the pairing ID, or null if an error.</returns>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Pairing.PairingServiceConstants">
            <summary>
            Constants related to the LE Pairing Service.
            These UUIDs/Constants must match those at: /ios/apps/LTW/LTW/Bluetooth/BluetoothPairingService.swift
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.Pal.RfcommDeviceServiceProvider.MapWatcherStateToBluetoothError(YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothDeviceConnectionWatcher)">
            <summary>
            This allows us to differentiate between the case where the Rfcomm service was simply unavailable (e.g., no server listening) and
            the case where the PC failed to even talk to the remote device
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.RequestPermissionsResult.PossiblyDenied">
            <summary>
            If the user enables and then disables this toggle, all subsequent PBAP operations continue reporting Success
            but with an empty body. Thus, the interpretation of this property is left up to the caller
            </summary>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapBluetoothProfileResiliencyPolicyFactory">
            <summary>
            Pbap sync uses its own fine-grained policies
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.CreatePbapCallHistoryPolicy(System.Action{YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Wrappers.FetchVCardsResultWrapper,System.Int32,Polly.Context})">
            <summary>
            Create a policy that allows only <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.MaxSimultaneouslyExecutingRequests"/> requests to execute at a time,
            with at most <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.MaxQueuedRequests"/> other requests queued. If <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.NumRequestsTriggeringCoolDown"/> reqeusts succeed
            with a non-empty result, then a delay/cooldown period equaling <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.DefaultCooldownIntervalConsecutiveCallHistoryRequestsSeconds"/> is introduced
            </summary>
            <returns>A Polly policy</returns>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.CreatePbapContactsPolicy">
            <summary>
            Create a policy that allows only <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.MaxSimultaneouslyExecutingRequests"/> requests to execute at a time,
            with at most <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.MaxQueuedRequests"/> other requests queued. If <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.NumRequestsTriggeringCoolDown"/> requests succeed
            with a non-empty result then a delay/cooldown period equaling <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.DefaultCooldownIntervalConsecutiveContactsRequestsSeconds"/> is introduced
            </summary>
            <returns>A Polly policy</returns>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.CreateBatchPolicy(System.Action{YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Wrappers.FetchVCardsResultWrapper,System.Int32,Polly.Context})">
            <summary>
            Basic retry policy
            </summary>
            <returns>A Polly policy</returns>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.CreatePbapRequestPermissionPolicy(System.Action{YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.RequestPermissionsResult,System.Int32,Polly.Context})">
            <summary>
            Basic retry policy with no rate limits
            </summary>
            <returns>A Polly policy</returns>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.CreatePbapFetchThumbnailSyncPolicy(System.Action{YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Wrappers.FetchVCardsResultWrapper,System.Int32,Polly.Context})">
            <summary>
            Basic retry policy since scenario is responsible for rate limiting
            </summary>
            <returns>A Polly policy</returns>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.PBAP.Util.PbapResiliencyPolicyFactory.CreatePbapFetchThumbnailConnectPolicy(System.Action{YourPhone.Connectivity.Bluetooth.Managed.Profiles.Common.ConnectResult,System.Int32,Polly.Context})">
            <summary>
            A bare minimum retry policy. This is due to the large number of thumbnail requests that can be dispatched simultaneously
            </summary>
            <returns>A Polly policy</returns>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.ListRemoteMediaDataEntry">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.RemoteMediaDataEntry">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.RemoteMediaDeserialize">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Profiles.RemoteMedia.RemoteMediaDeserializeContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="F:YourPhone.Connectivity.Bluetooth.Managed.Telemetry.BluetoothHfpTelemetryService.defaultTimeout">
            <summary>
            The P90 for each run through bluetooth pairing + hfp work is 130 seconds as of 3/7/2024. Doubling this leaves sufficient room for retries.
            </summary>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.Telemetry.EventLogger">
            <summary>
            Trace event logger
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothFeatures.SkipWritingNotifyIfAlreadyNotifiable">
            <summary>
            Whether we should skip writing to the CCCD if it already had the Notify flag when we read it from the server.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.ListListString">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.ListString">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.BluetoothHardwareList">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Utilities.BluetoothHardwareListContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="F:YourPhone.Connectivity.Bluetooth.Managed.Utilities.GattUtilsStatus.SuccessCharacteristicAlreadySubscribed">
            <summary>
            This indicates that we successfully wrote to the CCCD at some point without a teardown of some sort <b>during the current</b> app session. This
            still means that we overwrote the CCCD, despite the Notify flag already being present on the server.
            </summary>
        </member>
        <member name="F:YourPhone.Connectivity.Bluetooth.Managed.Utilities.GattUtilsStatus.SuccessCharacteristicAlreadySubscribedOnServer">
             <summary>
             This indicates that the server already had the Notify flag present on this CCCD (from our previous successful attempt in the past),
             and therefore did not write(or overwrite) it on the server. This is how CCDs are supposed to work.
            
             Barring unexpected bad behavior, this is expected to replace <see cref="F:YourPhone.Connectivity.Bluetooth.Managed.Utilities.GattUtilsStatus.SuccessCharacteristicAlreadySubscribed"/>.
            
             <para/>
             CCCD values set by a client on a server when the devices are bonded are guaranteed to be persistent across sessions(Vol 3 Part G Section 3.3.3.3)
             </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Utilities.PairingUriHelper.CreateLtwPairingUri(YourPhone.Contracts.Connectivity.Bluetooth.PairingSourceType,System.Guid,System.Guid,System.String,System.String)">
            <summary>
            Generates an LTW pairing URI.
            </summary>
            <param name="pairingSourceType">Pass PairingSourceType.Dcg to get a URI that is not necessarily Bluetooth specific</param>
            <param name="pairingId">16 byte pairing id. This corresponds to IDeviceData.Id</param>
            <param name="sessionId">Id used for telemetry</param>
            <param name="remoteDcgId">The DCG client id of the phone. Used for BT recovery scenarios</param>
            <param name="accountName">Name of the logged in MSA</param>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.Utilities.PairingUriHelper.CreateLegacyLtwPairingUri(System.Byte[],System.Guid)">
            <summary>
            Generates an LTW pairing URI (legacy)
            </summary>
            <param name="legacyPairingId">8 byte pairing id</param>
            <param name="sessionId">Id used for telemetry</param>
        </member>
        <member name="T:YourPhone.Connectivity.Bluetooth.Managed.YourPhone_Connectivity_Bluetooth_Managed_XamlTypeInfo.XamlMetaDataProvider">
            <summary>
            Main class for providing metadata for the app or library
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.YourPhone_Connectivity_Bluetooth_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXamlType(System.Type)">
            <summary>
            GetXamlType(Type)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.YourPhone_Connectivity_Bluetooth_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXamlType(System.String)">
            <summary>
            GetXamlType(String)
            </summary>
        </member>
        <member name="M:YourPhone.Connectivity.Bluetooth.Managed.YourPhone_Connectivity_Bluetooth_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXmlnsDefinitions">
            <summary>
            GetXmlnsDefinitions()
            </summary>
        </member>
        <member name="T:Windows.Win32.Storage.Packaging.Appx.AddPackageDependencyOptions">
            <summary>Defines options that can be applied when adding a package dependency.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.AddPackageDependencyOptions.AddPackageDependencyOptions_None">
            <summary>No options are applied.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.AddPackageDependencyOptions.AddPackageDependencyOptions_PrependIfRankCollision">
            <summary>If multiple packages are present in the package graph with the same rank as the call to **AddPackageDependency**, the resolved package is added before others of the same rank. For more information, see [AddPackageDependency](nf-appmodel-addpackagedependency.md).</summary>
        </member>
        <member name="T:Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions">
            <summary>Defines options that can be applied when creating a package dependency by using the TryCreatePackageDependency function.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions.CreatePackageDependencyOptions_None">
            <summary>No options are applied.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions.CreatePackageDependencyOptions_DoNotVerifyDependencyResolution">
            <summary>Disables dependency resolution when pinning a package dependency. This is useful for installers running as user contexts other than the target user (for example, installers running as LocalSystem).</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions.CreatePackageDependencyOptions_ScopeIsSystem">
            <summary>Defines the package dependency for the system, accessible to all users (by default, the package dependency is defined for a specific user). This option requires the caller has administrative privileges.</summary>
        </member>
        <member name="T:Windows.Win32.Storage.Packaging.Appx.PackageDependencyLifetimeKind">
            <summary>Specifies values that indicate the type of artifact that is used to define the lifetime of a package dependency.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyLifetimeKind.PackageDependencyLifetimeKind_Process">
            <summary>The current process is the lifetime artifact. The package dependency is implicitly deleted when the process terminates.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyLifetimeKind.PackageDependencyLifetimeKind_FilePath">
            <summary>The lifetime artifact is an absolute filename or path. The package dependency is implicitly deleted when this is deleted.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyLifetimeKind.PackageDependencyLifetimeKind_RegistryKey">
            <summary>The lifetime artifact is a registry key in the format *root*\\*subkey*, where *root* is one of the following: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT, or HKEY_USERS. The package dependency is implicitly deleted when this is deleted.</summary>
        </member>
        <member name="T:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures">
            <summary>Defines the processor architectures for a framework package dependency that you create by using the TryCreatePackageDependency function.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures.PackageDependencyProcessorArchitectures_None">
            <summary>No processor architecture is specified.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures.PackageDependencyProcessorArchitectures_Neutral">
            <summary>Specifies the neutral architecture.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures.PackageDependencyProcessorArchitectures_X86">
            <summary>Specifies the x86 architecture.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures.PackageDependencyProcessorArchitectures_X64">
            <summary>Specifies the x64 architecture.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures.PackageDependencyProcessorArchitectures_Arm">
            <summary>Specifies the ARM architecture.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures.PackageDependencyProcessorArchitectures_Arm64">
            <summary>Specifies the ARM64 architecture.</summary>
        </member>
        <member name="F:Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures.PackageDependencyProcessorArchitectures_X86A64">
            <summary>Specifies the x86/A64 architecture.</summary>
        </member>
        <member name="T:Windows.Win32.Storage.Packaging.Appx.PACKAGE_VERSION">
            <summary>Represents the package version information.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/ns-appmodel-package_version">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="T:Windows.Win32.BluetoothFindRadioCloseSafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.BluetoothFindRadioClose(Windows.Win32.Devices.Bluetooth.HBLUETOOTH_RADIO_FIND)"/>.
            </summary>
        </member>
        <member name="T:Windows.Win32.Devices.Bluetooth.BLUETOOTH_FIND_RADIO_PARAMS">
            <summary>The BLUETOOTH_FIND_RADIO_PARAMS structure facilitates enumerating installed Bluetooth radios.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/bluetoothapis/ns-bluetoothapis-bluetooth_find_radio_params">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Devices.Bluetooth.BLUETOOTH_FIND_RADIO_PARAMS.dwSize">
            <summary>Size of the <b>BLUETOOTH_FIND_RADIO_PARAMS</b> structure, in bytes.</summary>
        </member>
        <member name="T:Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO">
            <summary>Contains information about a Bluetooth radio.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/bluetoothapis/ns-bluetoothapis-bluetooth_radio_info">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO.dwSize">
            <summary>Size, in bytes,  of the structure.</summary>
        </member>
        <member name="F:Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO.address">
            <summary>Address of the local Bluetooth radio.</summary>
        </member>
        <member name="F:Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO.szName">
            <summary>Name of the local Bluetooth radio.</summary>
        </member>
        <member name="F:Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO.ulClassofDevice">
            <summary>Device class for the local Bluetooth radio.</summary>
        </member>
        <member name="F:Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO.lmpSubversion">
            <summary>This member contains data specific to individual Bluetooth device manufacturers.</summary>
        </member>
        <member name="F:Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO.manufacturer">
            <summary>Manufacturer of the Bluetooth radio, expressed as a <b>BTH_MFG_Xxx</b> value. For more information about the Bluetooth assigned numbers document and a current list of values, see the Bluetooth specification at <a href="https://www.bluetooth.com/">www.bluetooth.com</a>.</summary>
        </member>
        <member name="T:Windows.Win32.Foundation.HRESULT">
            <remarks>
            <para>The **HRESULT** data type is the same as the [SCODE](scode.md) data type. An **HRESULT** value consists of the following fields: - A 1-bit code indicating severity, where zero represents success and 1 represents failure. - A 4-bit reserved value. - An 11-bit code indicating responsibility for the error or warning, also known as a facility code. - A 16-bit code describing the error or warning. Most MAPI interface methods and functions return **HRESULT** values to provide detailed cause formation. **HRESULT** values are also used widely in OLE interface methods. OLE provides several macros for converting between **HRESULT** values and **SCODE** values, another common data type for error handling. > [!NOTE] > In 64-bit MAPI, **HRESULT** is still a 32-bit value. For information about the OLE use of **HRESULT** values, see the  *OLE Programmer's Reference*. For more information about the use of these values in MAPI, see [Error Handling](error-handling-in-mapi.md) and any of the following interface methods: [IABLogon::GetLastError](iablogon-getlasterror.md) [IMAPISupport::GetLastError](imapisupport-getlasterror.md) [IMAPIControl::GetLastError](imapicontrol-getlasterror.md) [IMAPITable::GetLastError](imapitable-getlasterror.md) [IMAPIProp::GetLastError](imapiprop-getlasterror.md) [IMAPIViewAdviseSink::OnPrint](imapiviewadvisesink-onprint.md)</para>
            <para><see href="https://learn.microsoft.com/office/client-developer/outlook/mapi/hresult#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Foundation.HRESULT.ThrowOnFailure(System.IntPtr)">
            <inheritdoc cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)" />
            <param name="errorInfo">
            A pointer to the IErrorInfo interface that provides more information about the
            error. You can specify <see cref="F:System.IntPtr.Zero"/> to use the current IErrorInfo interface, or
            <c>new IntPtr(-1)</c> to ignore the current IErrorInfo interface and construct the exception
            just from the error code.
            </param>
            <returns><see langword="this"/> <see cref="T:Windows.Win32.Foundation.HRESULT"/>, if it does not reflect an error.</returns>
            <seealso cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)"/>
        </member>
        <member name="T:Windows.Win32.Foundation.PCWSTR">
            <summary>
            A pointer to a null-terminated, constant character string.
            </summary>
        </member>
        <member name="F:Windows.Win32.Foundation.PCWSTR.Value">
            <summary>
            A pointer to the first character in the string. The content should be considered readonly, as it was typed as constant in the SDK.
            </summary>
        </member>
        <member name="P:Windows.Win32.Foundation.PCWSTR.Length">
            <summary>
            Gets the number of characters up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PCWSTR.ToString">
            <summary>
            Returns a <see langword="string"/> with a copy of this character array, up to the first null character (exclusive).
            </summary>
            <returns>A <see langword="string"/>, or <see langword="null"/> if <see cref="F:Windows.Win32.Foundation.PCWSTR.Value"/> is <see langword="null"/>.</returns>
        </member>
        <member name="M:Windows.Win32.Foundation.PCWSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PWSTR.ToString">
            <inheritdoc cref="M:Windows.Win32.Foundation.PCWSTR.ToString"/>
        </member>
        <member name="P:Windows.Win32.Foundation.PWSTR.Length">
            <inheritdoc cref="P:Windows.Win32.Foundation.PCWSTR.Length"/>
        </member>
        <member name="M:Windows.Win32.Foundation.PWSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="P:Windows.Win32.__byte_6.Length">
            <summary>The length of the inline array.</summary>
        </member>
        <member name="P:Windows.Win32.__byte_6.Item(System.Int32)">
            <summary>
            Gets a ref to an individual element of the inline array.
            ⚠ Important ⚠: When this struct is on the stack, do not let the returned reference outlive the stack frame that defines it.
            </summary>
        </member>
        <member name="M:Windows.Win32.__byte_6.AsSpan">
            <summary>
            Gets this inline array as a span.
            </summary>
            <remarks>
            ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
            </remarks>
        </member>
        <member name="M:Windows.Win32.__byte_6.AsReadOnlySpan">
            <summary>
            Gets this inline array as a span.
            </summary>
            <remarks>
            ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
            </remarks>
        </member>
        <member name="P:Windows.Win32.__char_248.Length">
            <summary>The length of the inline array.</summary>
        </member>
        <member name="P:Windows.Win32.__char_248.Item(System.Int32)">
            <summary>
            Gets a ref to an individual element of the inline array.
            ⚠ Important ⚠: When this struct is on the stack, do not let the returned reference outlive the stack frame that defines it.
            </summary>
        </member>
        <member name="M:Windows.Win32.__char_248.AsSpan">
            <summary>
            Gets this inline array as a span.
            </summary>
            <remarks>
            ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
            </remarks>
        </member>
        <member name="M:Windows.Win32.__char_248.AsReadOnlySpan">
            <summary>
            Gets this inline array as a span.
            </summary>
            <remarks>
            ⚠ Important ⚠: When this struct is on the stack, do not let the returned span outlive the stack frame that defines it.
            </remarks>
        </member>
        <member name="M:Windows.Win32.__char_248.ToString(System.Int32)">
            <summary>
            Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">
            Thrown when <paramref name="length"/> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.__char_248.Length"/>.
            </exception>
        </member>
        <member name="M:Windows.Win32.__char_248.ToString">
            <summary>
            Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
            </summary>
        </member>
        <member name="T:Windows.Win32.PInvoke">
            <content>
            Contains extern methods from "ADVAPI32.dll".
            </content>
            <content>
            Contains extern methods from "BluetoothApis.dll".
            </content>
            <content>
            Contains extern methods from "KERNEL32.dll".
            </content>
            <content>
            Contains extern methods from "KERNELBASE.dll".
            </content>
        </member>
        <member name="M:Windows.Win32.PInvoke.FreeSid(Windows.Win32.Security.PSID)">
            <summary>Frees a security identifier (SID) previously allocated by using the AllocateAndInitializeSid function.</summary>
            <param name="pSid">
            <para>A pointer to the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-sid">SID</a> structure to free.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/securitybaseapi/nf-securitybaseapi-freesid#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the function returns <b>NULL</b>. If the function fails, it returns a pointer to the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-sid">SID</a> structure represented by the <i>pSid</i> parameter.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/securitybaseapi/nf-securitybaseapi-freesid">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.BluetoothFindRadioClose(Windows.Win32.Devices.Bluetooth.HBLUETOOTH_RADIO_FIND)">
            <summary>The BluetoothFindRadioClose function closes the enumeration handle associated with finding Bluetooth radios.</summary>
            <param name="hFind">Enumeration handle to close, obtained with a previous call to the <a href="https://docs.microsoft.com/windows/desktop/api/bluetoothapis/nf-bluetoothapis-bluetoothfindfirstradio">BluetoothFindFirstRadio</a> function.</param>
            <returns>Returns <b>TRUE</b> when the handle is successfully closed. Returns <b>FALSE</b> if the attempt fails to close the enumeration handle. For additional information on possible errors associated with closing the handle, call the <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function.</returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/bluetoothapis/nf-bluetoothapis-bluetoothfindradioclose">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.BluetoothFindFirstRadio(Windows.Win32.Devices.Bluetooth.BLUETOOTH_FIND_RADIO_PARAMS@,Microsoft.Win32.SafeHandles.SafeFileHandle@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.BluetoothFindFirstRadio(Windows.Win32.Devices.Bluetooth.BLUETOOTH_FIND_RADIO_PARAMS*,Windows.Win32.Foundation.HANDLE*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.BluetoothFindFirstRadio(Windows.Win32.Devices.Bluetooth.BLUETOOTH_FIND_RADIO_PARAMS*,Windows.Win32.Foundation.HANDLE*)">
            <summary>The BluetoothFindFirstRadio function begins the enumeration of local Bluetooth radios.</summary>
            <param name="pbtfrp">Pointer to a <a href="https://docs.microsoft.com/windows/win32/api/bluetoothapis/ns-bluetoothapis-bluetooth_find_radio_params">BLUETOOTH_FIND_RADIO_PARAMS</a> structure. The <b>dwSize</b> member of the <b>BLUETOOTH_FIND_RADIO_PARAMS</b> structure pointed to by <i>pbtfrp</i> must match the size of the structure.</param>
            <param name="phRadio">Pointer to where the first enumerated radio handle will be returned. When no longer needed, this handle must be closed via <a href="https://docs.microsoft.com/windows/desktop/api/handleapi/nf-handleapi-closehandle">CloseHandle</a>.</param>
            <returns>
            <para>In addition to the handle indicated by <i>phRadio</i>, calling this function will also create a HBLUETOOTH_RADIO_FIND handle for use with the <a href="https://docs.microsoft.com/windows/desktop/api/bluetoothapis/nf-bluetoothapis-bluetoothfindnextradio">BluetoothFindNextRadio</a> function. When this handle is no longer needed, it must be closed via the <a href="https://docs.microsoft.com/windows/desktop/api/bluetoothapis/nf-bluetoothapis-bluetoothfindradioclose">BluetoothFindRadioClose</a>. Returns <b>NULL</b> upon failure. Call the  <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function for more information on the error. The following table  describe common errors: </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/bluetoothapis/nf-bluetoothapis-bluetoothfindfirstradio">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.BluetoothGetRadioInfo(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.BluetoothGetRadioInfo(Windows.Win32.Foundation.HANDLE,Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.BluetoothGetRadioInfo(Windows.Win32.Foundation.HANDLE,Windows.Win32.Devices.Bluetooth.BLUETOOTH_RADIO_INFO*)">
            <summary>Obtains information about a Bluetooth radio.</summary>
            <param name="hRadio">A handle to a local Bluetooth radio, obtained by calling the <a href="https://docs.microsoft.com/windows/desktop/api/bluetoothapis/nf-bluetoothapis-bluetoothfindfirstradio">BluetoothFindFirstRadio</a> or similar functions, or the <b>SetupDiEnumerateDeviceInterfances</b> function.</param>
            <param name="pRadioInfo">A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/bluetoothapis/ns-bluetoothapis-bluetooth_radio_info">BLUETOOTH_RADIO_INFO</a> structure into which information about the radio will be placed. The <b>dwSize</b> member of the <b>BLUETOOTH_RADIO_INFO</b> structure must match the size of the structure.</param>
            <returns>
            <para>The following table  lists common return values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/bluetoothapis/nf-bluetoothapis-bluetoothgetradioinfo">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CloseHandle(Windows.Win32.Foundation.HANDLE)">
            <summary>Closes an open object handle.</summary>
            <param name="hObject">A valid handle to an open object.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If the application is running under a debugger,  the function will throw an exception if it receives either a  handle value that is not valid  or a pseudo-handle value. This can happen if you close a handle twice, or if you  call <b>CloseHandle</b> on a handle returned by the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea">FindFirstFile</a> function instead of calling the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-findclose">FindClose</a> function.</para>
            </returns>
            <remarks>
            <para>The <b>CloseHandle</b> function closes handles to the following objects: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/handleapi/nf-handleapi-closehandle#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetProcessHeap_SafeHandle">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetProcessHeap"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetProcessHeap">
            <summary>Retrieves a handle to the default heap of the calling process.</summary>
            <returns>
            <para>If the function succeeds, the return value is a handle to the calling process's heap. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The <b>GetProcessHeap</b> function obtains a handle to the default heap for the calling process. A process can use this handle to allocate memory from the process heap without having to first create a private heap using the <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heapcreate">HeapCreate</a> function. <b>Windows Server 2003 and Windows XP:  </b>To enable the low-fragmentation heap for the default heap of the process, call the <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heapsetinformation">HeapSetInformation</a> function with the handle returned by <b>GetProcessHeap</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/heapapi/nf-heapapi-getprocessheap#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.HeapFree(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Memory.HEAP_FLAGS,System.Void*)">
            <summary>Frees a memory block allocated from a heap by the HeapAlloc or HeapReAlloc function.</summary>
            <param name="hHeap">
            <para>A handle to the heap whose memory block is to be freed. This handle is returned by either the <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heapcreate">HeapCreate</a> or <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-getprocessheap">GetProcessHeap</a> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/heapapi/nf-heapapi-heapfree#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="dwFlags">
            <para>The heap free options. Specifying the following value overrides the corresponding value specified in the <i>flOptions</i> parameter when the heap was created by using the <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heapcreate">HeapCreate</a> function.</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/heapapi/nf-heapapi-heapfree#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpMem">
            <para>A pointer to the memory block to be freed. This pointer is returned by the <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heapalloc">HeapAlloc</a> or <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heaprealloc">HeapReAlloc</a> function. This pointer can be <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/heapapi/nf-heapapi-heapfree#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. An application can call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> for extended error information.</para>
            </returns>
            <remarks>
            <para>You should not refer in any way to memory that has been freed by <b>HeapFree</b>. After that memory is freed, any information that may have been in it is gone forever. If you require information, do not free memory containing the information. Function calls that return information about memory (such as <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heapsize">HeapSize</a>) may not be used with freed memory, as they may return bogus data. Calling <b>HeapFree</b> twice with the same pointer can cause heap corruption, resulting in subsequent calls to <a href="https://docs.microsoft.com/windows/desktop/api/heapapi/nf-heapapi-heapalloc">HeapAlloc</a> returning the same pointer twice. Serialization ensures mutual exclusion when two or more threads attempt to simultaneously allocate or free blocks from the same heap. There is a small performance cost to serialization, but it must be used whenever multiple threads allocate and free memory from the same heap. Setting the <b>HEAP_NO_SERIALIZE</b> value eliminates mutual exclusion on the heap. Without serialization, two or more threads that use the same heap handle might attempt to allocate or free memory simultaneously, likely causing corruption in the heap. The <b>HEAP_NO_SERIALIZE</b> value can, therefore, be safely used only in the following situations: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/heapapi/nf-heapapi-heapfree#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.TryCreatePackageDependency(System.Runtime.InteropServices.SafeHandle,System.String,Windows.Win32.Storage.Packaging.Appx.PACKAGE_VERSION,Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures,Windows.Win32.Storage.Packaging.Appx.PackageDependencyLifetimeKind,System.String,Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions,Windows.Win32.Foundation.PWSTR@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.TryCreatePackageDependency(Windows.Win32.Security.PSID,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Storage.Packaging.Appx.PACKAGE_VERSION,Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures,Windows.Win32.Storage.Packaging.Appx.PackageDependencyLifetimeKind,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions,Windows.Win32.Foundation.PWSTR*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.TryCreatePackageDependency(Windows.Win32.Security.PSID,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Storage.Packaging.Appx.PACKAGE_VERSION,Windows.Win32.Storage.Packaging.Appx.PackageDependencyProcessorArchitectures,Windows.Win32.Storage.Packaging.Appx.PackageDependencyLifetimeKind,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Storage.Packaging.Appx.CreatePackageDependencyOptions,Windows.Win32.Foundation.PWSTR*)">
            <summary>Creates an install-time reference for a framework package dependency for the current app, using the specified package family name, minimum version, and additional criteria.</summary>
            <param name="user">
            <para>Type: <b>PSID</b> The user scope of the package dependency. If NULL, the caller's user context is used. Must be NULL if [CreatePackageDependencyOptions_ScopeIsSystem](ne-appmodel-createpackagedependencyoptions.md) is specified.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="packageFamilyName">
            <para>Type: <b>PCWSTR</b> The package family name of the framework package on which to take dependency.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="minVersion">
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/appmodel/ns-appmodel-package_version">PACKAGE_VERSION</a></b> The minimum version of the framework package on which to take dependency.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="packageDependencyProcessorArchitectures">
            <para>Type: <b><a href="ne-appmodel-packagedependencyprocessorarchitectures.md">PackageDependencyProcessorArchitectures</a></b> The processor architectures of the package dependency.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lifetimeKind">
            <para>Type: <b><a href="ne-appmodel-packagedependencylifetimekind.md">PackageDependencyLifetimeKind</a></b> The type of artifact to use to define the lifetime of the package dependency. For more information, see the remarks.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lifetimeArtifact">
            <para>Type: <b>PCWSTR</b> The name of the artifact used to define the lifetime of the package dependency. Must be NULL if the *lifetimeKind* parameter is [PackageDependencyLifetimeKind_Process](ne-appmodel-packagedependencylifetimekind.md). For more information, see the remarks.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="options">
            <para>Type: <b><a href="ne-appmodel-createpackagedependencyoptions.md">CreatePackageDependencyOptions</a></b> The options to apply when creating the package dependency.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="packageDependencyId">
            <para>Type: <b>PWSTR*</b> When this method returns, contains the address of a pointer to a null-terminated Unicode string that specifies the ID of the new package dependency. The caller is responsible for freeing this resource once it is no longer needed by calling [HeapFree](/windows/win32/api/heapapi/nf-heapapi-heapfree).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HRESULT</b> If the function succeeds it returns <b>ERROR_SUCCESS</b>. Otherwise, the function returns an error code. The possible error codes include the following. | Return code | Description | |-------------|-------------| | E_INVALIDARG | The *packageDependencyId* parameter is NULL on input. |</para>
            </returns>
            <remarks>
            <para>In your app's installer or during the first run of your app, call this method to specify a set of criteria for a framework package you want to use in your app. This informs the OS that your app has a dependency upon a framework package that meets the specified criteria. If one or more framework packages are installed that meet the criteria, Windows will ensure that at least one of these framework packages will remain installed until the install-time reference is deleted. For more information, see [Use the dynamic dependency API to reference MSIX packages at run time](/windows/apps/desktop/modernize/framework-packages/use-the-dynamic-dependency-api). This function fails if the specified dependency criteria cannot be resolved to a specific package. This package resolution check is skipped if [CreatePackageDependencyOptions_DoNotVerifyDependencyResolution](ne-appmodel-createpackagedependencyoptions.md) is specified for the *options* parameter. This is useful for installers running as user contexts other than the target user (for example, installers running as LocalSystem).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-trycreatepackagedependency#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.AddPackageDependency(System.String,System.Int32,Windows.Win32.Storage.Packaging.Appx.AddPackageDependencyOptions,Windows.Win32.Storage.Packaging.Appx.PACKAGEDEPENDENCY_CONTEXT@,Windows.Win32.Foundation.PWSTR*)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.AddPackageDependency(Windows.Win32.Foundation.PCWSTR,System.Int32,Windows.Win32.Storage.Packaging.Appx.AddPackageDependencyOptions,Windows.Win32.Storage.Packaging.Appx.PACKAGEDEPENDENCY_CONTEXT*,Windows.Win32.Foundation.PWSTR*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.AddPackageDependency(Windows.Win32.Foundation.PCWSTR,System.Int32,Windows.Win32.Storage.Packaging.Appx.AddPackageDependencyOptions,Windows.Win32.Storage.Packaging.Appx.PACKAGEDEPENDENCY_CONTEXT*,Windows.Win32.Foundation.PWSTR*)">
            <summary>Resolves a previously defined PackageDependency to a specific package and adds it to the invoking process' package graph. After the dependency has been added, other code-loading methods (such as LoadLibrary and CoCreateInstance) can find the binaries in the resolved package.</summary>
            <param name="packageDependencyId">
            <para>Type: <b>PCWSTR</b> The ID of the package dependency to be resolved and added to the invoking process' package graph. This parameter must match a package dependency defined by using the [TryCreatePackageDependency](nf-appmodel-trycreatepackagedependency.md) function for the calling user or the system (via the [CreatePackageDependencyOptions_ScopeIsSystem](ne-appmodel-createpackagedependencyoptions.md) option), or else an error is returned.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-addpackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="rank">
            <para>Type: <b>INT32</b> The rank to use to add the resolved package to the caller's package graph. For more information, see the remarks.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-addpackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="options">
            <para>Type: <b><a href="ne-appmodel-addpackagedependencyoptions.md">AddPackageDependencyOptions</a></b> The options to apply when adding the package dependency.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-addpackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="packageDependencyContext">
            <para>Type: <b>PACKAGEDEPENDENCY_CONTEXT*</b> The handle of the added package dependency. This handle is valid until it is passed to <a href="nf-appmodel-removepackagedependency.md">RemovePackageDependency</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-addpackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="packageFullName">
            <para>Type: <b>PCWSTR*</b> When this method returns, contains the address of a pointer to a null-terminated Unicode string that specifies the full name of the package to which the dependency has been resolved. The caller is responsible for freeing this resource once it is no longer needed by calling [HeapFree](/windows/win32/api/heapapi/nf-heapapi-heapfree).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-addpackagedependency#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HRESULT</b> If the function succeeds it returns <b>ERROR_SUCCESS</b>. Otherwise, the function returns an error code. The possible error codes include the following. | Return code | Description | |-------------|-------------| | E_INVALIDARG | The *packageDependencyId* or *packageDependencyContext* parameter is NULL on input. |</para>
            </returns>
            <remarks>
            <para>Calling this method resolves the framework package dependency to a specific package on the system. It also informs the OS that the framework package is in active use and to handle any version updates in a side-by-side manner (effectively delay uninstalling or otherwise servicing the older version until after your app is done using it). Package resolution is specific to a user and can return different values for different users on a system. Each successful **AddPackageDependency** call adds the resolved package to the calling process' package graph, even if already present. There is no duplicate detection or filtering applied by the API (that is, multiple references from a package is not harmful). After resolution is complete, the package dependency stays resolved for that user until the last reference across all processes for that user is removed via [RemovePackageDependency](nf-appmodel-removepackagedependency.md) or the process is terminated. After this method successfully returns, your app can activate types and use content from the framework package until [RemovePackageDependency](nf-appmodel-removepackagedependency.md) is called. If multiple packages are present in the package graph with the same rank as the call to **AddPackageDependency**, the resolved package is (by default) added after others of the same rank. To add a package before others of the same rank, specify [AddPackageDependencyOptions_PrependIfRankCollision](ne-appmodel-addpackagedependencyoptions.md) for the *options* parameter. For more information, see [Use the dynamic dependency API to reference MSIX packages at run time](/windows/apps/desktop/modernize/framework-packages/use-the-dynamic-dependency-api).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/appmodel/nf-appmodel-addpackagedependency#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
    </members>
</doc>
