<?xml version="1.0"?>
<doc>
    <assembly>
        <name>YourPhone.Devices.Managed</name>
    </assembly>
    <members>
        <member name="T:YourPhone.Devices.Managed.Services.ActiveDeviceKeepAliveApplicationService">
            <summary>
            In fulltrust, we keep the process alive if a device is setup to maintain connection.
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.AccountDeviceSettingsGroupView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.AccountDeviceSettingsGroupView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.AccountDeviceSettingsGroupView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.RemoveDeviceDialog.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.RemoveDeviceDialog.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.RemoveDeviceDialog.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.WallpaperSettingsGroupView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.WallpaperSettingsGroupView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Settings.WallpaperSettingsGroupView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.Utilities.AccountUserNameDeviceData.AccountUserNameFallback">
            <summary>
            This property should only be set when we are not able to match the remote device's account
            to an existing account on Windows. This allows us to prompt the user to re-enter creds
            for this account, specifically.
            Once the account has been authenticated and we have an AccountId, this property will be cleared.
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.ViewModels.DccSyncOverMeteredConnectionViewModel.SyncOverMeteredConnectionEnabled">
            <summary>
            Note: Don't use the setter directly if setting value programmatically. See <see cref="M:YourPhone.Devices.Managed.ViewModels.DccSyncOverMeteredConnectionViewModel.SetSyncOverMeteredConnection(System.Boolean)"/>
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.ViewModels.DccSyncOverMeteredConnectionViewModel.UpdateSyncOverMeteredConnectionFromState(YourPhone.Contracts.Devices.WinRT.ISyncOverMeteredConnectionOperationState)">
            <summary>
            Updates <see cref="P:YourPhone.Devices.Managed.ViewModels.DccSyncOverMeteredConnectionViewModel.SyncOverMeteredConnectionEnabled"/> either from transient state or disk
            </summary>
            <param name="state">The transient state</param>
        </member>
        <member name="M:YourPhone.Devices.Managed.ViewModels.DccSyncOverMeteredConnectionViewModel.SetSyncOverMeteredConnection(System.Boolean)">
            <summary>
            Needed to prevent doing unnecessary work when setting the underlying value programmatically.
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.ConfirmationDialog.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.ConfirmationDialog.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.ConfirmationDialog.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.Devices.Managed.Views.DeviceActionIndicatorsView.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceActionIndicatorsView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceActionIndicatorsView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceActionIndicatorsView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityButtonView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityButtonView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityButtonView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityCardView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityCardView.UnloadObject(Microsoft.UI.Xaml.DependencyObject)">
            <summary>
            UnloadObject(DependencyObject)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityCardView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityCardView.DisconnectUnloadedObject(System.Int32)">
            <summary>
            DisconnectUnloadedObject(int connectionId)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceConnectivityCardView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.Devices.Managed.Views.DeviceStatusIndicatorsView.DeviceStatusIndicatorViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceStatusIndicatorsView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceStatusIndicatorsView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceStatusIndicatorsView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceStatusTitleBarView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceStatusTitleBarView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceStatusTitleBarView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.Devices.Managed.Views.DeviceView.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceView.UnloadObject(Microsoft.UI.Xaml.DependencyObject)">
            <summary>
            UnloadObject(DependencyObject)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceView.DisconnectUnloadedObject(System.Int32)">
            <summary>
            DisconnectUnloadedObject(int connectionId)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DeviceView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DoNotDisturbFailureDialog.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DoNotDisturbFailureDialog.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.DoNotDisturbFailureDialog.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="F:YourPhone.Devices.Managed.Views.LiteDeviceView.ViewModelProperty">
            <summary>
            The Dependency property backing the ViewModel property
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.LiteDeviceView.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.LiteDeviceView.UnloadObject(Microsoft.UI.Xaml.DependencyObject)">
            <summary>
            UnloadObject(DependencyObject)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.LiteDeviceView.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.LiteDeviceView.DisconnectUnloadedObject(System.Int32)">
            <summary>
            DisconnectUnloadedObject(int connectionId)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.LiteDeviceView.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.TutorialTip.InitializeComponent">
            <summary>
            InitializeComponent()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.TutorialTip.Connect(System.Int32,System.Object)">
            <summary>
            Connect()
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Views.TutorialTip.GetBindingConnector(System.Int32,System.Object)">
            <summary>
            GetBindingConnector(int connectionId, object target)
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.Boolean">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.WidgetDeviceConnectivity">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.WidgetDeviceIndicators">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.WidgetDeviceStatus">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.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.Devices.Managed.Widgets.WidgetDeviceStatusContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:YourPhone.Devices.Managed.Widgets.WidgetDeviceStatusContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="T:YourPhone.Devices.Managed.YourPhone_Devices_Managed_XamlTypeInfo.XamlMetaDataProvider">
            <summary>
            Main class for providing metadata for the app or library
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.YourPhone_Devices_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXamlType(System.Type)">
            <summary>
            GetXamlType(Type)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.YourPhone_Devices_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXamlType(System.String)">
            <summary>
            GetXamlType(String)
            </summary>
        </member>
        <member name="M:YourPhone.Devices.Managed.YourPhone_Devices_Managed_XamlTypeInfo.XamlMetaDataProvider.GetXmlnsDefinitions">
            <summary>
            GetXmlnsDefinitions()
            </summary>
        </member>
        <member name="T:Windows.Win32.Foundation.LUID">
            <summary>The LUID structure is an opaque structure that specifies an identifier that is guaranteed to be unique on the local machine. For more information, see the reference page for LUID in the Microsoft Windows SDK documentation.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/ntdef/ns-ntdef-luid">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </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="T:Windows.Win32.Security.LUID_AND_ATTRIBUTES">
            <summary>Represents a locally unique identifier (LUID) and its attributes.</summary>
            <remarks>An <b>LUID_AND_ATTRIBUTES</b> structure can represent an LUID whose attributes change frequently, such as when the LUID is used to represent privileges in the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-privilege_set">PRIVILEGE_SET</a> structure. Privileges are represented by LUIDs and have attributes indicating whether they are currently enabled or disabled.</remarks>
        </member>
        <member name="F:Windows.Win32.Security.LUID_AND_ATTRIBUTES.Luid">
            <summary>Specifies an <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-luid">LUID</a> value.</summary>
        </member>
        <member name="F:Windows.Win32.Security.LUID_AND_ATTRIBUTES.Attributes">
            <summary>Specifies attributes of the LUID. This value contains up to 32 one-bit flags. Its meaning is dependent on the definition and use of the LUID.</summary>
        </member>
        <member name="T:Windows.Win32.Security.TOKEN_PRIVILEGES">
            <summary>Contains information about a set of privileges for an access token.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winnt/ns-winnt-token_privileges">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Security.TOKEN_PRIVILEGES.PrivilegeCount">
            <summary>This must be set to the number of entries in the <b>Privileges</b> array.</summary>
        </member>
        <member name="F:Windows.Win32.Security.TOKEN_PRIVILEGES.Privileges">
            <summary>
            <para>Specifies an array of <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-luid_and_attributes">LUID_AND_ATTRIBUTES</a> structures. Each structure contains the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-luid">LUID</a> and attributes of a privilege. To get the name of the privilege associated with a  <b>LUID</b>, call the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-lookupprivilegenamea">LookupPrivilegeName</a> function, passing the address of the <b>LUID</b> as the value of the <i>lpLuid</i> parameter. <div class="alert"><b>Important</b>  The constant<b> ANYSIZE_ARRAY</b> is defined as 1 in the public header Winnt.h. To create this array with more than one element, you must allocate sufficient memory for the structure to take into account additional elements.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winnt/ns-winnt-token_privileges#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="M:Windows.Win32.Security.TOKEN_PRIVILEGES.SizeOf(System.Int32)">
            <summary>Computes the amount of memory that must be allocated to store this struct, including the specified number of elements in the variable length inline array at the end.</summary>
        </member>
        <member name="T:Windows.Win32.PInvoke">
            <content>
            Contains extern methods from "ADVAPI32.dll".
            </content>
            <content>
            Contains extern methods from "KERNEL32.dll".
            </content>
            <content>
            Contains extern methods from "POWRPROF.dll".
            </content>
            <content>
            Contains extern methods from "USER32.dll".
            </content>
        </member>
        <member name="M:Windows.Win32.PInvoke.OpenProcessToken(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Security.TOKEN_ACCESS_MASK,Microsoft.Win32.SafeHandles.SafeFileHandle@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.OpenProcessToken(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_ACCESS_MASK,Windows.Win32.Foundation.HANDLE*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.OpenProcessToken(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_ACCESS_MASK,Windows.Win32.Foundation.HANDLE*)">
            <summary>Opens the access token associated with a process.</summary>
            <param name="ProcessHandle">A handle to the process whose access token is opened. The process must have the PROCESS_QUERY_LIMITED_INFORMATION access permission. See [Process Security and Access Rights](/windows/win32/procthread/process-security-and-access-rights) for more info.</param>
            <param name="DesiredAccess">
            <para>Specifies an <a href="https://docs.microsoft.com/windows/desktop/SecGloss/a-gly">access mask</a> that specifies the requested types of access to the access token. These requested access types are compared with the <a href="https://docs.microsoft.com/windows/desktop/SecGloss/d-gly">discretionary access control list</a> (DACL) of the token to determine which accesses are granted or denied.</para>
            <para>For a list of access rights for access tokens, see <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/access-rights-for-access-token-objects">Access Rights for Access-Token Objects</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocesstoken#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="TokenHandle">A pointer to a handle that identifies the newly opened access token when the function returns.</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>.</para>
            </returns>
            <remarks>
            <para>To get a handle to an elevated process from within a non-elevated process, both processes must be started from the same account. If the process being checked was started by a different account, the checking process needs to have the SE_DEBUG_NAME privilege enabled. See [Privilege Constants (Authorization)](/windows/win32/secauthz/privilege-constants) for more info. To close the access token handle returned through the <i>TokenHandle</i> parameter, call <a href="https://docs.microsoft.com/windows/desktop/api/handleapi/nf-handleapi-closehandle">CloseHandle</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocesstoken#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.AdjustTokenPrivileges(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Foundation.BOOL,Windows.Win32.Security.TOKEN_PRIVILEGES*,System.UInt32,Windows.Win32.Security.TOKEN_PRIVILEGES*,System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.AdjustTokenPrivileges(Windows.Win32.Foundation.HANDLE,Windows.Win32.Foundation.BOOL,Windows.Win32.Security.TOKEN_PRIVILEGES*,System.UInt32,Windows.Win32.Security.TOKEN_PRIVILEGES*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.AdjustTokenPrivileges(Windows.Win32.Foundation.HANDLE,Windows.Win32.Foundation.BOOL,Windows.Win32.Security.TOKEN_PRIVILEGES*,System.UInt32,Windows.Win32.Security.TOKEN_PRIVILEGES*,System.UInt32*)">
            <summary>Enables or disables privileges in the specified access token. Enabling or disabling privileges in an access token requires TOKEN_ADJUST_PRIVILEGES access.</summary>
            <param name="TokenHandle">A handle to the access token that contains the privileges to be modified. The handle must have TOKEN_ADJUST_PRIVILEGES access to the token. If the <i>PreviousState</i> parameter is not <b>NULL</b>, the handle must also have TOKEN_QUERY access.</param>
            <param name="DisableAllPrivileges">Specifies whether the function disables all of the token's privileges. If this value is <b>TRUE</b>, the function disables all privileges and ignores the <i>NewState</i> parameter. If it is <b>FALSE</b>, the function modifies privileges based on the information pointed to by the <i>NewState</i> parameter.</param>
            <param name="NewState">
            <para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_privileges">TOKEN_PRIVILEGES</a> structure that specifies an array of privileges and their attributes. If the <i>DisableAllPrivileges</i> parameter is <b>FALSE</b>, the  <b>AdjustTokenPrivileges</b>  function enables, disables, or removes these privileges for the token. The following table describes the action taken by the <b>AdjustTokenPrivileges</b> function, based on the privilege attribute. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/securitybaseapi/nf-securitybaseapi-adjusttokenprivileges#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="BufferLength">Specifies the size, in bytes, of the buffer pointed to by the <i>PreviousState</i> parameter. This parameter can be zero if the <i>PreviousState</i> parameter is <b>NULL</b>.</param>
            <param name="PreviousState">
            <para>A pointer to a buffer that the function fills with a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_privileges">TOKEN_PRIVILEGES</a> structure that contains the previous state of any privileges that the function modifies.  That is, if a privilege has been modified by this function, the privilege and its previous state are contained in the <b>TOKEN_PRIVILEGES</b> structure referenced by <i>PreviousState</i>. If the <b>PrivilegeCount</b> member of <b>TOKEN_PRIVILEGES</b> is zero, then no privileges have been changed by this function. This parameter can be <b>NULL</b>.</para>
            <para>If you specify a buffer that is too small to receive the complete list of modified privileges, the function fails and does not adjust any privileges. In this case, the function sets the variable pointed to by the <i>ReturnLength</i> parameter to the number of bytes required to hold the complete list of modified privileges.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/securitybaseapi/nf-securitybaseapi-adjusttokenprivileges#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="ReturnLength">A pointer to a variable that receives the required size, in bytes, of the buffer pointed to by the <i>PreviousState</i> parameter. This parameter can be <b>NULL</b> if <i>PreviousState</i> is <b>NULL</b>.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. To determine whether the function adjusted all of the specified privileges, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>, which returns one of the following values when the function succeeds: </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The <b>AdjustTokenPrivileges</b> function cannot add new privileges to the access token. It can only enable or disable the token's existing privileges. To determine the token's privileges, call the <a href="https://docs.microsoft.com/windows/desktop/api/securitybaseapi/nf-securitybaseapi-gettokeninformation">GetTokenInformation</a> function. The <i>NewState</i> parameter can specify privileges that the token does not have, without causing the function to fail. In this case, the function adjusts the privileges that the token does have and ignores the other privileges so that the function succeeds. Call the <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function to determine whether the function adjusted all of the specified privileges. The <i>PreviousState</i> parameter indicates the privileges that were adjusted. The <i>PreviousState</i> parameter retrieves a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_privileges">TOKEN_PRIVILEGES</a> structure that contains the original state of the adjusted privileges. To restore the original state, pass the <i>PreviousState</i> pointer as the <i>NewState</i> parameter in a subsequent call to the <b>AdjustTokenPrivileges</b> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/securitybaseapi/nf-securitybaseapi-adjusttokenprivileges#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.LookupPrivilegeValue(System.String,System.String,Windows.Win32.Foundation.LUID@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.LookupPrivilegeValue(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.LUID*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.LookupPrivilegeValue(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.LUID*)">
            <summary>Retrieves the locally unique identifier (LUID) used on a specified system to locally represent the specified privilege name. (Unicode)</summary>
            <param name="lpSystemName">A pointer to a null-terminated string that specifies the name of the system on which the privilege name is retrieved. If a null string is specified, the function attempts to find the privilege name on the local system.</param>
            <param name="lpName">A pointer to a null-terminated string that specifies the name of the privilege, as defined in the Winnt.h header file. For example, this parameter could specify the constant, SE_SECURITY_NAME, or its corresponding string, "SeSecurityPrivilege".</param>
            <param name="lpLuid">A pointer to a variable that receives the LUID by which the privilege is known on the system specified by the <i>lpSystemName</i> parameter.</param>
            <returns>
            <para>If the function succeeds, the function returns nonzero.</para>
            <para>If the function fails, it returns zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>The <b>LookupPrivilegeValue</b> function supports only the privileges specified in the Defined Privileges section of Winnt.h. For a list of values, see <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/privilege-constants">Privilege Constants</a>.</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.GetCurrentProcess_SafeHandle">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetCurrentProcess"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetCurrentProcess">
            <summary>Retrieves a pseudo handle for the current process.</summary>
            <returns>The return value is a pseudo handle to the current process.</returns>
            <remarks>
            <para>A pseudo handle is a special constant, currently (<b>HANDLE</b>)-1, that is interpreted as the current process handle. For compatibility with future operating systems, it is best to call <b>GetCurrentProcess</b> instead of hard-coding this constant value. The calling process can use a pseudo handle to specify its own process whenever a process handle is required. Pseudo handles are not inherited by child processes. This handle has the <b>PROCESS_ALL_ACCESS</b> access right to the process object. For more information, see <a href="https://docs.microsoft.com/windows/desktop/ProcThread/process-security-and-access-rights">Process Security and Access Rights</a>. <b>Windows Server 2003 and Windows XP:  </b>This handle has the maximum access allowed by the security descriptor of the process to the primary token of the process. A process can create a "real" handle to itself that is valid in the context of other processes, or that can be inherited by other processes, by specifying the pseudo handle as the source handle in a call to the <a href="https://docs.microsoft.com/windows/desktop/api/handleapi/nf-handleapi-duplicatehandle">DuplicateHandle</a> function. A process can also use the <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-openprocess">OpenProcess</a> function to open a real handle to itself. The pseudo handle need not be closed when it is no longer needed. Calling the <a href="https://docs.microsoft.com/windows/desktop/api/handleapi/nf-handleapi-closehandle">CloseHandle</a> function with a pseudo handle has no effect. If the pseudo handle is duplicated by <a href="https://docs.microsoft.com/windows/desktop/api/handleapi/nf-handleapi-duplicatehandle">DuplicateHandle</a>, the duplicate handle must be closed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetSuspendState(Windows.Win32.Foundation.BOOLEAN,Windows.Win32.Foundation.BOOLEAN,Windows.Win32.Foundation.BOOLEAN)">
            <summary>Suspends the system by shutting power down. Depending on the Hibernate parameter, the system either enters a suspend (sleep) state or hibernation (S4).</summary>
            <param name="bHibernate">
            <para>If this parameter is <b>TRUE</b>, the system hibernates. If the parameter is <b>FALSE</b>, the system is suspended.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/powrprof/nf-powrprof-setsuspendstate#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="bForce">This parameter has no effect.</param>
            <param name="bWakeupEventsDisabled">
            <para>If this parameter is <b>TRUE</b>, the system disables all wake events. If the parameter is <b>FALSE</b>, any system wake events remain enabled.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/powrprof/nf-powrprof-setsuspendstate#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. 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 calling process must have the <b>SE_SHUTDOWN_NAME</b> privilege. To enable the <b>SE_SHUTDOWN_NAME</b> privilege, use the <a href="https://docs.microsoft.com/windows/desktop/api/securitybaseapi/nf-securitybaseapi-adjusttokenprivileges">AdjustTokenPrivileges</a> function. For more information, see <a href="https://docs.microsoft.com/windows/desktop/SecBP/changing-privileges-in-a-token">Changing Privileges in a Token</a>. An application may use <b>SetSuspendState</b> to transition the system from the working state to the standby (sleep), or optionally, hibernate (S4) state. This function is similar to the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-setsystempowerstate">SetSystemPowerState</a> function. For more information on using PowrProf.h, see <a href="https://docs.microsoft.com/windows/desktop/Power/power-schemes">Power Schemes</a>. For information about events that can wake the system, see <a href="https://docs.microsoft.com/windows/desktop/Power/system-wake-up-events">System Wake-up Events</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/powrprof/nf-powrprof-setsuspendstate#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.LockWorkStation">
            <summary>Locks the workstation's display.</summary>
            <returns>
            <para>If the function succeeds, the return value is nonzero. Because the function executes asynchronously, a nonzero return value indicates that the operation has been initiated. It does not indicate whether the workstation has been successfully locked. 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>.</para>
            </returns>
            <remarks>
            <para>The <b>LockWorkStation</b> function is callable only by processes running on the interactive desktop. In addition, the user must be logged on, and the workstation cannot already be locked. Common reasons the workstation might not be locked even if the function succeeds include the following: no user is logged on, the workstation is already locked, the process is not running on the interactive desktop, or the request is denied by the Graphical Identification and Authentication (GINA) DLL. This function has the same result as pressing Ctrl+Alt+Del and clicking <b>Lock</b>. To unlock the workstation, the user must log in. There is no function you can call to determine whether the workstation is locked. To receive a notification when the user locks the workstation or logs in, use the <a href="https://docs.microsoft.com/windows/desktop/api/wtsapi32/nf-wtsapi32-wtsregistersessionnotification">WTSRegisterSessionNotification</a> function to receive <a href="https://docs.microsoft.com/windows/desktop/TermServ/wm-wtssession-change">WM_WTSSESSION_CHANGE</a> messages. You can use session notifications to track the desktop state so you know whether it is possible to interact with the user.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-lockworkstation#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.ExitWindowsEx(Windows.Win32.System.Shutdown.EXIT_WINDOWS_FLAGS,Windows.Win32.System.Shutdown.SHUTDOWN_REASON)">
            <summary>Logs off the interactive user, shuts down the system, or shuts down and restarts the system.</summary>
            <param name="uFlags"></param>
            <param name="dwReason">
            <para>The reason for initiating the shutdown. This parameter must be one of the <a href="https://docs.microsoft.com/windows/desktop/Shutdown/system-shutdown-reason-codes">system shutdown reason codes</a>. If this parameter is zero, the SHTDN_REASON_FLAG_PLANNED reason code  will not be set and therefore the default action is an undefined shutdown that is logged as "No title for this reason could be found". By default, it is also an unplanned shutdown. Depending on how the system is configured, an unplanned shutdown triggers the creation of a file that contains the system state information, which can delay shutdown. Therefore, do not use zero for this parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-exitwindowsex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. Because the function executes asynchronously, a nonzero return value indicates that the shutdown has been initiated. It does not indicate whether the shutdown will succeed. It is possible that the system, the user, or another application will abort the shutdown. 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>.</para>
            </returns>
            <remarks>
            <para>The <b>ExitWindowsEx</b> function returns as soon as it has initiated the shutdown process. The shutdown or logoff then proceeds asynchronously. The function is designed to stop all processes in the caller's logon session. Therefore, if you are not the interactive user, the function can succeed without actually shutting down the computer. If you are not the interactive user, use the <a href="https://docs.microsoft.com/windows/desktop/api/winreg/nf-winreg-initiatesystemshutdowna">InitiateSystemShutdown</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winreg/nf-winreg-initiatesystemshutdownexa">InitiateSystemShutdownEx</a> function. A non-zero return value does not mean the logoff was or will be successful. The shutdown is an asynchronous process, and it can occur long  after the API call has returned, or not  at all. Even if the timeout value is zero,  the shutdown can still be aborted by applications, services, or even the system. The non-zero return value indicates that the validation of the rights and parameters was  successful and that the system accepted the shutdown request. When this function is called, the caller must specify whether or not applications with unsaved changes should be forcibly closed.  If the caller chooses not to force these applications to close and an application with unsaved changes is running on the console session, the shutdown will remain in progress until the user logged into the console session aborts the shutdown, saves changes, closes the application, or forces the application to close.  During this period, the shutdown may not be aborted except by the console user, and another shutdown may not be initiated. Calling this function with the value of the <i>uFlags</i> parameter set to EWX_FORCE avoids this situation. Remember that doing this  may result in loss of data. To set a shutdown priority for an application relative to other applications in the system, use the <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-setprocessshutdownparameters">SetProcessShutdownParameters</a> function. During a shutdown or log-off operation, running applications are allowed a specific amount of time to respond to the shutdown request. If this time expires before all applications have stopped, the system displays a user interface that allows the user to forcibly shut down the system or to cancel the shutdown request. If the EWX_FORCE value is specified, the system forces running applications to stop when the time expires. If the EWX_FORCEIFHUNG value is specified, the system forces hung applications to close and does not display the dialog box. Console processes receive a separate notification message, CTRL_SHUTDOWN_EVENT or CTRL_LOGOFF_EVENT, as the situation warrants. A console process routes these messages to its <a href="https://docs.microsoft.com/windows/console/handlerroutine">HandlerRoutine</a> function. <b>ExitWindowsEx</b> sends these notification messages asynchronously; thus, an application cannot assume that the console notification messages have been handled when a call to <b>ExitWindowsEx</b> returns. To shut down or restart the system, the calling process must use the <a href="https://docs.microsoft.com/windows/desktop/api/securitybaseapi/nf-securitybaseapi-adjusttokenprivileges">AdjustTokenPrivileges</a> function to enable the SE_SHUTDOWN_NAME privilege. For more information, see <a href="https://docs.microsoft.com/windows/desktop/SecBP/running-with-special-privileges">Running with Special Privileges</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-exitwindowsex#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
    </members>
</doc>
