<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes</name>
    </assembly>
    <members>
        <member name="T:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext">
            <summary>
            Provides information about an endpoint when creating a <see cref="T:System.IO.Pipes.NamedPipeServerStream"/>.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext.NamedPipeEndPoint">
            <summary>
            Gets the endpoint.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext.PipeOptions">
            <summary>
            Gets the pipe options.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext.PipeSecurity">
            <summary>
            Gets the default access control and audit security.
            </summary>
        </member>
        <member name="T:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions">
            <summary>
            Options for named pipe based transports.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.ListenerQueueCount">
            <summary>
            The number of listener queues used to accept name pipe connections.
            </summary>
            <remarks>
            Defaults to <see cref="P:System.Environment.ProcessorCount" /> rounded down and clamped between 1 and 16.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.MaxReadBufferSize">
            <summary>
            Gets or sets the maximum unconsumed incoming bytes the transport will buffer.
            <para>
            A value of <see langword="null"/> or 0 disables backpressure entirely allowing unlimited buffering.
            Unlimited server buffering is a security risk given untrusted clients.
            </para>
            </summary>
            <remarks>
            Defaults to 1 MiB.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.MaxWriteBufferSize">
            <summary>
            Gets or sets the maximum outgoing bytes the transport will buffer before applying write backpressure.
            <para>
            A value of <see langword="null"/> or 0 disables backpressure entirely allowing unlimited buffering.
            Unlimited server buffering is a security risk given untrusted clients.
            </para>
            </summary>
            <remarks>
            Defaults to 64 KiB.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.CurrentUserOnly">
            <summary>
            Gets or sets a value that indicates that the pipe can only be connected to by a client created by
            the same user account.
            <para>
            On Windows, a value of true verifies both the user account and elevation level.
            </para>
            </summary>
            <remarks>
            Defaults to true.
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.PipeSecurity">
            <summary>
            Gets or sets the security information that determines the default access control and audit security for pipes.
            </summary>
            <remarks>
            <para>
            Defaults to <c>null</c>, which is no pipe security.
            </para>
            <para>
            Configuring <see cref="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.PipeSecurity"/> sets the default access control and audit security for pipes.
            If per-endpoint security is needed then <see cref="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.CreateNamedPipeServerStream"/> can be configured
            to create streams with different security settings.</para>
            </remarks>
        </member>
        <member name="P:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.CreateNamedPipeServerStream">
            <summary>
            A function used to create a new <see cref="T:System.IO.Pipes.NamedPipeServerStream"/> to listen with. If
            not set, <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.CreateDefaultNamedPipeServerStream(Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext)" /> is used.
            </summary>
            <remarks>
            Defaults to <see cref="M:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.CreateDefaultNamedPipeServerStream(Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext)"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions.CreateDefaultNamedPipeServerStream(Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext)">
            <summary>
            Creates a default instance of <see cref="T:System.IO.Pipes.NamedPipeServerStream"/> for the given
            <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext"/> that can be used by a connection listener
            to listen for inbound requests.
            </summary>
            <param name="context">A <see cref="T:Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.CreateNamedPipeServerStreamContext"/>.</param>
            <returns>
            A <see cref="T:System.IO.Pipes.NamedPipeServerStream"/> instance.
            </returns>
        </member>
        <member name="T:Microsoft.AspNetCore.Hosting.WebHostBuilderNamedPipeExtensions">
            <summary>
            <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder" /> extension methods to configure the Named Pipes transport to be used by Kestrel.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.Hosting.WebHostBuilderNamedPipeExtensions.UseNamedPipes(Microsoft.AspNetCore.Hosting.IWebHostBuilder)">
            <summary>
            Specify Named Pipes as the transport to be used by Kestrel.
            </summary>
            <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder"/> to configure.</param>
            <returns>The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder"/>.</returns>
        </member>
        <member name="M:Microsoft.AspNetCore.Hosting.WebHostBuilderNamedPipeExtensions.UseNamedPipes(Microsoft.AspNetCore.Hosting.IWebHostBuilder,System.Action{Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.NamedPipeTransportOptions})">
            <summary>
            Specify Named Pipes as the transport to be used by Kestrel.
            </summary>
            <param name="hostBuilder">The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder"/> to configure.</param>
            <param name="configureOptions">A callback to configure transport options.</param>
            <returns>The <see cref="T:Microsoft.AspNetCore.Hosting.IWebHostBuilder"/>.</returns>
        </member>
        <member name="T:Microsoft.AspNetCore.DiagnosticMemoryPool">
            <summary>
            Used to allocate and distribute re-usable blocks of memory.
            </summary>
        </member>
        <member name="F:Microsoft.AspNetCore.DiagnosticMemoryPool.AnySize">
            <summary>
            This default value passed in to Rent to use the default value for the pool.
            </summary>
        </member>
        <member name="T:Microsoft.AspNetCore.DiagnosticPoolBlock">
            <summary>
            Block tracking object used by the byte buffer memory pool. A slab is a large allocation which is divided into smaller blocks. The
            individual blocks are then treated as independent array segments.
            </summary>
        </member>
        <member name="F:Microsoft.AspNetCore.DiagnosticPoolBlock._pool">
            <summary>
            Back-reference to the memory pool which this block was allocated from. It may only be returned to this pool.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.DiagnosticPoolBlock.#ctor(Microsoft.AspNetCore.DiagnosticMemoryPool,System.Buffers.IMemoryOwner{System.Byte})">
            <summary>
            This object cannot be instantiated outside of the static Create method
            </summary>
        </member>
        <member name="T:Microsoft.AspNetCore.MemoryPoolBlock">
            <summary>
            Wraps an array allocated in the pinned object heap in a reusable block of managed memory
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.MemoryPoolBlock.Pool">
            <summary>
            Back-reference to the memory pool which this block was allocated from. It may only be returned to this pool.
            </summary>
        </member>
        <member name="T:Microsoft.AspNetCore.PinnedBlockMemoryPool">
            <summary>
            Used to allocate and distribute re-usable blocks of memory.
            </summary>
        </member>
        <member name="F:Microsoft.AspNetCore.PinnedBlockMemoryPool._blockSize">
            <summary>
            The size of a block. 4096 is chosen because most operating systems use 4k pages.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.PinnedBlockMemoryPool.BlockSize">
            <summary>
            The size of a block. 4096 is chosen because most operating systems use 4k pages.
            </summary>
        </member>
        <member name="P:Microsoft.AspNetCore.PinnedBlockMemoryPool.MaxBufferSize">
            <summary>
            Max allocation block size for pooled blocks,
            larger values can be leased but they will be disposed after use rather than returned to the pool.
            </summary>
        </member>
        <member name="F:Microsoft.AspNetCore.PinnedBlockMemoryPool._blocks">
            <summary>
            Thread-safe collection of blocks which are currently in the pool. A slab will pre-allocate all of the block tracking objects
            and add them to this collection. When memory is requested it is taken from here first, and when it is returned it is re-added.
            </summary>
        </member>
        <member name="F:Microsoft.AspNetCore.PinnedBlockMemoryPool._isDisposed">
            <summary>
            This is part of implementing the IDisposable pattern.
            </summary>
        </member>
        <member name="F:Microsoft.AspNetCore.PinnedBlockMemoryPool.AnySize">
            <summary>
            This default value passed in to Rent to use the default value for the pool.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.PinnedBlockMemoryPool.OnPoolDisposed(System.Action{System.Object,Microsoft.AspNetCore.PinnedBlockMemoryPool},System.Object)">
            <summary>
            Register a callback to call when the pool is being disposed.
            </summary>
        </member>
        <member name="M:Microsoft.AspNetCore.PinnedBlockMemoryPool.Return(Microsoft.AspNetCore.MemoryPoolBlock)">
            <summary>
            Called to return a block to the pool. Once Return has been called the memory no longer belongs to the caller, and
            Very Bad Things will happen if the memory is read of modified subsequently. If a caller fails to call Return and the
            block tracking object is garbage collected, the block tracking object's finalizer will automatically re-create and return
            a new tracking object into the pool. This will only happen if there is a bug in the server, however it is necessary to avoid
            leaving "dead zones" in the slab due to lost block tracking objects.
            </summary>
            <param name="block">The block to return. It must have been acquired by calling Lease on the same memory pool instance.</param>
        </member>
        <member name="M:Microsoft.AspNetCore.PinnedBlockMemoryPool.PerformEviction">
            <summary>
            Examines the current usage and activity of the memory pool and evicts a calculated number of unused memory blocks.
            The eviction policy is adaptive: if the pool is underutilized or idle, more blocks are evicted;
            if activity is high, fewer or no blocks are evicted.
            Evicted blocks are removed from the pool and their memory is unrooted for garbage collection.
            </summary>
        </member>
        <member name="T:UnmanagedBufferAllocator">
            <summary>
            Allocator that manages blocks of unmanaged memory.
            </summary>
        </member>
        <member name="P:UnmanagedBufferAllocator.DefaultBlockSize">
            <summary>
            The default block size for the allocator.
            </summary>
            <remarks>
            This size assumes a common page size and provides an accommodation
            for the pointer chain used to track allocated blocks.
            </remarks>
        </member>
        <member name="M:UnmanagedBufferAllocator.#ctor(System.Int32)">
            <summary>
            Instantiate an <see cref="T:UnmanagedBufferAllocator"/> instance.
            </summary>
            <param name="blockSize">The unmanaged memory block size in bytes.</param>
        </member>
        <member name="M:UnmanagedBufferAllocator.AllocAsPointer``1(System.Int32)">
            <summary>
            Allocate the requested amount of space from the allocator.
            </summary>
            <typeparam name="T">The type requested</typeparam>
            <param name="count">The count in <typeparamref name="T"/> units</param>
            <returns>A pointer to the reserved memory.</returns>
            <remarks>
            The allocated memory is uninitialized.
            </remarks>
        </member>
        <member name="M:UnmanagedBufferAllocator.AllocAsSpan``1(System.Int32)">
            <summary>
            Allocate the requested amount of space from the allocator.
            </summary>
            <typeparam name="T">The type requested</typeparam>
            <param name="count">The count in <typeparamref name="T"/> units</param>
            <returns>A Span to the reserved memory.</returns>
            <remarks>
            The allocated memory is uninitialized.
            </remarks>
        </member>
        <member name="M:UnmanagedBufferAllocator.GetHeaderEncodedBytes(System.String,System.Int32@)">
            <summary>
            Get pointer to bytes for the supplied string in UTF-8.
            </summary>
            <param name="myString">The string</param>
            <param name="length">The length of the returned byte buffer.</param>
            <returns>A pointer to the buffer of bytes</returns>
        </member>
        <member name="M:UnmanagedBufferAllocator.Dispose">
            <inheritdoc />
        </member>
        <member name="T:System.IO.Pipelines.DuplexPipe">
             <remarks>
             A <see cref="T:System.IO.Pipelines.Pipe"/> is a reader-writer pair, where content written to the writer can be read from the reader.
            
             An <see cref="T:System.IO.Pipelines.IDuplexPipe"/> is *not* a pipe.  It is also a reader-writer pair, but the reader and writer are not
             connected.  Rather, it can be regarded as *one end* of a two-way (i.e. duplex) communication channel, where content
             written to the writer is sent to the counterparty and content received from the counterparty is readable from the
             reader.
            
             A <see cref="T:System.IO.Pipelines.DuplexPipe.DuplexPipePair"/> is a pair of <see cref="T:System.IO.Pipelines.IDuplexPipe"/> instances, each of which represents one end of
             a two-way communication channel.  (In a sense, this makes it a "duplex pipe".)  It can also be viewed as a pair of
             <see cref="T:System.IO.Pipelines.Pipe"/>s, as these underlie the <see cref="T:System.IO.Pipelines.IDuplexPipe"/> instances.  In either view, it is composed of
             two <see cref="T:System.IO.Pipelines.PipeReader"/>s and two <see cref="T:System.IO.Pipelines.PipeWriter"/>s - it is only how they are grouped that differs.
             </remarks>
        </member>
    </members>
</doc>
