<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.VisualStudio.LiveShare.Rpc</name>
    </assembly>
    <members>
        <member name="T:Microsoft.Cascade.Rpc.Arguments">
            <summary>
            Arguments for an RPC notification or request.
            </summary>
            <remarks>
            Arguments are represented as one of:
             - An array of positional arguments
             - A dictionary of named arguments
             - An EventArgs object with properties that are named arguments
            </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.Arguments.Resolve(System.Reflection.ParameterInfo[],System.Object[],System.Int32)">
            <summary>
            Matches arguments to a list of method parameters, based on the
            argument positions, names, and/or types.
            </summary>
            <param name="parameters">Reflected method parameters</param>
            <param name="arguments">Arguments array to be filled in by the resolution.</param>
            <param name="count">Count of arguments to resolve. May be less than the length
            of parmaeters if final parameter(s) are handled separately.</param>
            <returns>True if the arguments were successfully resolved, or false if the arguments
            are invalid (in number or type) for the specified parameters.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.Arguments.Resolve``1">
            <summary>
            Matches named arguments to an EventArgs type.
            </summary>
            <typeparam name="T">EventArgs subclass</typeparam>
            <returns>Resolved EventArgs instance, or null if the arguments are invalid
            for the specified EventArgs type.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.Arguments.Resolve(System.Type)">
            <summary>
            Matches named arguments to an EventArgs type.
            </summary>
            <param name="eventArgsType">EventArgs subclass</param>
            <returns>Resolved EventArgs instance, or null if the arguments are invalid
            for the specified EventArgs type.</returns>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.FilterChain">
            <summary>
            A chain of RPC message filters. Filters will be called one after another in the order that they were added.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.IConnectionCheck">
            <summary>
            Represents a generic client capable of checking if connection is immediately available.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IConnectionCheck.CanConnectAsync(System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
            <summary>
            Check if the connection is readily available.
            </summary>
            <param name="trace"></param>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.IRpcClient">
            <summary>
            Represents a generic RPC client capable of creating RPC sessions.
            </summary>
            <remarks>
            The recommended usage pattern is to call <see cref="M:Microsoft.Cascade.Rpc.IRpcClient.ConnectAsync(System.Threading.CancellationToken)"/> once first
            and then call <see cref="M:Microsoft.Cascade.Rpc.IRpcClient.CreateSessionAsync(System.Threading.CancellationToken)"/>
            in order to create an RPC session associated with the connection.
            </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcClient.ConnectAsync(System.Threading.CancellationToken)">
            <summary>
            Establishes an RPC connection and initializes internal state.
            </summary>
            <param name="cancellationToken">The cancellation token.</param>
            <remarks>
            It's mandatory to call this method before trying to create an RPC session.
            </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcClient.CreateSessionAsync(System.Threading.CancellationToken)">
            <summary>
            Creates a new RPC session for the current connection.
            </summary>
            <param name="cancellationToken">A cancellation token.</param>
            <returns>The created session.</returns>
            <exception cref="T:System.InvalidOperationException">
            Thrown if the client instance is not connected.
            </exception>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcClient.ReconnectToSessionAsync(Microsoft.Cascade.Rpc.IRpcSession,System.Threading.CancellationToken)">
            <summary>
            Reconnects this client to a given rpc session.
            </summary>
            <param name="rpcSession">The rpc session to connect to.</param>
            <param name="cancellationToken">Cancellation token.</param>
            <returns>True if reconnect succeeded, false if the host declined the reconnect request.</returns>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.IRpcFilter">
            <summary>
            An RPC filter gets a chance to modify RPC messages immediately before they are sent
            or after they are received.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcFilter.FilterNotification(Microsoft.Cascade.Rpc.NotificationMessage,System.Boolean)">
            <summary>
            Filters a notification message before sending or after receiving.
            </summary>
            <param name="notification">The notification message being sent or received.</param>
            <param name="isSending">True if the notification is about to be sent;
            false if the notification was just received.</param>
            <returns>The notification message, potentially modified, or null to suppress the notification.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcFilter.FilterRequest(Microsoft.Cascade.Rpc.RequestMessage,System.Boolean)">
            <summary>
            Filters a request message before sending or after receiving.
            </summary>
            <param name="request">The request message being sent or received.</param>
            <param name="isSending">True if the request is about to be sent;
            false if the request was just received.</param>
            <returns>The (non-null) request message, potentially modified.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcFilter.FilterResponse(Microsoft.Cascade.Rpc.RequestMessage,Microsoft.Cascade.Rpc.ResponseMessage,System.Boolean)">
            <summary>
            Filters a response message before sending or after receiving.
            </summary>
            <param name="request">The request message that generated the response.</param>
            <param name="response">The response message being sent or received.</param>
            <param name="isSending">True if the response is about to be sent;
            false if the response was just received.</param>
            <returns>The (non-null) response message, potentially modified.</returns>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.IRpcService">
            <summary>
            Defines a service that can be registered for use with an RpcSession.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcService.Name">
            <summary>
            Name of the service. In JSON-RPC requests, notification and request method names
            are prefixed with the service name (delimited with a period).
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcService.HandleNotification(Microsoft.Cascade.Rpc.NotificationMessage)">
            <summary>
            Receives a notification from the RPC client.
            </summary>
            <remarks>
            Notifications cannot be cancelled by the caller.
            An implementation of this method should avoid a significant synchronous delay.
            </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcService.HandleRequestAsync(Microsoft.Cascade.Rpc.RequestMessage,System.IProgress{Microsoft.Cascade.Rpc.ProgressMessage},System.Threading.CancellationToken)">
            <summary>
            Receives a request from the RPC client, and returns a response object.
            </summary>
            <remarks>
            Requests can be cancelled by the caller; request handlers should respond to
            cancellations via the cancellation token. An implementation of this method should
            avoid a significant synchronous delay, though any amount of delay is allowed before
            returning the asynchronous result.
            </remarks>
        </member>
        <member name="E:Microsoft.Cascade.Rpc.IRpcService.Notify">
            <summary>
            Sends notifications to the RPC client.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcService.Trace">
            <summary>
            Gets a trace source that is used to trace messages related to this service.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.IRpcSession">
            <summary>
            Interface for an RPC session - enables a session to be mocked for testing.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcSession.StreamTransport">
            <summary>
            Gets or sets stream transport service that allows direct stream connection over the rpc session,
            or null if there is no such transport.
            </summary>
            <remarks>
            This property is initially null for a new session, and should be set to IRpcStreamTransport
            once, before RPC services use this session. Changing this property after that may cause undetermined behavior.
            It is dependent on the underlying transport like ssh; the RPC library doesn't set or use it.
            It is merely a convenient way to associate stream transport with a session.
            </remarks>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcSession.Principal">
             <summary>
             Gets or sets a principal containing claims about the user or server on
             the other end of the session, or null if the session is not authenticated.
             </summary>
             <remarks>
             This property is initially null for an unauthenticated session, and should
             be set to a ClaimsPrincipal instance after successful client or server
             authentication.
            
             The set of claims is application-dependent; the RPC library does not
             use the claims. The property is merely a convenient way to associate
             authentication results with a session.
             </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcSession.EnableReconnection">
            <summary>
            Enables reconnection on this session. If the session doesn't reconnect in 1 min time delay,
            the session is disposed.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcSession.Filter">
            <summary>
            Gets or sets RPC message filter.
            The filter, if not null, will be applied to:
            * Requests and notifications before sending them to the RPC stream.
            * Responses read from from the RPC stream.
            Filter can be changed when the session is running.
            Filter used for a request will also be used for the response for that request.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcSession.WaitForSentMessagesAsync">
            <summary>
            Wait for all previously sent request and notification RPC messages to be written to stream.
            </summary>
            <returns>Task that completes when all previously sent request and notification RPC messages are written to the stream.</returns>
            <exception cref="T:System.OperationCanceledException">If the RPC session disconnectes before all messages are sent</exception>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcSession.SendRequestAsync(Microsoft.Cascade.Rpc.RequestMessage,System.Diagnostics.TraceSource,System.Threading.CancellationToken,System.IProgress{Microsoft.Cascade.Rpc.ProgressMessage},System.Boolean)">
            <summary>
            Sends a request and waits asynchronously for a response.
            </summary>
            <param name="message">RPC request message</param>
            <param name="trace">Trace source for the request and response message</param>
            <param name="cancellationToken">Token for cancelling the request</param>
            <param name="progress">Optional progress object for receiving progress
            notifications while the request is processing.</param>
            <param name="finalRequest">True if the RPC session should be closed
            immediately after the response to this request is received
            (before trying to reading any more bytes from the stream).</param>
            <returns>Async RPC response message</returns>
            <remarks>
            The <code>finalRequest</code> parameter allows closing the session
            without having to cancel a pending read operation, which can be problematic
            for some kinds of streams (WebSocket / Azure Relay).
            </remarks>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcSessionClient.Session">
            <summary>
            Active RPC session
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcSessionClient.InvokeAsync``1(System.String,System.String,System.Object[],System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
            <summary>
            Invokes remote service method.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcSessionClient.InvokeAsync(System.String,System.String,System.Object[],System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
            <summary>
            Invokes remote service method.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcSessionClient.Notify(System.String,System.String,System.Object[],System.Diagnostics.TraceSource)">
            <summary>
            Notify remote service method
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.IRpcSessionInstrumentation">
            <summary>
            RPC session instrumentation interface.
            Subscribe to events that RPC session will invoke when it handles RPC.
            </summary>
        </member>
        <member name="E:Microsoft.Cascade.Rpc.IRpcSessionInstrumentation.RpcRequestHandled">
            <summary>
            Event fired when an RPC request is handled.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcStream.RawStream">
            <summary>
            Gets the raw stream underlying this RPC stream.
            </summary>
            <remarks>RPC implementations that are not wrapping a stream may return null
            from this property. Therefore any use of this property must check for null.</remarks>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcStream.ReadAsync(System.Threading.CancellationToken)">
            <summary>
            Reads one message from the RPC stream.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcStream.WriteAsync(Microsoft.Cascade.Rpc.Message,System.Threading.CancellationToken)">
            <summary>
            Writes one message to the RPC stream.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.IRpcStreamTransport">
            <summary>
            Stream transport API to pass stream over RPC session.
            To use the transport, one can call OpenStreamAsync, while
            the other side of the RPC sessions should handle StreamOpening event.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.IRpcStreamTransport.CanSeek">
            <summary>
            A value indicating whether random access streams can be passed
            </summary>
        </member>
        <member name="E:Microsoft.Cascade.Rpc.IRpcStreamTransport.StreamOpening">
            <summary>
            Event that fires when the other side of RPC session tries to opens a stream.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.IRpcStreamTransport.OpenStreamAsync(System.String,System.Threading.CancellationToken)">
            <summary>
            Opens a direct stream over the RPC session
            </summary>
            <param name="id">Stream id.</param>
            <param name="cancellationToken">A cancellation token.</param>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.StreamOpeningEventArgs">
            <summary>
            Event args for the event that stream transport fires when a stream opens
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.StreamOpeningEventArgs.Id">
            <summary>
            Stream id
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.StreamOpeningEventArgs.Stream">
            <summary>
            Stream over the RPC session
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.StreamOpeningEventArgs.IsAuthorized">
            <summary>
            A value indicating whether the handler authorizes opening of the stream.
            If set to true by the handler, OpenStreamAsync will succeed,
            and the handler must assume the ownership of Stream and use it
            to communicate with the other party.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.Message">
            <summary>
            Base class for a top-level JSON-RPC message.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.KeepAliveMessage">
            <summary>
            A JSON-RPC message to mimic keep-alive TCP packet.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.ReconnectMessage">
            <summary>
            A JSON-RPC message to enable reconnection due to network disruptions.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.ConnectMessage">
            <summary>
            A JSON-RPC message to enable reconnection due to network disruptions.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.NotificationMessage">
            <summary>
            A JSON-RPC message that has no ID and no response.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RequestMessage">
            <summary>
            A JSON-RPC message that has an ID and requires a response.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.ProgressMessage.Value">
            <summary>
            Gets or sets the progress value.
            </summary>
            <remarks>
            If the progress value is a non-primitive type, the return value may not be resolved properly.
            Use the generic <see cref="M:Microsoft.Cascade.Rpc.ProgressMessage.GetValue``1"/> method instead.
            </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.ProgressMessage.GetValue``1">
            <summary>
            Gets the progress value, resolved to a specific type.
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.ResponseMessage">
            <summary>
            Response message for a JSON-RPC request.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.ResponseMessage.HandlingTimes">
             <summary>
             Array of times in milliseconds taken to send/receive/respond to requests
             </summary>
             <remarks>
             Includes times from sending requests to receiving responses and
             time from receiving requests to returning responses.
             
             E.g. a simple scenario where A makes a request to B:
             A sends a request to B and begins timing.
             B receives the request and begins timing.
             B processes the request.
             B is ready to resolve the request, so stops timing, stamps
             the time it took to respond on the response message, and sends the reponse.
             A receives the response, stops timing, subtracts off the time taken for B to respond (this time is
             included in the response message) and adds another item to the list of handling times on the response message.
             The first time in the list of handling times is the amount of time it took B to process the request,
             and the second time in the list is the communication latency between A and B.
            
             In more complicated scenarios where requests go through multiple clients,
             the list of handling times can be used to find the communication latency between
             each RPC client in the chain, and how long processing took at each client.
            
             In general, the last client in the chain will only contribute one time to the list:
             the amount of time it took to respond to the request. So this is always
             the first item in the list. Similarly, the first client in the chain (the one that made the initial request)
             only contributes one time to the list: the communication latency between itself and the
             first client in the chain. So this is always the last item in the list. Intermediate clients contribute 2 times each:
             the first is the communication latency between the client and the next in the chain. The second is the time
             it took the client to do any intermediate processing before forwarding the request on to the next client and
             returning the response to the previous client.
            
             E.g. if HandlingTimes = [a, b, c, d], there were three clients involved in the request. a is the time it took
             the last client to handle the request, b is the communication latency between the second and third client,
             c is the time it took the second client from receiving the request from the first client to forward the request
             to the third client plus the time from receiving the response from the third client to sending it to the first client,
             and d is the communication latency between the first and second client. The full time from the first client
             making the request to receiving the response is a + b + c + d. In general, the latency of the request is the sum of
             every other item in the list, starting at index 1 (here b + d), and the processing time is the sum of every other item
             in the list, starting at index 0 (here a + c).
             </remarks>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.ResponseError">
            <summary>
            Error details for a JSON-RPC error response.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.ExceptionEventArgs">
            <summary>
            Event arguments for exception thrown event
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.NamedPipeServer">
            <summary>
            Named pipe server that can accept multiple connections.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.NamedPipeServer.RunAsync(System.Threading.CancellationToken)">
            <summary>
            Starts and runs the named pipe server until <paramref name="cancellationToken"/> is cancelled.
            Disposes the server after that and throws <c>OperationCancelledException</c>
            </summary>
            <param name="cancellationToken">Cancellation token that controls the life time of the server</param>
            <returns>Server task</returns>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_BREAKAWAY_FROM_JOB">
            <summary>
            The child processes of a process associated with a job are not associated with the job.
            If the calling process is not associated with a job, this constant has no effect. If the calling process is associated with a job, the job must set the JOB_OBJECT_LIMIT_BREAKAWAY_OK limit.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_DEFAULT_ERROR_MODE">
            <summary>
            The new process does not inherit the error mode of the calling process. Instead, the new process gets the default error mode.
            This feature is particularly useful for multithreaded shell applications that run with hard errors disabled.
            The default behavior is for the new process to inherit the error mode of the caller. Setting this flag changes that default behavior.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_NEW_CONSOLE">
            <summary>
            The new process has a new console, instead of inheriting its parent's console (the default). For more information, see Creation of a Console.
            This flag cannot be used with DETACHED_PROCESS.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_NEW_PROCESS_GROUP">
            <summary>
            The new process is the root process of a new process group. The process group includes all processes that are descendants of this root process. The process identifier of the new process group is the same as the process identifier, which is returned in the lpProcessInformation parameter. Process groups are used by the GenerateConsoleCtrlEvent function to enable sending a CTRL+BREAK signal to a group of console processes.
            If this flag is specified, CTRL+C signals will be disabled for all processes within the new process group.
            This flag is ignored if specified with <see cref="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_NEW_CONSOLE"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_NO_WINDOW">
            <summary>
            The process is a console application that is being run without a console window. Therefore, the console handle for the application is not set.
            This flag is ignored if the application is not a console application, or if it is used with either <see cref="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_NEW_CONSOLE"/> or <see cref="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.DETACHED_PROCESS"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_PROTECTED_PROCESS">
            <summary>
            The process is to be run as a protected process. The system restricts access to protected processes and the threads of protected processes. For more information on how processes can interact with protected processes, see Process Security and Access Rights.
            To activate a protected process, the binary must have a special signature. This signature is provided by Microsoft but not currently available for non-Microsoft binaries. There are currently four protected processes: media foundation, audio engine, Windows error reporting, and system. Components that load into these binaries must also be signed. Multimedia companies can leverage the first two protected processes. For more information, see Overview of the Protected Media Path.
            Windows Server 2003 and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_PRESERVE_CODE_AUTHZ_LEVEL">
            <summary>
            Allows the caller to execute a child process that bypasses the process restrictions that would normally be applied automatically to the process.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_SEPARATE_WOW_VDM">
            <summary>
            This flag is valid only when starting a 16-bit Windows-based application. If set, the new process runs in a private Virtual DOS Machine (VDM). By default, all 16-bit Windows-based applications run as threads in a single, shared VDM. The advantage of running separately is that a crash only terminates the single VDM; any other programs running in distinct VDMs continue to function normally. Also, 16-bit Windows-based applications that are run in separate VDMs have separate input queues. That means that if one application stops responding momentarily, applications in separate VDMs continue to receive input. The disadvantage of running separately is that it takes significantly more memory to do so. You should use this flag only if the user requests that 16-bit applications should run in their own VDM.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_SHARED_WOW_VDM">
            <summary>
            The flag is valid only when starting a 16-bit Windows-based application. If the DefaultSeparateVDM switch in the Windows section of WIN.INI is TRUE, this flag overrides the switch. The new process is run in the shared Virtual DOS Machine.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_SUSPENDED">
            <summary>
            The primary thread of the new process is created in a suspended state, and does not run until the <see cref="!:ResumeThread"/> function is called.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_UNICODE_ENVIRONMENT">
            <summary>
            If this flag is set, the environment block pointed to by lpEnvironment uses Unicode characters. Otherwise, the environment block uses ANSI characters.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.DEBUG_ONLY_THIS_PROCESS">
            <summary>
            The calling thread starts and debugs the new process. It can receive all related debug events using the WaitForDebugEvent function.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.DEBUG_PROCESS">
            <summary>
            The calling thread starts and debugs the new process and all child processes created by the new process. It can receive all related debug events using the WaitForDebugEvent function.
            A process that uses <see cref="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.DEBUG_PROCESS"/> becomes the root of a debugging chain. This continues until another process in the chain is created with <see cref="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.DEBUG_PROCESS"/>.
            If this flag is combined with <see cref="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.DEBUG_ONLY_THIS_PROCESS"/>, the caller debugs only the new process, not any child processes.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.DETACHED_PROCESS">
            <summary>
            For console processes, the new process does not inherit its parent's console (the default). The new process can call the <see cref="!:AllocConsole"/> function at a later time to create a console. For more information, see Creation of a Console.
            This value cannot be used with <see cref="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.CREATE_NEW_CONSOLE"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.EXTENDED_STARTUPINFO_PRESENT">
            <summary>
            The process is created with extended startup information; the lpStartupInfo parameter specifies a <see cref="!:STARTUPINFOEX"/> structure.
            Windows Server 2003 and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.CreateProcessFlags.INHERIT_PARENT_AFFINITY">
            <summary>
            The process inherits its parent's affinity. If the parent process has threads in more than one processor group, the new process inherits the group-relative affinity of an arbitrary group in use by the parent.
            Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP:  This value is not supported.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.PROCESS_INFORMATION.hProcess">
            <summary>
            A handle to the newly created process. The handle is used to specify the process in all functions that perform operations on the process object.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.PROCESS_INFORMATION.hThread">
            <summary>
            A handle to the primary thread of the newly created process. The handle is used to specify the thread in all functions that perform operations on the thread object.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.PROCESS_INFORMATION.dwProcessId">
            <summary>
            A value that can be used to identify a process. The value is valid from the time the process is created until all handles to the process are closed and the process object is freed; at this point, the identifier may be reused.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.PROCESS_INFORMATION.dwThreadId">
            <summary>
            A value that can be used to identify a thread. The value is valid from the time the thread is created until all handles to the thread are closed and the thread object is freed; at this point, the identifier may be reused.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Microsoft.Cascade.Rpc.Utility.NativeMethods.CloseHandle(System.IntPtr)"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle.Invalid">
            <summary>
            An invalid handle that may be used in place of <see cref="F:Microsoft.Cascade.Rpc.Utility.NativeMethods.INVALID_HANDLE_VALUE"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle.Null">
            <summary>
            A handle that may be used in place of <see cref="F:System.IntPtr.Zero"/>.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle"/> class.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle.#ctor(System.IntPtr,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle"/> class.
            </summary>
            <param name="preexistingHandle">An object that represents the pre-existing handle to use.</param>
            <param name="ownsHandle">
                <see langword="true" /> to have the native handle released when this safe handle is disposed or finalized;
                <see langword="false" /> otherwise.
            </param>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle.IsInvalid">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Cascade.Rpc.Utility.SafeObjectHandle.ReleaseHandle">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Cascade.Rpc.Utility.STARTUPINFO">
            <summary>
            Specifies the window station, desktop, standard handles, and appearance of the main window for a process at creation time.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.cb">
            <summary>
            The size of this data structure.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.lpReserved">
            <summary>
            Reserved; must be NULL.
            Actual type: char*.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.lpDesktop">
            <summary>
            The name of the desktop, or the name of both the desktop and window station for this process. A backslash in the string indicates that the string includes both the desktop and window station names. For more information, see Thread Connection to a Desktop.
            Actual type: char*.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.lpTitle">
            <summary>
            For console processes, this is the title displayed in the title bar if a new console window is created. If NULL, the name of the executable file is used as the window title instead. This parameter must be NULL for GUI or console processes that do not create a new console window.
            Actual type: char*.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwX">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies STARTF_USEPOSITION, this member is the x offset of the upper left corner of a window if a new window is created, in pixels. Otherwise, this member is ignored.
            The offset is from the upper left corner of the screen. For GUI processes, the specified position is used the first time the new process calls CreateWindow to create an overlapped window if the x parameter of CreateWindow is CW_USEDEFAULT.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwY">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies STARTF_USEPOSITION, this member is the y offset of the upper left corner of a window if a new window is created, in pixels. Otherwise, this member is ignored.
            The offset is from the upper left corner of the screen. For GUI processes, the specified position is used the first time the new process calls CreateWindow to create an overlapped window if the y parameter of CreateWindow is CW_USEDEFAULT.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwXSize">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies STARTF_USESIZE, this member is the width of the window if a new window is created, in pixels. Otherwise, this member is ignored.
            For GUI processes, this is used only the first time the new process calls CreateWindow to create an overlapped window if the nWidth parameter of CreateWindow is CW_USEDEFAULT.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwYSize">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies STARTF_USESIZE, this member is the height of the window if a new window is created, in pixels. Otherwise, this member is ignored.
            For GUI processes, this is used only the first time the new process calls CreateWindow to create an overlapped window if the nHeight parameter of CreateWindow is CW_USEDEFAULT.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwXCountChars">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies STARTF_USECOUNTCHARS, if a new console window is created in a console process, this member specifies the screen buffer width, in character columns. Otherwise, this member is ignored.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwYCountChars">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies STARTF_USECOUNTCHARS, if a new console window is created in a console process, this member specifies the screen buffer height, in character rows. Otherwise, this member is ignored.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFillAttribute">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies STARTF_USEFILLATTRIBUTE, this member is the initial text and background colors if a new console window is created in a console application. Otherwise, this member is ignored.
            This value can be any combination of the following values: FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED, FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN, BACKGROUND_RED, and BACKGROUND_INTENSITY. For example, the following combination of values produces red text on a white background:
            FOREGROUND_RED| BACKGROUND_RED| BACKGROUND_GREEN| BACKGROUND_BLUE.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags">
            <summary>
            A bitfield that determines whether certain STARTUPINFO members are used when the process creates a window.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.wShowWindow">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESHOWWINDOW"/>, this member can be any of the values that can be specified in the nCmdShow parameter for the ShowWindow function, except for SW_SHOWDEFAULT. Otherwise, this member is ignored.
            For GUI processes, the first time ShowWindow is called, its nCmdShow parameter is ignored wShowWindow specifies the default value. In subsequent calls to ShowWindow, the wShowWindow member is used if the nCmdShow parameter of ShowWindow is set to SW_SHOWDEFAULT.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.cbReserved2">
            <summary>
            Reserved for use by the C Run-time; must be zero.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.lpReserved2">
            <summary>
            Reserved for use by the C Run-time; must be NULL.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdInput">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESTDHANDLES"/>, this member is the standard input handle for the process. If <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESTDHANDLES"/> is not specified, the default for standard input is the keyboard buffer.
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USEHOTKEY"/>, this member specifies a hotkey value that is sent as the wParam parameter of a WM_SETHOTKEY message to the first eligible top-level window created by the application that owns the process. If the window is created with the WS_POPUP window style, it is not eligible unless the WS_EX_APPWINDOW extended window style is also set. For more information, see CreateWindowEx.
            Otherwise, this member is ignored.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdOutput">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESTDHANDLES"/>, this member is the standard output handle for the process. Otherwise, this member is ignored and the default for standard output is the console window's buffer.
            If a process is launched from the taskbar or jump list, the system sets <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdOutput"/> to a handle to the monitor that contains the taskbar or jump list used to launch the process. For more information, see Remarks.
            Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, and Windows Server 2003:  This behavior was introduced in Windows 8 and Windows Server 2012.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdError">
            <summary>
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFlags"/> specifies <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESTDHANDLES"/>, this member is the standard error handle for the process. Otherwise, this member is ignored and the default for standard error is the console window's buffer.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.Desktop">
            <summary>
            Gets the value of <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.lpDesktop" /> as a string.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.Title">
            <summary>
            Gets the value of <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.lpDesktop" /> as a string.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.Create">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Cascade.Rpc.Utility.STARTUPINFO"/> struct.
            </summary>
            <returns>An initialized instance of the struct.</returns>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags">
            <summary>
            A bitfield that determines whether certain <see cref="T:Microsoft.Cascade.Rpc.Utility.STARTUPINFO"/> members are used when the process creates a window.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.None">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_FORCEONFEEDBACK">
            <summary>
            Indicates that the cursor is in feedback mode for two seconds after <see cref="!:CreateProcessAsUser(IntPtr, string, string, SECURITY_ATTRIBUTES*, SECURITY_ATTRIBUTES*, bool, CreateProcessFlags, void*, string, ref STARTUPINFO, out PROCESS_INFORMATION)"/> is called. The Working in Background cursor is displayed (see the Pointers tab in the Mouse control panel utility).
            If during those two seconds the process makes the first GUI call, the system gives five more seconds to the process. If during those five seconds the process shows a window, the system gives five more seconds to the process to finish drawing the window.
            The system turns the feedback cursor off after the first call to GetMessage, regardless of whether the process is drawing.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_FORCEOFFFEEDBACK">
            <summary>
            Indicates that the feedback cursor is forced off while the process is starting. The Normal Select cursor is displayed.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_PREVENTPINNING">
            <summary>
            Indicates that any windows created by the process cannot be pinned on the taskbar.
            This flag must be combined with <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_TITLEISAPPID"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_RUNFULLSCREEN">
            <summary>
            Indicates that the process should be run in full-screen mode, rather than in windowed mode.
            This flag is only valid for console applications running on an x86 computer.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_TITLEISAPPID">
            <summary>
            The lpTitle member contains an AppUserModelID. This identifier controls how the taskbar and Start menu present the application, and enables it to be associated with the correct shortcuts and Jump Lists. Generally, applications will use the SetCurrentProcessExplicitAppUserModelID and GetCurrentProcessExplicitAppUserModelID functions instead of setting this flag. For more information, see Application User Model IDs.
            If <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_PREVENTPINNING"/> is used, application windows cannot be pinned on the taskbar. The use of any AppUserModelID-related window properties by the application overrides this setting for that window only.
            This flag cannot be used with <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_TITLEISLINKNAME"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_TITLEISLINKNAME">
            <summary>
            The lpTitle member contains the path of the shortcut file (.lnk) that the user invoked to start this process. This is typically set by the shell when a .lnk file pointing to the launched application is invoked. Most applications will not need to set this value.
            This flag cannot be used with <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_TITLEISAPPID"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_UNTRUSTEDSOURCE">
            <summary>
            The command line came from an untrusted source. For more information, see Remarks.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USECOUNTCHARS">
            <summary>
            The <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwXCountChars"/> and <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwYCountChars"/> members contain additional information.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USEFILLATTRIBUTE">
            <summary>
            The <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwFillAttribute"/> member contains additional information.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USEHOTKEY">
            <summary>
            The <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdInput"/> member contains additional information.
            This flag cannot be used with <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESTDHANDLES"/>.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USEPOSITION">
            <summary>
            The <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwX"/> and <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwY"/> members contain additional information.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESHOWWINDOW">
            <summary>
            The <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.wShowWindow"/> member contains additional information.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESIZE">
            <summary>
            The <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwXSize"/> and <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.dwYSize"/> members contain additional information.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USESTDHANDLES">
            <summary>
            The <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdInput"/>, <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdOutput"/>, and <see cref="F:Microsoft.Cascade.Rpc.Utility.STARTUPINFO.hStdError"/> members contain additional information.
            If this flag is specified when calling one of the process creation functions, the handles must be inheritable and the function's bInheritHandles parameter must be set to TRUE. For more information, see Handle Inheritance.
            If this flag is specified when calling the <see cref="!:GetStartupInfo(STARTUPINFO*)"/> function, these members are either the handle value specified during process creation or <see cref="!:INVALID_HANDLE_VALUE"/>.
            Handles must be closed with <see cref="!:CloseHandle"/> when they are no longer needed.
            This flag cannot be used with <see cref="F:Microsoft.Cascade.Rpc.Utility.StartupInfoFlags.STARTF_USEHOTKEY"/>.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.Utility.StdHandle">
            <summary>
            Standard handles for the <see cref="M:Microsoft.Cascade.Rpc.Utility.NativeMethods.GetStdHandle(Microsoft.Cascade.Rpc.Utility.StdHandle)"/> method.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StdHandle.STD_INPUT_HANDLE">
            <summary>
            The standard input device. Initially, this is the console input buffer, CONIN$.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StdHandle.STD_OUTPUT_HANDLE">
            <summary>
            The standard output device. Initially, this is the active console screen buffer, CONOUT$.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.Utility.StdHandle.STD_ERROR_HANDLE">
            <summary>
            The standard error device. Initially, this is the active console screen buffer, CONOUT$.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.NetworkRpcSession.NotifyDisconnectionAndDispose(System.String,System.Exception)">
            <summary>
            Fires <see cref="E:Microsoft.Cascade.Rpc.RpcSession.Disconnected"/> if session is in disconnected state, and then disposes the session.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.PipeRpcClient">
            <summary>
            Client for opening a JSON-RPC session over a named pipe.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.PipeRpcClient.CanConnectAsync(System.Diagnostics.TraceSource,System.Threading.CancellationToken)">
            <summary>
            Check if the connection is readily available.
            </summary>
            <param name="trace"></param>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.PipeRpcServer">
            <summary>
            Server for accepting JSON-RPC sessions over a named pipe.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.ProgressAction`1">
            <summary>
            Basic implementation of the <see cref="T:System.IProgress`1"/> interface.
            </summary>
            <typeparam name="T">Type of progress value</typeparam>
            <remarks>
            .NET's <see cref="T:System.Progress`1"/> class runs the actions on a background thread,
            which means they may get handled out of order or after the operation finishes.
            That may be good for some scenarios, but it's probably unexpected with working
            with RPC. So this class may be used instead.
            </remarks>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RemoteException">
            <summary>
            Relays details about an unhandled exception thrown by the remote handler of an RPC request.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcDisconnectedEventArgs">
            Arguments for an event raised when an RPC session disconnects, either due to a direct call
            to <see cref="M:Microsoft.Cascade.Rpc.RpcSession.Disconnect(System.String,System.Exception)" /> or because the underlying stream disconnected.
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcDisconnectedEventArgs.Message">
            <summary>
            Message describing the reason for disconnection.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcDisconnectedEventArgs.Exception">
            <summary>
            Optional exception that was the cause of the disconnection.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcDisconnectedEventArgs.EnableReconnect">
            <summary>
            An event-handler may set this property to `true` to prevent disposal of the sesssion
            and enable it to be reconnected at a later time.
            </summary>
            <seealso cref="M:Microsoft.Cascade.Rpc.RpcSession.Connect(Microsoft.Cascade.Rpc.IRpcStream)" />
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcDisconnectedException">
            <summary>
            Exception thrown by RPC send request when it cannot do that because either there was a stream error writing the request message,
            or the stream has been closed before the response has arrived.
            This can be thrown in two cases:
            1. When RPC cannot write a request message and closes the session because of that.
               In this case InnerException will have the exception occured during writing.
            2. When the session is disconnected, either explicitly, or due to some error.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcDispatcher`1">
            <summary>
            Uses reflection to dispatch incoming notifications and requests to the
            appropriate service method, and send outgoing notifications in response
            to events raised by the service.
            </summary>
            <typeparam name="T">Interface that defines the RPC service methods
            and notification events.</typeparam>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcDispatcher`1.#ctor(System.String,`0,System.Diagnostics.TraceSource)">
            <summary>
            Creates a new dispatcher for a service.
            </summary>
            <param name="serviceName">Registered name of the service.</param>
            <param name="service">Implementation of the service interface.</param>
            <param name="trace"></param>
            <remarks>
            In addition to implementing the service interface methods raising
            interface events, services that wish to RECEIVE events (notifications)
            via the dispatcher must implement methods of the form:
                void OnEventName(object sender, EventArgsType e)
            where `EventName` is the name of the RPC notification, as declared by
            the contract, and `EventArgsType` is the type of event args declared
            by the contract.
            </remarks>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcErrorCodes">
            <summary>
            Error codes defined by the JSON-RPC spec or this JSON-RPC implementation.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcEventRelay">
            <summary>
            Relay for RPC service notifications. Enables an RpcRelay to raise notification
            events originated by a remote service.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Create``1(Microsoft.Cascade.Rpc.IRpcSession,System.Diagnostics.TraceSource,Microsoft.Cascade.Rpc.IRpcFilter)">
            <summary>
            Dynamically generates a proxy for an RPC interface, using the service name from the
            interface's service contract attribute.
            </summary>
            <typeparam name="T">RPC interface type</typeparam>
            <param name="session">RPC session used by the proxy</param>
            <param name="trace">Source for tracing activity and errors from the proxy</param>
            <param name="filter">Optional filter for request and response messages.</param>
            <returns>Implementation of the interface that proxies requests/notifications
            to/from the remote service.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Create(System.Type,Microsoft.Cascade.Rpc.IRpcSession,System.Diagnostics.TraceSource,Microsoft.Cascade.Rpc.IRpcFilter)">
            <summary>
            Dynamically generates a proxy for an RPC interface, using the service name from the
            interface's service contract attribute.
            </summary>
            <param name="interfaceType">RPC interface type</param>
            <param name="session">RPC session used by the proxy</param>
            <param name="trace">Source for tracing activity and errors from the proxy</param>
            <param name="filter">Optional filter for request and response messages.</param>
            <returns>Implementation of the interface that proxies requests/notifications
            to/from the remote service.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Create``1(System.String,Microsoft.Cascade.Rpc.IRpcSession,System.Diagnostics.TraceSource,Microsoft.Cascade.Rpc.IRpcFilter)">
            <summary>
            Dynamically generates a proxy for an RPC interface, using a provided service name.
            </summary>
            <typeparam name="T">RPC interface type</typeparam>
            <param name="serviceName">Name of the RPC service to proxy</param>
            <param name="session">RPC session used by the proxy</param>
            <param name="trace">Source for tracing activity and errors from the proxy</param>
            <param name="filter">Optional filter for request and response messages.</param>
            <returns>Implementation of the interface that proxies requests/notifications
            to/from the remote service.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Create(System.Type,System.String,Microsoft.Cascade.Rpc.IRpcSession,System.Diagnostics.TraceSource,Microsoft.Cascade.Rpc.IRpcFilter)">
            <summary>
            Dynamically generates a proxy for an RPC interface, using a provided service name.
            </summary>
            <param name="interfaceType">RPC interface type</param>
            <param name="serviceName">Name of the RPC service to proxy</param>
            <param name="session">RPC session used by the proxy</param>
            <param name="trace">Source for tracing activity and errors from the proxy</param>
            <param name="filter">Optional filter for request and response messages.</param>
            <returns>Implementation of the interface that proxies requests/notifications
            to/from the remote service.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.GetInterfaceMembers``1(System.Type)">
            <summary>
            Searches an interface and its base interfaces (if any) for members of a given type.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.GetInterfaceMembers``1(System.Type,System.Collections.Generic.List{``0})">
            <summary>
            Recursive helper for getting interface methods.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Emit.EmitType(System.Type)">
            <summary>
            Emits a class that extends RpcProxy and implements all of an
            interface's methods and events.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Emit.EmitConstructor(System.Reflection.Emit.TypeBuilder,System.Type,System.Boolean)">
            <summary>
            Emits a constructor that forwards arguments to the base RpcProxy constructor.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Emit.EmitMethod(System.Reflection.Emit.TypeBuilder,System.Reflection.MethodInfo)">
            <summary>
            Emits a method that forwards arguments to the Invoke, InvokeAsync,
            or InvokeWithResultAsync method on the base RpcProxy.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcProxy.Emit.EmitEvent(System.Reflection.Emit.TypeBuilder,System.Reflection.EventInfo)">
            <summary>
            Emits an event with standard add/remove implementation.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcRelay">
            <summary>
            Relay for a remote RPC service. Relays incoming requests to the remote service,
            and relays responses back to the client. Can work with an RpcEventRelay
            to also relay notifications from the remote service.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcServiceCollection">
            <summary>
            Holds a collection of RPC service provider instances for the same service name.
            Any of the service providers may emit notifications, however requests made to
            the collection will return errors due to the ambiguity.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcServiceMap">
            <summary>
            Holds a mapping from service names to services (potentially multiple services with the
            same name), along with optional service owner information that enables removing services
            by name or removing all services associated with a certain owner.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcServiceMap.Item(System.String)">
            <summary>
            Gets an <see cref="T:Microsoft.Cascade.Rpc.IRpcService"/> to all services of the given name.
            </summary>
            <param name="key">The service name.</param>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcServiceMap.CopyTo(Microsoft.Cascade.Rpc.RpcServiceMap)">
            <summary>
            Performs a deep copy of the contents of this service map into another map.
            Throws an exception if there are any duplicate service name or owner keys.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcServiceUtil">
            <summary>
            Helper class for the IRpcService interface
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcMessageEventArgs">
            <summary>
            Class to report and Rpc message being sent or received
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcMessageEventArgs.Handled">
            <summary>
            If an event handler already handled this rpc message and prevent the Session to pass it to the Stream
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcMessageEventArgs.Message">
            <summary>
            Message being sent or received
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcSession">
            <summary>
            Manages an RPC connection from a single client. Dispatches requests to the
            RPC services, and returns responses back to the client.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcSession.ActiveSession">
            <summary>
            Gets async local RPC session.
            Rpc servers can check this field to know what RPC session is calling them.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.RpcSession.ActiveContext">
            <summary>
            Gets message conext of the active RPC request or an empty dictionary.
            </summary>
        </member>
        <member name="E:Microsoft.Cascade.Rpc.RpcSession.Disconnected">
            <summary>
            Event raised when the session disconnects, either due to a direct call to
            <see cref="M:Microsoft.Cascade.Rpc.RpcSession.Disconnect(System.String,System.Exception)" /> or because the underlying stream disconnected.
            </summary>
            <remarks>
            Exceptions thrown by event handlers are traced to the trace source. They do not
            prevent <see cref="T:Microsoft.Cascade.Rpc.RpcSession"/> to call other multicast delegates and then
            terminate the RPC message processing.
            </remarks>
        </member>
        <member name="E:Microsoft.Cascade.Rpc.RpcSession.RpcRequestHandled">
            <summary>
            Event fired when an RPC request is handled.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcSession.Disconnect(System.String,System.Exception)">
            <summary>
            Disconnects the session and disposes the underlying stream.
            </summary>
            <param name="message">Message describing the reason for disconnection.</param>
            <param name="exception">Optional exception that was the cause of the disconnection.</param>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcSession.WaitForSentMessagesAsync">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcSession.Dispose">
            <summary>
            Disposes the RPC session and disconnects from the stream. Any processing of inbound requests
            is cancelled, and any pending outbound requests fail with an <see cref="T:Microsoft.Cascade.Rpc.RpcDisconnectedException" />.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.RpcSession.Connect(Microsoft.Cascade.Rpc.IRpcStream)">
            <summary>
            Connects or RE-connects the RPC session to a stream.
            </summary>
            <remarks>
            Re-connection enables an RPC session to be resumed without losing all the state
            (RPC services and pending requests) on one side or both sides. To enable re-connection,
            handle the <see cref="E:Microsoft.Cascade.Rpc.RpcSession.Disconnected" /> event and set the
            <see cref="P:Microsoft.Cascade.Rpc.RpcDisconnectedEventArgs.EnableReconnect" /> flag to true on one side or both
            sides of the session. That prevents the RPC session from being disposed by the disconnect,
            and retains the registration of services. Additionally, any RPC requests that were pending /
            incomplete at the time of the disconnect will automatically be re-sent upon reconnection.
            </remarks>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcSessionPurpose">
            <summary>
            Who hosts RPC server, handles RPC requests, and who may be the RPC client.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.RpcSessionPurpose.ClientToAgent">
            <summary>
            RPC between the client and the agent, the agent is the server.
            RPC starts when the client loads Live Share on startup and it then starts the agent.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.RpcSessionPurpose.GuestToHostClient">
            <summary>
            RPC between the host and a guest, the host client is the server.
            The host agent just forwards RPC through to the client.
            RPC starts when a guest connects.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Rpc.RpcSessionPurpose.GuestToHostAgent">
            <summary>
            RPC between the host and a guest, the host agent is the server.
            RPC starts when a guest connects.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.RpcStreamOptions">
            <summary>
            Rpc Stream options
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.ServicesChangedEventArgs">
            <summary>
            Event raised by an RpcServiceMap when services are added to or removed from the map.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Rpc.ServicesChangedEventArgs.Owner">
            <summary>
            Gets the owner for the services changed if specified.
            </summary>
            <remarks>
            If a service is mapped to an owner but a <see cref="F:Microsoft.Cascade.Rpc.ServicesChangeType.Remove"/> did not specify
            that owner when requested, this will be <c>null</c>.
            </remarks>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.TcpRpcClient">
            <summary>
            Client for opening a JSON-RPC session over a TCP socket connection.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Rpc.TcpRpcServer">
            <summary>
            Server for accepting JSON-RPC sessions over a TCP socket connection.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.TcpRpcServer.FindAvailablePort(System.Int32,System.Int32,System.Net.Sockets.TcpListener@)">
            <summary>
            Finds and returns an available port within the specified range (inclusive).
            </summary>
            <returns>Available port, or 0 if no available port was found.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Rpc.TcpRpcServer.CreateListener(System.Int32)">
            <summary>
            Creates a TCP listener that listens on all local addresses for both IPv6 and IPv4.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.ICascadeClient">
            <summary>
            Core interface of the cascade client
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Client.ICascadeClient.Filters">
            <summary>
            Filters for RPC request and response messages.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.InsufficientAccessException">
            <summary>
            Exception thrown when operation cannot be performed because client (guest) has insufficient access. E.g. mutating operation in read-only session.
            </summary>
        </member>
        <member name="T:System.IO.Pipes.NamedPipeServerStreamConstructors">
            <summary>
            Original .Net Framework <see cref="T:System.IO.Pipes.NamedPipeServerStream"/> constructors from decompiled code
            </summary>
        </member>
        <member name="M:System.IO.Pipes.NamedPipeServerStreamConstructors.New(System.String,System.IO.Pipes.PipeDirection,System.Int32,System.IO.Pipes.PipeTransmissionMode,System.IO.Pipes.PipeOptions,System.Int32,System.Int32,System.IO.Pipes.PipeSecurity,System.IO.HandleInheritability,System.IO.Pipes.PipeAccessRights)">
            <summary>
            Create a new <see cref="T:System.IO.Pipes.NamedPipeServerStream"/>. All default parameters are copied from the original constructors.
            </summary>
            <param name="pipeName"></param>
            <param name="direction"></param>
            <param name="maxNumberOfServerInstances"></param>
            <param name="transmissionMode"></param>
            <param name="options"></param>
            <param name="inBufferSize"></param>
            <param name="outBufferSize"></param>
            <param name="pipeSecurity"></param>
            <param name="inheritability"></param>
            <param name="additionalAccessRights"></param>
            <returns></returns>
        </member>
        <member name="T:Microsoft_VisualStudio_LiveShare_Rpc">
            <summary>
            Assembly version information for Microsoft.VisualStudio.LiveShare.Rpc.dll assembly
            </summary>
        </member>
        <member name="F:Microsoft_VisualStudio_LiveShare_Rpc.AssemblyVersion">
            <summary>
            Assembly version.
            </summary>
        </member>
        <member name="F:Microsoft_VisualStudio_LiveShare_Rpc.AssemblyName">
            <summary>
            Assembly name (without .dll extension)
            </summary>
        </member>
        <member name="F:Microsoft_VisualStudio_LiveShare_Rpc.FileName">
            <summary>
            File name (with .dll extension)
            </summary>
        </member>
        <member name="F:Microsoft_VisualStudio_LiveShare_Rpc.PublicKeyToken">
            <summary>
            Public key token.
            </summary>
        </member>
    </members>
</doc>
