GameVsJam/3d Prototyp/Assets/Packages/Microsoft.VisualStudio.Tele.../lib/netstandard2.0/Microsoft.VisualStudio.Tele...

18130 lines
1.1 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.VisualStudio.Telemetry</name>
</assembly>
<members>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel">
<summary>
Represents a communication channel for sending telemetry to Application Insights via HTTPS. There will be a buffer that will not be persisted, to enforce the
queued telemetry items to be sent, <see cref="M:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetryChannel.Flush" /> should be caller.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.#ctor(Microsoft.VisualStudio.ApplicationInsights.Channel.TelemetryBuffer,Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel" /> class. Used in unit tests for constructor injection.
</summary>
<param name="telemetryBuffer">The telemetry buffer that will be used to enqueue new events.</param>
<param name="transmitter">The in memory transmitter that will send the events queued in the buffer.</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.DeveloperMode">
<summary>
Gets or sets a value indicating whether developer mode of telemetry transmission is enabled.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.SendingInterval">
<summary>
Gets or sets the sending interval. Once the interval expires, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel" />
serializes the accumulated telemetry items for transmission and sends it over the wire.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.EndpointAddress">
<summary>
Gets or sets the HTTP address where the telemetry is sent.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.DataUploadIntervalInSeconds">
<summary>
Gets or sets the maximum telemetry batching interval. Once the interval expires, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel" />
serializes the accumulated telemetry items for transmission.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.MaxTelemetryBufferCapacity">
<summary>
Gets or sets the maximum number of telemetry items will accumulate in a memory before
the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel" /> serializing them for transmission to Application Insights.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.Send(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Sends an instance of ITelemetry through the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.Flush">
<summary>
Will send all the telemetry items stored in the memory.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.FlushAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Flushes the in-memory buffer and transmit data asynchronously.
</summary>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.Dispose">
<summary>
Disposing the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryChannel.Dispose(System.Boolean)">
<summary>
Disposes managed and unmanaged resources held by this object.
</summary>
<param name="disposing"><see langword="true" /> if this object is being disposed; otherwise <see langword="false" />.</param>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter">
<summary>
A transmitter that will immediately send telemetry over HTTP.
Telemetry items are being sent when Flush is called, or when the buffer is full (An OnFull "event" is raised) or every 30 seconds.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.sendingLockObj">
<summary>
A lock object to serialize the sending calls from Flush, OnFull event and the Runner.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.disposeCount">
<summary>
The number of times this object was disposed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.Dispose">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.Flush">
<summary>
Flushes the in-memory buffer and sends it.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.Runner">
<summary>
Flushes the in-memory buffer and sends the telemetry items in <see cref="F:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.sendingInterval" /> intervals or when
<see cref="F:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.startRunnerEvent" /> is set.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.OnBufferFull">
<summary>
Happens when the in-memory buffer is full. Flushes the in-memory buffer and sends the telemetry items.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.DequeueAndSend">
<summary>
Flushes the in-memory buffer and send it.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.InMemoryTransmitter.SendAsync(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry})">
<summary>
Serializes a list of telemetry items and sends them.
</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the asynchronous operation.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry">
<summary>
The base telemetry type for application insights.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Timestamp">
<summary>
Gets or sets date and time when telemetry was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Context">
<summary>
Gets the context associated with this telemetry instance.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
<remarks>
The sequence is used to track absolute order of uploaded telemetry items. It is a two-part value that includes
a stable identifier for the current boot session and an incrementing identifier for each event added to the upload queue:
For UTC this would increment for all events across the system.
For Persistence this would increment for all events emitted from the hosting process.
The Sequence helps track how many events were fired and how many events were uploaded and enables identification
of data lost during upload and de-duplication of events on the ingress server.
From <a href="https://microsoft.sharepoint.com/teams/CommonSchema/Shared%20Documents/Schema%20Specs/Common%20Schema%202%20-%20Language%20Specification.docx" />.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Sanitize">
<summary>
Sanitizes the properties of the telemetry item based on DP constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetryChannel">
<summary>
Represents a communication channel for sending telemetry to application insights.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetryChannel.DeveloperMode">
<summary>
Gets or sets a value indicating whether this channel is in developer mode.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetryChannel.EndpointAddress">
<summary>
Gets or sets the endpoint address of the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetryChannel.Send(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Sends an instance of ITelemetry through the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetryChannel.Flush">
<summary>
Flushes the in-memory buffer.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetryChannel.FlushAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Flushes the in-memory buffer and transmit data asynchronously.
</summary>
<param name="token"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer">
<summary>
Serializes and compress the telemetry items into a JSON string. Compression will be done using GZIP, for Windows Phone 8 compression will be disabled because there
is API support for it.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer.Serialize(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry},System.Boolean)">
<summary>
Serializes and compress the telemetry items into a JSON string. Each JSON object is separated by a new line.
</summary>
<param name="telemetryItems">The list of telemetry items to serialize.</param>
<param name="compress">Should serialization also perform compression.</param>
<returns>The compressed and serialized telemetry items.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer.Serialize(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry,System.Boolean)">
<summary>
Serialize and compress a telemetry item.
</summary>
<param name="telemetryItem">A telemetry item.</param>
<param name="compress">Should serialization also perform compression.</param>
<returns>The compressed and serialized telemetry item.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer.SerializeAsString(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry})">
<summary>
Serializes <paramref name="telemetryItems" /> into a JSON string. Each JSON object is separated by a new line.
</summary>
<param name="telemetryItems">The list of telemetry items to serialize.</param>
<returns>A JSON string of all the serialized items.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer.SerializeAsString(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Serializes a <paramref name="telemetry" /> into a JSON string.
</summary>
<param name="telemetry">The telemetry to serialize.</param>
<returns>A JSON string of the serialized telemetry.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer.CreateCompressedStream(System.IO.Stream)">
<summary>
Creates a GZIP compression stream that wraps <paramref name="stream" />. For windows phone 8.0 it returns <paramref name="stream" />.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer.SeializeToStream(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry},System.IO.TextWriter)">
<summary>
Serializes <paramref name="telemetryItems" /> and write the response to <paramref name="streamWriter" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.JsonSerializer.SerializePerformanceCounter(Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry,Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.JsonWriter)">
<summary>
Serializes this object in JSON format.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.TelemetryBuffer">
<summary>
Accumulates <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> items for efficient transmission.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.TelemetryBuffer.OnFull">
<summary>
Delegate that is raised when the buffer is full.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TelemetryBuffer.Capacity">
<summary>
Gets or sets the maximum number of telemetry items that can be buffered before transmission.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">The value is zero or less.</exception>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission">
<summary>
Implements an asynchronous transmission of data to an HTTP POST endpoint.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.#ctor(System.Uri,System.Byte[],System.String,System.String,System.TimeSpan)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.#ctor(System.Uri,System.Byte[],System.String,System.String,System.String,System.TimeSpan)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission" /> class.
</summary>
<param name="address"></param>
<param name="content"></param>
<param name="contentType"></param>
<param name="contentEncoding"></param>
<param name="apiKey">The 68 char ingestion key from aria used for Collector</param>
<param name="timeout"></param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.#ctor(System.TimeSpan)">
<summary>
Used to set the timeout period for the transmission.
</summary>
<param name="timeout">The timeout to set.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission" /> class. This overload is for Test purposes.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.EndpointAddress">
<summary>
Gets the Address of the endpoint to which transmission will be sent.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.Content">
<summary>
Gets the content of the transmission.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.ContentHash">
<summary>
Gets content hash, which should be unique per content.
For perf reason it is calculated only when requested for the first time.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.ContentType">
<summary>
Gets the content's type of the transmission.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.ContentEncoding">
<summary>
Gets the encoding method of the transmission.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.Timeout">
<summary>
Gets a timeout value for the transmission.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.TransmissionFile">
<summary>
Gets an internal object that contains the details of the transmission.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.EventTelemetryLevel">
<summary>
Gets or sets the telemetry level classification of the events in the Transmission
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.ApiKey">
<summary>
Gets the ApiKey for transmission.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.SendAsync(System.Threading.CancellationToken)">
<summary>
Executes the request that the current transmission represents.
</summary>
<returns>The task to await.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.GetNoResponseBodyFlag">
<summary>
Returns the NoResponseBody environment variable.
For testing collector++ connectivity and schema validity,
if set to true, then CollectorPP will return a json
of why events failed to consume, will not tell which ones failed.
set environment variable VSTelemetryAPI_NoResponseBody = true
Response documentation can be found here
https://microsoft.sharepoint.com/:w:/t/ObservabilityPipelineCore/EcrBD12KNmpBtGWwVVC1tEABBWMEPjaC0AsmnFLlm2nD6g?e=N2skDr
</summary>
<returns>"true" if VSTelemetryAPI_NoResponseBody env var is set to true</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.ToString">
<summary>
Build string out of object
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission.CreateRequest(System.Uri)">
<summary>
Creates a post web request.
</summary>
<param name="address">The Address in the web request.</param>
<returns>A web request pointing to the <c>Address</c>.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.FileBasedMutex">
<summary>
Provides a simple synchronization mechanism using a file instead of a Mutex since Mutexes are not supported
on Mono (Mac/Linux)
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager">
<summary>
This class handles all the logic for flushing the In Memory buffer to the persistent storage.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.telemetryBuffer">
<summary>
The memory buffer.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.flushWaitHandle">
<summary>
A wait handle that signals when a flush is required.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.storage">
<summary>
The storage that is used to persist all the transmissions.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.disposeCount">
<summary>
The number of times this object was disposed.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.flushLoopEnabled">
<summary>
A boolean value that determines if the long running thread that runs flush in a loop will stay alive.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.#ctor(Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase,Microsoft.VisualStudio.ApplicationInsights.Channel.TelemetryBuffer,System.String,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager" /> class.
</summary>
<param name="storage">The storage that persists the telemetries.</param>
<param name="telemetryBuffer">In memory buffer that holds telemetries.</param>
<param name="apiKey">Key used for Collector backend</param>
<param name="supportAutoFlush">A boolean value that determines if flush will happen automatically. Used by unit tests.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.#ctor(Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase,Microsoft.VisualStudio.ApplicationInsights.Channel.TelemetryBuffer,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager" /> class.
</summary>
<param name="storage">The storage that persists the telemetries.</param>
<param name="telemetryBuffer">In memory buffer that holds telemetries.</param>
<param name="supportAutoFlush">A boolean value that determines if flush will happen automatically. Used by unit tests.</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.FlushDelay">
<summary>
Gets or sets the maximum telemetry batching interval. Once the interval expires, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter" />
persists the accumulated telemetry items.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.EndpointAddress">
<summary>
Gets or sets the service endpoint.
</summary>
<remarks>
Q: Why flushManager knows about the endpoint?
A: Storage stores <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission" /> objects and Transmission objects contain the endpoint address.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.ApiKey">
<summary>
Gets the apiKey used for Collector endpoint. Needed here because it needs to be added to the transmission file.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.Dispose">
<summary>
Disposes the object.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.Flush">
<summary>
Persist the in-memory telemetry items.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.FlushLoop">
<summary>
Flushes in intervals set by <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.FlushDelay" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.FlushManager.OnTelemetryBufferFull">
<summary>
Handles the full event coming from the TelemetryBuffer.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.IProcessLock.Acquire(System.Action,System.Threading.CancellationToken)">
<summary>
Acquires the lock and performs the given action unless cancelled
</summary>
<param name="action">The action to perform when the lock is acquired</param>
<param name="cancelToken">Cancellation token</param>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion">
<summary>
Enum for the type of storage method to use.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion.Version1">
<summary>
Default persistence version. This is the legacy persistence version where:
* file contains key value pairs written line by line and then the payload
* file extension is .trn
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion.Version2">
<summary>
This is the json persistence version added for C# Dev Kit. It contains:
* Json representation of TransmissionFile object
* file extension is .jtrn
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.IStorageBuilder">
<summary>
Creates a StorageBase
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.LinuxStorage.#ctor(System.String,Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.LinuxStorage" /> class.
</summary>
<param name="uniqueFolderName">A folder name. Under this folder all the transmissions will be saved.</param>
<param name="version">The version of persistence to use.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.LinuxStorage.CanDelete(System.IO.FileInfo)">
<summary>
Simple method to detect if current user has permission to delete the file.
</summary>
<param name="fileInfo"></param>
<returns>true</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.MacStorage.#ctor(System.String,Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.MacStorage" /> class.
</summary>
<param name="uniqueFolderName">A folder name. Under this folder all the transmissions will be saved.</param>
<param name="version">The version of persistence to use.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.MacStorage.CanDelete(System.IO.FileInfo)">
<summary>
Simple method to detect if current user has permission to delete the file.
</summary>
<param name="fileInfo"></param>
<returns>true</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel">
<summary>
Represents a communication channel for sending telemetry to Application Insights via HTTPS.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySession,Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase,Microsoft.VisualStudio.ApplicationInsights.Channel.IProcessLockFactory,System.String,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" /> class.
</summary>
<param name="hostSession">The host telemetry session.</param>
<param name="storage">
A persistent storage that will store all transmissions.
Setting this value groups channels, even from different processes.
If 2 (or more) channels has the same <c>storage that share the same underlying folder</c> only one channel will perform the sending even if the channel is in a different process/AppDomain/Thread.
</param>
<param name="processLockFactory">
IProcessLockFactory that creates an IProcessLock to sync transmission between processes
</param>
<param name="apiKey">68 char ingestion key obtained from aria for Collector ingress. For other channels, the apiKey will not be used in creating the tranmission file</param>
<param name="sendersCount">
Defines the number of senders. A sender is a long-running thread that sends telemetry batches in intervals defined by <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.SendingInterval" />.
So the amount of senders also defined the maximum amount of http channels opened at the same time.
By default we have 1 sending thread which should be more than enough for our purposes.
</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.StorageUniqueFolder">
<summary>
Gets the storage unique folder.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.DeveloperMode">
<summary>
Gets or sets a value indicating whether developer mode of telemetry transmission is enabled.
When developer mode is True, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" /> sends telemetry to Application Insights immediately
during the entire lifetime of the application. When developer mode is False, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" />
respects production sending policies defined by other properties.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.SendingInterval">
<summary>
Gets or sets an interval between each successful sending.
</summary>
<remarks>On error scenario this value is ignored and the interval will be defined using an exponential back-off algorithm.</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.FlushInterval">
<summary>
Gets or sets the interval between each flush to disk.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.EndpointAddress">
<summary>
Gets or sets the HTTP address where the telemetry is sent.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.MaxTelemetryBufferCapacity">
<summary>
Gets or sets the maximum number of telemetry items that will accumulate in a memory before
<see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" /> persists them to disk.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.MaxTransmissionStorageCapacity">
<summary>
Gets or sets the maximum amount of disk space, in bytes, that <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" /> will
use for storage.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.MaxTransmissionStorageFilesCapacity">
<summary>
Gets or sets the maximum amount of files allowed in storage. When the limit is reached telemetries will be dropped.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.StopUploadAfterIntervalInSeconds">
<summary>
Gets or sets the amount of time, in seconds, after application is started when the
<see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" /> will send telemetry to ApplicationInsights. Once the specified
amount of time runs out, telemetry will be stored on disk until the application is started again.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.DataUploadIntervalInSeconds">
<summary>
Gets or sets the maximum telemetry batching interval. Once the interval expires, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" />
persists the accumulated telemetry items.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.MaxTransmissionBufferCapacity">
<summary>
Gets or sets the maximum amount of memory, in bytes, that <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" /> will use
to buffer transmissions before sending them to Application Insights.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.MaxTransmissionSenderCapacity">
<summary>
Gets or sets the maximum number of telemetry transmissions that <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel" /> will
send to Application Insights at the same time.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.Dispose">
<summary>
Releases unmanaged and - optionally - managed resources.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.Send(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Sends an instance of ITelemetry through the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.Flush">
<summary>
Flushes the in-memory buffer to disk.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.FlushAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Flushes the in-memory buffer to disk and tries to transmit all pending telemetry.
</summary>
<param name="token">Cancellation token in the case when consumer abandon waiting</param>
<returns>Task so consumer can wait on it</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceChannel.Initialize(Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration)">
<summary>
Initialize method is called after all configuration properties have been loaded from the configuration.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter">
<summary>
Implements throttled and persisted transmission of telemetry to Application Insights.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.locker">
<summary>
A locker that will be used as a name mutex to synchronize transmitters from different channels and different processes.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.senders">
<summary>
A list of senders that sends transmissions.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.storage">
<summary>
The storage that is used to persist all the transmissions.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.sendingCancellationTokenSource">
<summary>
Cancels the sending.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.disposeCount">
<summary>
The number of times this object was disposed.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.eventToKeepMutexThreadAlive">
<summary>
Mutex is released once the thread that acquired it is ended. This event keeps the long running thread that acquire the mutex alive until dispose is called.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.#ctor(Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase,System.Int32,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter" /> class.
</summary>
<param name="storage">The transmissions storage.</param>
<param name="sendersCount">The number of senders to create.</param>
<param name="createSenders">A boolean value that indicates if this class should try and create senders. This is a workaround for unit tests purposes only.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.#ctor(Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase,System.Int32,Microsoft.VisualStudio.ApplicationInsights.Channel.IProcessLockFactory,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter" /> class.
</summary>
<param name="storage">The transmissions storage.</param>
<param name="sendersCount">The number of senders to create.</param>
<param name="processLockFactory">IProcessLockBuilder that will create an IProcessLock to sync transmission between processes</param>
<param name="createSenders">A boolean value that indicates if this class should try and create senders. This is the case in CS Dev Kit as well as test cases.</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.StorageUniqueFolder">
<summary>
Gets a unique folder name. This folder will be used to store the transmission files.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.SendingInterval">
<summary>
Gets or sets the interval between each successful sending.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.Dispose">
<summary>
Disposes the object.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.AcquireMutex(System.Action)">
<summary>
Make sure that <paramref name="action" /> happens only once even if it is executed on different processes.
On every given time only one channel will acquire the mutex, even if the channel is on a different process.
This method is using a named mutex to achieve that. Once the mutex is acquired <paramref name="action" /> will be executed.
</summary>
<param name="action">The action to perform once the mutex is acquired.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.CreateSenders(System.Int32)">
<summary>
Create senders to send telemetries.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter.StopSenders">
<summary>
Stops the senders.
</summary>
<remarks>As long as there is no Start implementation, this method should only be called from Dispose.</remarks>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.filesToDelete">
<summary>
Needs to track files to delete. Use ConcurrentDictionary which is the best option for
tracking set of items in a thread-safe manner.
See: https://stackoverflow.com/questions/18922985/concurrent-hashsett-in-net-framework
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.#ctor(System.String,Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase" /> class.
</summary>
<param name="uniqueFolderName">A folder name. Under this folder all the transmissions will be saved.</param>
<param name="version">The version of persistence to use.</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.FolderName">
<summary>
Gets the storage's folder name. This is not the final full path on disk. The final path
can be determined via the StorageFolder property instead.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.StorageFolderInitialized">
<summary>
Gets or sets a value indicating whether storage folder was already tried to be created. Only used for UTs.
Once this value is true, StorageFolder will always return null, which mocks scenario that storage's folder
couldn't be created.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.StorageFolder">
<summary>
Gets the storage folder. If storage folder couldn't be created, null will be returned.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.PeekAll(System.Threading.CancellationToken)">
<summary>
Peek all transmissions at once.
</summary>
<param name="token">Cancellation token</param>
<returns>List of transmissions or empty array</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.Peek">
<summary>
Reads an item from the storage. Order is Last-In-First-Out.
When the Transmission is no longer needed (it was either sent or failed with a non-retriable error) it should be disposed.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.TryAndLogDeleteFile(System.String)">
<summary>
Attempts to delete the file in a try/catch logger block.
</summary>
<param name="fullFilePath">Full path to the file to delete.</param>
<returns>True if succeeded, else false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.BuildTransmissionFromFile(System.IO.FileInfo)">
<summary>
Builds transmission from the file object. In the case of success adds
new transmission to the processing queue. No exceptions are thrown.
</summary>
<param name="file">Valid FileInfo object</param>
<returns>StorageTransmission object in case of success or null in case of fail</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.GetFilteredFiles">
<summary>
Gets list of the files in the order of Last-In-First-Out. Validate that files are not in the
queue for processing or deleting and that it is possible to delete file.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.GetDeletableFilesForExtension(System.String)">
<summary>
Gets all files for the specified <paramref name="fileExt" /> in the StorageFolder that can be deleted.
</summary>
<param name="fileExt">the file extension with a prefix period. For example: ".txt".</param>
<returns>An IEnumerable of files with the file extension in the storage folder that can be deleted.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.BuildFullFileNameWithoutExtension">
<summary>
Build file name for the new file without extension.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.BuildNewFullFileNameWithSameDate(System.String)">
<summary>
Generate new file name keeping first part (date) as is.
We need it to not change file order which is used when file is peeked.
</summary>
<param name="name"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.GetSHA256Hash(System.String,System.String)">
<summary>
Helper method to generate a string hash.
</summary>
<param name="input"></param>
<param name="defaultValue">Value to be returned if hashing fails, or null to propagate any exception.</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.GetFiles(System.String)">
<summary>
Get files from <see cref="F:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.storageFolder" />.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.DeleteObsoleteFiles">
<summary>
Enqueue is saving a transmission to a <c>tmp</c> file and after a successful write operation it renames it to a <c>trn</c> file.
A file without a <c>trn</c> extension is ignored by Storage.Peek(), so if a process is taken down before rename happens
it will stay on the disk forever.
This method deletes files with the <c>tmp</c> extension that exists on disk for more than 5 minutes.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.TryDeleteBrokenFiles">
<summary>
In StorageTransmission, if a file isn't able to be deleted, it is renamed with a .broken file extension. This method
cleans up all those files that were marked (renamed) so that they aren't left on the machine.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.CanDelete(System.IO.FileInfo)">
<summary>
Simple method to detect if current user has permission to delete the file.
</summary>
<param name="fileInfo"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.PersistentStorageBase.GeneratePersistentStorageFolderSuffix(Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion,System.String,System.String)">
<summary>
Helper method to calculate either iKey or generate a hash based on iKey and globalStorageUri. Used in both session channel and in TelemetryCollector code.
</summary>
<param name="version">The storage version to use when determining folder suffix convention.</param>
<param name="iKey">Endpoint iKey for transmitting.</param>
<param name="globalStorageUri">Can be null. Storage Uri if available.</param>
<returns>If the globalStorageUri is set, then it will return a hash of iKey and globalStorageUri, otherwise it will return the iKey value.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ProcessLockException">
<summary>
Process lock exception indicates an error that happened within the ProcessLock.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ProcessLockException.IsRetryable">
<summary>
Gets a value indicating whether consumer should retry acquiring the process lock or just give up.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender">
<summary>
Fetch transmissions from the storage and sends it.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.TriggerCountStaleHashCheck">
<summary>
We need to keep number of stored transmission hashes limited. So once per
TriggerCountStaleHashCheck sent transmission we start cleanup procedure and
remove stale hashes which is in memory for more than StaleHashPeriod of time.
Each hash is 64 characters long, so string is 128 bytes long. We keep it twice:
in linked list + dictionary. It is approximately 128 + 128 + 32 (additional expenses) ~ 288 bytes per hash.
50 * 288 = 14K seems reasonable amount of memory to allocate for 50 hashes.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.DelayHandler">
<summary>
A wait handle that flags the sender when to start sending again. The type is protected for unit test.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.sendingIntervalOnNoData">
<summary>
When storage is empty it will be queried again after this interval.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.maxIntervalBetweenRetries">
<summary>
Holds the maximum time for the exponential back-off algorithm. The sending interval will grow on every HTTP Exception until this max value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.stoppedHandler">
<summary>
A wait handle that is being set when Sender is no longer sending.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.listOfTransmissionHash">
<summary>
Keep list of transmission hashes in order of most recent at the end. This allows us faster find
all stale hashes.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.setOfTransmissionHash">
<summary>
Keeps list of transmission hashes in set, to be able to fast O(1) check whether hash in the set.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.hashLock">
<summary>
All operations on list and set of the transmission hash should be guarded by this lock,
because we allow to work with Sender on a multiple threads.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.checkStaleHashCount">
<summary>
Have this counter to understand whether start cleanup procedure.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.stopped">
<summary>
A boolean value that indicates if the sender should be stopped. The sender's while loop is checking this boolean value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.drainingTimeout">
<summary>
The amount of time to wait, in the stop method, until the last transmission is sent.
If time expires, the stop method will return even if the transmission hasn't been sent.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.storage">
<summary>
The transmissions storage.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.disposeCount">
<summary>
The number of times this object was disposed.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.transmitter">
<summary>
Holds the transmitter.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.#ctor(Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase,Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceTransmitter,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender" /> class.
</summary>
<param name="storage">The storage that holds the transmissions to send.</param>
<param name="transmitter">
The persistence transmitter that manages this Sender.
The transmitter will be used as a configuration class, it exposes properties like SendingInterval that will be read by Sender.
</param>
<param name="startSending">A boolean value that determines if Sender should start sending immediately. This is only used for unit tests.</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.SendingInterval">
<summary>
Gets the interval between each successful sending.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.Dispose">
<summary>
Disposes the managed objects.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.StopAsync">
<summary>
Stops the sender.
</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the asynchronous operation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.FlushAllAsync(System.Threading.CancellationToken)">
<summary>
Try to upload all pending telemetry we have in the temporary folder.
</summary>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.SendLoop">
<summary>
Send transmissions in a loop.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.Send(Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission,System.TimeSpan@)">
<summary>
Sends a transmission and handle errors.
</summary>
<param name="transmission">The transmission to send.</param>
<param name="nextSendInterval">When this value returns it will hold a recommendation for when to start the next sending iteration.</param>
<returns>A boolean value that indicates if there was a retriable error.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.SendAsync(Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission,System.Threading.CancellationToken,System.TimeSpan)">
<summary>
Sends a transmission asynchronously and handle errors.
</summary>
<param name="transmission">The transmission to send.</param>
<param name="token">Cancellation token</param>
<param name="sendInterval">Previous send interval duration</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.CleanupStaleTransmissionHash">
<summary>
Cleanup stale transmission hash based on the data hash is added.
We need it to keep transmission hash set size not grow indefinitely to not waste memory.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.LogInterval(System.TimeSpan,System.TimeSpan)">
<summary>
Log next interval. Only log the interval when it changes by more then a minute. So if interval grow by 1 minute or decreased by 1 minute it will be logged.
Logging every interval will just make the log noisy.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.GetStatusCode(System.Net.WebException)">
<summary>
Return the status code from the web exception or null if no such code exists.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.IsRetryable(System.Nullable{System.Int32},System.Net.WebExceptionStatus)">
<summary>
Returns true if <paramref name="httpStatusCode" /> or <paramref name="webExceptionStatus" /> are retriable.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.CalculateNextInterval(System.Nullable{System.Int32},System.TimeSpan,System.TimeSpan)">
<summary>
Calculates the next interval using exponential back-off algorithm (with the exceptions of few error codes that reset the interval to <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.Sender.SendingInterval" />.
</summary>
<returns></returns>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase.peekedTransmissions">
<summary>
Peeked transmissions dictionary (maps file name to its full path). Holds all the transmissions that were peeked.
</summary>
<remarks>
Note: The value (=file's full path) is not required in the Storage implementation.
If there was a concurrent Abstract Data Type Set it would have been used instead.
However, since there is no concurrent Set, dictionary is used and the second value is ignored.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase.CapacityInBytes">
<summary>
Gets or sets the maximum size of the storage in bytes. When limit is reached, the Enqueue method will drop new transmissions.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageBase.MaxFiles">
<summary>
Gets or sets the maximum number of files. When limit is reached, the Enqueue method will drop new transmissions.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission.TelemetryLevel">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission.Microsoft#VisualStudio#Telemetry#Collector#IEmittedTelemetryEvent#ApiKey">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission.Delete">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission.Dispose">
<summary>
Disposing the storage transmission.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission.CreateFromStreamAsync(System.IO.Stream,System.String,Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion)">
<summary>
Creates a new transmission from the specified <paramref name="stream" />.
</summary>
<returns>Return transmission loaded from file; return null if the file is corrupted.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.StorageTransmission.SaveAsync(Microsoft.VisualStudio.ApplicationInsights.Channel.Transmission,System.IO.Stream,Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion)">
<summary>
Saves the transmission to the specified <paramref name="stream" />.
</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the asynchronous operation.</returns>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.ConvertChunkSize">
<summary>
Chunk size in bytes to convert to base64 string. Final size of the string should be less than or equal 85000 bytes.
Final string length in bytes is: (30000 / 3) * 4 * 2 = 80000
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.ContentType">
<summary>
Gets or sets the Content Type used in the request header when sent to the telemetry endpoint.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.ContentEncoding">
<summary>
Gets or sets the Content Encoding used in the request header when sent to the telemetry endpoint.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.TransmissionEndpoint">
<summary>
Gets or sets the deserialized version of the endpoint for TransmissionFile. This is backed by the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.TransmissionEndpointUri" /> where the value is stored.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.Content">
<summary>
Gets or sets the Base64 encoded content string for a set of events. This is backed by the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.ContentInBytes" />property.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.EndpointApiKey">
<summary>
Gets or sets the EndpointApiKey is the Collector required endpoint key that needs to be in the header of the request.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.EventTelemetryLevel">
<summary>
Gets or sets the Telemetry level for all the events in this transmission file.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.TransmissionEndpointUri">
<summary>
Gets or sets the TransmissionEndpoint string in Uri format. This is not serialized.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.ContentInBytes">
<summary>
Gets or sets the content in raw bytes (before Base64 encoding) of the telemetry events. This is not serialized.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.SerializeToJsonAsync(System.IO.StreamWriter,Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile)">
<summary>
Serializes a TransmissionFile into Json
</summary>
<param name="writer">The stream writer.</param>
<param name="file">The transmission file to serialize.</param>
<returns>The async Task.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.DeserializeFromJson(System.IO.StreamReader)">
<summary>
Deserialize from the text from the reader into a <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile" />.
</summary>
<param name="reader">The stream reader for the stream to deserialize.</param>
<returns>The <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile" /> that was deserialized.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.SerializeToTrnAsync(System.IO.StreamWriter,Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile)">
<summary>
Serialize the <paramref name="file" /> into the <paramref name="writer" /> in the classic .trn format.
</summary>
<param name="writer">Location to serialize to.</param>
<param name="file">The <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile" /> to serialize.</param>
<returns>Async Task</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile.DeserializeFromTrnAsync(System.IO.StreamReader)">
<summary>
Deserializes the data from <paramref name="reader" /> into a new <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile" />. This deserializer follows the old .trn format.
</summary>
<param name="reader">The stream to serialize data from.</param>
<returns>A new <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.TransmissionFile" /> with the deserialized data.</returns>
<exception cref="T:System.FormatException">If the file is not in the correct order or is missing values, a Format Exception is thrown..</exception>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.WindowsStorage.#ctor(System.String,Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.WindowsStorage" /> class. This is the default Storage class for Windows
</summary>
<param name="uniqueFolderName">A folder name. Under this folder all the transmissions will be saved.</param>
<param name="version">The version of persistence storage method.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.WindowsStorage.CanDelete(System.IO.FileInfo)">
<summary>
Simple method to detect if current user has permission to delete the file.
</summary>
<param name="fileInfo"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.EventSourceWriter">
<summary>
Encapsulates logic for sending a telemetry as a Common Schema 2.0 event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.EventSourceWriter.ProviderId">
<summary>
Gets the underlying EventSource (ETW) ID. Exposed for Unit Tests purposes.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.EventSourceWriter.ProviderName">
<summary>
Gets the underlying EventSource (ETW) Name. Exposed for Unit Tests purposes.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.EventSourceWriter.InstrumentationKey">
<summary>
Gets the instrumentation key for this writer. Exposed for Unit Tests purposes.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.EventSourceWriter.Dispose">
<summary>
Releases resources.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel">
<summary>
Represents a communication channel for sending telemetry to Application Insights via UTC (Windows Universal Telemetry Client).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.DeveloperMode">
<summary>
Gets or sets a value indicating whether developer mode of telemetry transmission is enabled.
When developer mode is True, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel" /> sends telemetry to Application Insights immediately
during the entire lifetime of the application. When developer mode is False, <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel" />
respects production sending policies defined by other properties.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.EndpointAddress">
<summary>
Gets or sets a value indicating the endpoint address. This property is ignored.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.IsAvailable">
<summary>
Returns true if the channel is available to use.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.Dispose">
<summary>
Releases unmanaged and - optionally - managed resources.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.Send(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Sends an instance of ITelemetry through the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.Flush">
<summary>
No-op because every <see cref="M:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.Send(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)" /> method is immediately calling UTC. So every call is immediately "flushed" to the UTC agent.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Channel.UniversalTelemetryChannel.FlushAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Flushes the in-memory buffer and transmit data asynchronously.
</summary>
<param name="token"></param>
<returns></returns>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Constants.StorageCacheMutexPrefixV1">
<summary>
The mutex prefix used to lock on Storage v2 (used by the legacy Sender).
Bug 248019: VS Telemetry: Visual Studio can freeze if another instance of ApplicationInsights is loaded
This prefix is added to avoid collisions with mutex objects from other AI apps.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Constants.StorageCacheMutexPrefixV2">
<summary>
The mutex prefix used to lock on Storage v2 (used by the Collector).
Bug 248019: VS Telemetry: Visual Studio can freeze if another instance of ApplicationInsights is loaded
This prefix is added to avoid collisions with mutex objects from other AI apps.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry">
<summary>
Telemetry type used to track events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry" /> class with the given <paramref name="name" />.
</summary>
<exception cref="T:System.ArgumentException">The event <paramref name="name" /> is null or empty string.</exception>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.Timestamp">
<summary>
Gets or sets date and time when event was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.Context">
<summary>
Gets the context associated with the current telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.Name">
<summary>
Gets or sets the name of the event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.CommonSchemaVersion">
<summary>
Gets or sets the Common Schema version for this event
which is used for determining data shape and
tranmission endpoint
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.Metrics">
<summary>
Gets a dictionary of application-defined event metrics.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionHandledAt">
<summary>
This enumeration is used by ExceptionTelemetry to identify if and where exception was handled.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionHandledAt.Unhandled">
<summary>
Exception was not handled. Application crashed.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionHandledAt.UserCode">
<summary>
Exception was handled in user code.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionHandledAt.Platform">
<summary>
Exception was handled by some platform handlers.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry">
<summary>
Telemetry type used to track exceptions.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry" /> class with empty properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.#ctor(System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry" /> class with empty properties.
</summary>
<param name="exception">Exception instance.</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.Timestamp">
<summary>
Gets or sets date and time when telemetry was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.Context">
<summary>
Gets the context associated with the current telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.HandledAt">
<summary>
Gets or sets the value indicated where the exception was handled.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.Exception">
<summary>
Gets or sets the original exception tracked by this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.Metrics">
<summary>
Gets a dictionary of application-defined exception metrics.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this exception.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.SeverityLevel">
<summary>
Gets or sets Exception severity level.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonSerializable">
<summary>
Represents objects that support serialization to JSON.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonSerializable.Serialize(Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter)">
<summary>
Writes JSON representation of the object to the specified <paramref name="writer" />.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter">
<summary>
Encapsulates logic for serializing objects to JSON.
</summary>
<seealso cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonSerializable" />.
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteStartArray">
<summary>
Writes opening/left square bracket.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteStartObject">
<summary>
Writes opening/left curly brace.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteEndArray">
<summary>
Writes closing/right square bracket.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteEndObject">
<summary>
Writes closing/right curly brace.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteComma">
<summary>
Writes comma.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.String)">
<summary>
Writes a <see cref="T:System.String" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.Boolean})">
<summary>
Writes a <see cref="T:System.Boolean" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.Int32})">
<summary>
Writes a <see cref="T:System.Int32" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.Double})">
<summary>
Writes a <see cref="T:System.Double" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.TimeSpan})">
<summary>
Writes a <see cref="T:System.TimeSpan" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Nullable{System.DateTimeOffset})">
<summary>
Writes a <see cref="T:System.DateTimeOffset" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Collections.Generic.IDictionary{System.String,System.Double})">
<summary>
Writes a <see cref="T:System.Collections.Generic.IDictionary`2" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
<summary>
Writes a <see cref="T:System.Collections.Generic.IDictionary`2" /> property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteProperty(System.String,Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonSerializable)">
<summary>
Writes an <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonSerializable" /> object property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WritePropertyName(System.String)">
<summary>
Writes a property name in double quotation marks, followed by a colon.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter.WriteRawValue(System.Object)">
<summary>
Writes <see cref="T:System.Object" /> as raw value directly.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException">
<summary>
This exception is used to notify the user that the set of inner exceptions has been trimmed because it exceeded our allowed send limit.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException" /> class with a specified error message.
</summary>
<param name="message">The message that describes the error. </param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException" /> class with a specified error message and a reference to the inner exception that is the cause of this exception.
</summary>
<param name="message">The error message that explains the reason for the exception. </param><param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. </param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.InnerExceptionCountExceededException" /> class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown. </param><param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination. </param><exception cref="T:System.ArgumentNullException">The <paramref name="info" /> parameter is null. </exception><exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult" /> is zero (0). </exception>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ISupportProperties">
<summary>
Represents an object that supports application-defined properties.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ISupportProperties.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about telemetry.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry">
<summary>
Telemetry type used to track metrics.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry" /> class with empty
properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.#ctor(System.String,System.Double)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry" /> class with the
specified <paramref name="metricName" /> and <paramref name="metricValue" />.
</summary>
<exception cref="T:System.ArgumentException">The <paramref name="metricName" /> is null or empty string.</exception>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Timestamp">
<summary>
Gets or sets date and time when event was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Context">
<summary>
Gets the context associated with the current telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Name">
<summary>
Gets or sets the name of the metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Value">
<summary>
Gets or sets the value of this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Count">
<summary>
Gets or sets the number of samples for this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Min">
<summary>
Gets or sets the min value of this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Max">
<summary>
Gets or sets the max value of this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.StandardDeviation">
<summary>
Gets or sets the standard deviation of this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this metric.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry">
<summary>
Telemetry type used to track page views.
</summary>
<remarks>
You can send information about pages viewed by your application to Application Insights by
passing an instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry" /> class to the <see cref="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackPageView(Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry)" />
method.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry" /> class with the
specified <paramref name="pageName" />.
</summary>
<exception cref="T:System.ArgumentException">The <paramref name="pageName" /> is null or empty string.</exception>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Timestamp">
<summary>
Gets or sets date and time when event was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Context">
<summary>
Gets the context associated with the current telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Name">
<summary>
Gets or sets the name of the metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Url">
<summary>
Gets or sets the page view Uri.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Duration">
<summary>
Gets or sets the page view duration.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Metrics">
<summary>
Gets a dictionary of custom defined metrics.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this page view.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry">
<summary>
The class that represents information about performance counters.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Timestamp">
<summary>
Gets or sets date and time when telemetry was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Context">
<summary>
Gets the context associated with the current telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Value">
<summary>
Gets or sets the counter value.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.CategoryName">
<summary>
Gets or sets the category name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.CounterName">
<summary>
Gets or sets the counter name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.InstanceName">
<summary>
Gets or sets the instance name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this exception.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.PerformanceCounterTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry">
<summary>
The class that represents information about collected RDD.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Timestamp">
<summary>
Gets or sets date and time when telemetry was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Context">
<summary>
Gets the context associated with the current telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Name">
<summary>
Gets or sets resource name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.CommandName">
<summary>
Gets or sets text of SQL command or empty it not applicable.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.DependencyKind">
<summary>
Gets or sets the dependency kind, like SQL, HTTP, Azure, etc.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Value">
<summary>
Gets or sets request duration.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Count">
<summary>
Gets or sets request count.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Success">
<summary>
Gets or sets a value indicating whether the dependency call was successful or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Async">
<summary>
Gets or sets a value indicating whether the dependency call was made asynchronously or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.DependencySource">
<summary>
Gets or sets a value identifying the source of RDD.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this remote dependency.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RemoteDependencyTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry">
<summary>
Encapsulates information about a web request handled by the application.
</summary>
<remarks>
You can send information about requests processed by your web application to Application Insights by
passing an instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry" /> class to the <see cref="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackRequest(Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry)" />
method.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.#ctor(System.String,System.DateTimeOffset,System.TimeSpan,System.String,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry" /> class with the given <paramref name="name" />,
<paramref name="timestamp" />, <paramref name="duration" />, <paramref name="responseCode" /> and <paramref name="success" /> property values.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Timestamp">
<summary>
Gets or sets the date and time when request was processed by the application.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Context">
<summary>
Gets the object that contains contextual information about the application at the time when it handled the request.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Id">
<summary>
Gets or sets the unique identifier of the request.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Name">
<summary>
Gets or sets human-readable name of the requested page.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.ResponseCode">
<summary>
Gets or sets response code returned by the application after handling the request.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Success">
<summary>
Gets or sets a value indicating whether application handled the request successfully.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Duration">
<summary>
Gets or sets the amount of time it took the application to handle the request.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this request.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Url">
<summary>
Gets or sets request url (optional).
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Metrics">
<summary>
Gets a dictionary of application-defined request metrics.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.HttpMethod">
<summary>
Gets or sets the HTTP method of the request.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionState">
<summary>
Contains values that identify state of a user session.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionState.Start">
<summary>
Indicates that a user session started.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionState.End">
<summary>
Indicates that a user session ended.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry">
<summary>
Telemetry type used to track user sessions.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry.#ctor(Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionState)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry" /> class with the specified <paramref name="state" />.
</summary>
<param name="state">
A <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionState" /> value indicating state of the user session.
</param>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry.Timestamp">
<summary>
Gets or sets the date and time the session state was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry.Context">
<summary>
Gets the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" /> of the application when the session state was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry.State">
<summary>
Gets or sets the value describing state of the user session.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SessionStateTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes this telemetry instance to ensure it can be accepted by the Application Insights.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel">
<summary>
This enumeration is used by ExceptionTelemetry and TraceTelemetry to identify severity level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel.Verbose">
<summary>
Verbose severity level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel.Information">
<summary>
Information severity level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel.Warning">
<summary>
Warning severity level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel.Error">
<summary>
Error severity level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel.Critical">
<summary>
Critical severity level.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext">
<summary>
Represents a context for sending telemetry to the Application Insights service.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.InstrumentationKey">
<summary>
Gets or sets the default instrumentation key for all <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> objects logged in this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
<remarks>
By default, this property is initialized with the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.InstrumentationKey" /> value
of the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.Active" /> instance of <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration" />. You can specify it
for all telemetry tracked via a particular <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" /> or for a specific <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" />
instance.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Component">
<summary>
Gets the object describing the component tracked by this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Device">
<summary>
Gets the object describing the device tracked by this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Session">
<summary>
Gets the object describing a user session tracked by this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.User">
<summary>
Gets the object describing a user tracked by this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Operation">
<summary>
Gets the object describing a operation tracked by this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Location">
<summary>
Gets the object describing a location tracked by this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Properties">
<summary>
Gets a dictionary of application-defined property values.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Tags">
<summary>
Gets a dictionary of context tags.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Microsoft#VisualStudio#ApplicationInsights#DataContracts#IJsonSerializable#Serialize(Microsoft.VisualStudio.ApplicationInsights.DataContracts.IJsonWriter)">
<summary>
Serializes this object in JSON format.
This is used by Common Schema 2.0 data flow.
Common Schema 4 does not use tags, and writes
the iKey in TelemetryHelper:WriteEnvelopeProperties
as it uses a different format
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry">
<summary>
Telemetry type used for log messages.
Contains a time and message and optionally some additional metadata.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.#ctor(System.String,Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.Timestamp">
<summary>
Gets or sets date and time when event was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.Sequence">
<summary>
Gets or sets the value that defines absolute order of the telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.Context">
<summary>
Gets the context associated with the current telemetry item.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.Message">
<summary>
Gets or sets the message text. For example, the text that would normally be written to a log file line.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.SeverityLevel">
<summary>
Gets or sets Trace severity level.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.Properties">
<summary>
Gets a dictionary of application-defined property names and values providing additional information about this trace.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry.Microsoft#VisualStudio#ApplicationInsights#Channel#ITelemetry#Sanitize">
<summary>
Sanitizes the properties based on constraints.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle">
<summary>
This class represents a platform agnostic management interface to application lifecycle events.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle.provider">
<summary>
The current platform specific application lifecycle provider. We have this additional level of indirection so that we can
replace the provider on the fly without having to unhook all consumers of the events if provides.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle" /> class.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle.Started">
<summary>
Occurs when a new instance of the application is started or an existing instance is activated.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle.Stopping">
<summary>
Occurs when the application is suspending or closing.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle.Service">
<summary>
Gets the singleton instance for our management object.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationLifecycle.SetProvider(Microsoft.VisualStudio.ApplicationInsights.Extensibility.IApplicationLifecycle)">
<summary>
Initializes the current management interface with a platform specific provider.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationStoppingEventArgs">
<summary>
Encapsulates arguments of the <see cref="E:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IApplicationLifecycle.Stopping" /> event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationStoppingEventArgs.#ctor(System.Func{System.Func{System.Threading.Tasks.Task},System.Threading.Tasks.Task})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationStoppingEventArgs" /> class with the specified runner of asynchronous methods.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ApplicationStoppingEventArgs.Run(System.Func{System.Threading.Tasks.Task})">
<summary>
Runs the specified asynchronous method while preventing the application from exiting.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.BuildInfoConfigComponentVersionContextInitializer">
<summary>
A telemetry context initializer that will set component context version on the base of BuildInfo.config information.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.BuildInfoConfigComponentVersionContextInitializer.version">
<summary>
The version for this component.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.BuildInfoConfigComponentVersionContextInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext)">
<summary>
Initializes a component context version on the base of BuildInfo.config information.
</summary>
<param name="context">The telemetry context to initialize.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.BuildInfoConfigComponentVersionContextInitializer.LoadBuildInfoConfig">
<summary>
Loads BuildInfo.config and returns XElement.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.BuildInfoConfigComponentVersionContextInitializer.GetVersion">
<summary>
Gets the version for the current application. If the version cannot be found, we will return the passed in default.
</summary>
<returns>The extracted data.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextInitializer">
<summary>
A telemetry context initializer that will gather component context information.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext)">
<summary>
Initializes the given <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
<param name="context">The telemetry context to initialize.</param>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader">
<summary>
The reader is platform specific and applies to .NET applications only.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader.UnknownComponentVersion">
<summary>
The default application version we will be returning if no application version is found.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader.instance">
<summary>
The singleton instance for our reader.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader.Instance">
<summary>
Gets or sets the singleton instance for our application context reader.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader.Initialize">
<summary>
Initializes the current reader with respect to its environment.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ComponentContextReader.GetVersion">
<summary>
Gets the version for the current application. If the version cannot be found, we will return the passed in default.
</summary>
<returns>The extracted data.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextInitializer">
<summary>
A telemetry context initializer that will gather device context information.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext)">
<summary>
Initializes the given <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
<param name="context">The telemetry context to initialize.</param>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader">
<summary>
The reader is platform specific and applies to .NET applications only.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.syncRoot">
<summary>
The sync root used in synchronizing access to persistent storage.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.deviceId">
<summary>
The device identifier.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.operatingSystem">
<summary>
The operating system.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.deviceManufacturer">
<summary>
The device manufacturer.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.deviceName">
<summary>
The device name.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.networkType">
<summary>
The network type.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.cachedContext">
<summary>
The cached fallback context.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.FallbackContext">
<summary>
Gets the fallback device context.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.Initialize">
<summary>
Initializes the current instance with respect to the platform specific implementation.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetDeviceType">
<summary>
Gets the type of the device.
</summary>
<returns>The type for this device as a hard-coded string.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetDeviceUniqueId">
<summary>
Gets the device unique ID, or uses the fallback if none is available due to application configuration.
</summary>
<returns>
The discovered device identifier.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetOperatingSystemAsync">
<summary>
Gets the operating system.
</summary>
<returns>The discovered operating system.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetOemName">
<summary>
Gets the device OEM.
</summary>
<returns>The discovered OEM.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetDeviceModel">
<summary>
Gets the device model.
</summary>
<returns>The discovered device model.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetNetworkType">
<summary>
Gets the network type.
</summary>
<returns>The discovered network type.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetScreenResolutionAsync">
<summary>
Gets the screen resolution.
</summary>
<returns>The discovered screen resolution.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.ReadSerializedContext">
<summary>
Reads the serialized context from persistent storage, or will create a new context if none exits.
</summary>
<returns>The fallback context we will be using.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.RunWmiQuery(System.String,System.String,System.String)">
<summary>
Runs a single WMI query for a property.
</summary>
<param name="table">The table.</param>
<param name="property">The property.</param>
<param name="defaultValue">The default value of the property if WMI fails.</param>
<returns>The value if found, Unknown otherwise.</returns>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.ContextPersistentStorageFileName">
<summary>
The file name used when storing persistent context.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.instance">
<summary>
The singleton instance for our reader.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.Instance">
<summary>
Gets or sets the singleton instance for our application context reader.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.DeviceContextReader.GetHostSystemLocale">
<summary>
Gets the host system locale.
</summary>
<returns>The discovered locale.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.FallbackDeviceContext">
<summary>
The fallback device context we will be using if we can't extract device information directly.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.FallbackDeviceContext.DeviceUniqueId">
<summary>
Gets the device unique identifier.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.FallbackDeviceContext.Initialize">
<summary>
Initializes this instance with a set of new properties to serve as context.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.FallbackDeviceContext.Serialize(System.Xml.Linq.XElement)">
<summary>
Serializes the current instance to the passed in root element.
</summary>
<param name="rootElement">The root element to serialize to.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.FallbackDeviceContext.Deserialize(System.Xml.Linq.XElement)">
<summary>
Deserializes the passed in root element to the current instance.
</summary>
<param name="rootElement">The root element to deserialize.</param>
<returns>True if deserialization was successful, false otherwise.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IApplicationLifecycle">
<summary>
Encapsulates application lifecycle events.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IApplicationLifecycle.Started">
<summary>
Occurs when a new instance of the application is started or an existing instance is activated.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IApplicationLifecycle.Stopping">
<summary>
Occurs when the application is suspending or closing.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IComponentContextReader">
<summary>
The component context reader interface used while reading component related information in a platform specific way.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IComponentContextReader.Initialize">
<summary>
Initializes the current reader with respect to its environment.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IComponentContextReader.GetVersion">
<summary>
Gets the version for the current application. If the version cannot be found, we will return the passed in default.
</summary>
<returns>The extracted data.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IContextInitializer">
<summary>
Represents an object that implements supporting logic for <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
<remarks>
One type of objects that support <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" /> is a telemetry source.
A telemetry source can supply initial property values for a <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" /> object
during its construction or generate <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> objects during its lifetime.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IContextInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext)">
<summary>
Initializes the given <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" />.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader">
<summary>
The device context reader interface used while reading device related information in a platform specific way.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.FallbackContext">
<summary>
Gets the fallback device context.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.Initialize">
<summary>
Initializes the current reader with respect to its environment.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetDeviceType">
<summary>
Gets the type of the device.
</summary>
<returns>The type for this device as a hard-coded string.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetDeviceUniqueId">
<summary>
Gets the device unique identifier.
</summary>
<returns>The discovered device identifier.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetOperatingSystemAsync">
<summary>
Gets the operating system version.
</summary>
<returns>The discovered operating system.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetOemName">
<summary>
Gets the device OEM.
</summary>
<returns>The discovered OEM.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetDeviceModel">
<summary>
Gets the device model.
</summary>
<returns>The discovered device model.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetNetworkType">
<summary>
Gets the network type.
</summary>
<returns>The discovered network type.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetScreenResolutionAsync">
<summary>
Gets the screen resolution.
</summary>
<returns>The discovered screen resolution.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IDeviceContextReader.GetHostSystemLocale">
<summary>
Gets the host system locale.
</summary>
<returns>The discovered locale.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IFallbackContext">
<summary>
The interface for all fallback contexts.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IFallbackContext.Initialize">
<summary>
Initializes this instance with a set of new properties to serve as context.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IFallbackContext.Serialize(System.Xml.Linq.XElement)">
<summary>
Serializes the current instance to the passed in root element.
</summary>
<param name="rootElement">The root element to serialize to.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IFallbackContext.Deserialize(System.Xml.Linq.XElement)">
<summary>
Deserializes the passed in root element to the current instance.
</summary>
<param name="rootElement">The root element to deserialize.</param>
<returns>True if deserialization was successful, false otherwise.</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Clock">
<summary>
A highly-accurate, precise and testable clock.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.ComponentContext">
<summary>
Encapsulates information describing an Application Insights component.
</summary>
<remarks>
This class matches the "Application" schema concept. We are intentionally calling it "Component" for consistency
with terminology used by our portal and services and to encourage standardization of terminology within our
organization. Once a consensus is reached, we will change type and property names to match.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.ComponentContext.Version">
<summary>
Gets or sets the application version.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.CurrentThreadTaskScheduler">
<summary>
Runs tasks synchronously, on the current thread.
From <a href="http://code.msdn.microsoft.com/Samples-for-Parallel-b4b76364/view/SourceCode" />.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext">
<summary>
Encapsulates information about a device where an application is running.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.Type">
<summary>
Gets or sets the type for the current device.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.Id">
<summary>
Gets or sets a device unique ID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.OperatingSystem">
<summary>
Gets or sets the operating system name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.OemName">
<summary>
Gets or sets the device OEM for the current device.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.Model">
<summary>
Gets or sets the device model for the current device.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.NetworkType">
<summary>
Gets or sets the <a href="http://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib">IANA interface type</a>
for the internet connected network adapter.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.ScreenResolution">
<summary>
Gets or sets the current application screen resolution.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.Language">
<summary>
Gets or sets the current display language of the operating system.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.RoleName">
<summary>
Gets or sets the role name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.DeviceContext.RoleInstance">
<summary>
Gets or sets the role instance.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.ConvertToExceptionDetails(System.Exception,Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails)">
<summary>
Converts a System.Exception to a Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryTypes.ExceptionDetails.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.SanitizeStackFrame``2(System.Collections.Generic.IList{``0},System.Func{``0,System.Int32,``1},System.Func{``1,System.Int32})">
<summary>
Sanitizing stack to 32k while selecting the initial and end stack trace.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.GetStackFrame(System.Diagnostics.StackFrame,System.Int32)">
<summary>
Converts a System.Diagnostics.StackFrame to a Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryTypes.StackFrame.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.ExceptionConverter.GetStackFrameLength(Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.StackFrame)">
<summary>
Gets the stack frame length for only the strings in the stack frame.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.ExceptionHandler.Start(System.Func{System.Threading.Tasks.Task})">
<summary>
Starts the <paramref name="asyncMethod" />, catches and logs any exceptions it may throw.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.AjaxCallData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DataPoint">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.MetricData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.RemoteDependencyData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.RequestData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.StackFrame">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails">
<summary>
Additional implementation for ExceptionDetails.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails.CreateWithoutStackInfo(System.Exception,Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails)">
<summary>
Creates a new instance of ExceptionDetails from a System.Exception and a parent ExceptionDetails.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ExceptionData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.MessageData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.EventData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.PageViewData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.PageViewPerfData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ComponentContextData">
<summary>
Encapsulates information describing an Application Insights component.
</summary>
<remarks>
This class matches the "Application" schema concept. We are intentionally calling it "Component" for consistency
with terminology used by our portal and services and to encourage standardization of terminology within our
organization. Once a consensus is reached, we will change type and property names to match.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ComponentContextData.Version">
<summary>
Gets or sets the application version.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ComponentContextData.Build">
<summary>
Gets or sets the application version.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ContextTagKeys">
<summary>
Holds the static singleton instance of ContextTagKeys.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData">
<summary>
Encapsulates information about a device where an application is running.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Type">
<summary>
Gets or sets the type for the current device.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Id">
<summary>
Gets or sets a device unique ID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.OperatingSystem">
<summary>
Gets or sets the operating system name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.OemName">
<summary>
Gets or sets the device OEM for the current device.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Model">
<summary>
Gets or sets the device model for the current device.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.NetworkType">
<summary>
Gets or sets the <a href="http://www.iana.org/assignments/ianaiftype-mib/ianaiftype-mib">IANA interface type</a>
for the internet connected network adapter.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.ScreenResolution">
<summary>
Gets or sets the current application screen resolution.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Language">
<summary>
Gets or sets the current display language of the operating system.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.RoleName">
<summary>
Gets or sets the role name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.RoleInstance">
<summary>
Gets or sets the role instance.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.Ip">
<summary>
Gets or sets the device IP address.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.DeviceContextData.MachineName">
<summary>
Gets or sets the device VM name.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.InternalContextData">
<summary>
Internal context type shared between SDK and DP.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.LocationContextData">
<summary>
Encapsulates telemetry location information.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.LocationContextData.Ip">
<summary>
Gets or sets the location IP.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.OperationContextData">
<summary>
Encapsulates information about a user session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.OperationContextData.Id">
<summary>
Gets or sets the application-defined operation ID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.OperationContextData.Name">
<summary>
Gets or sets the application-defined operation NAME.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.PerformanceCounterData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.SessionContextData">
<summary>
Encapsulates information about a user session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.SessionContextData.Id">
<summary>
Gets or sets the application-defined session ID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.SessionContextData.IsFirst">
<summary>
Gets or sets the IsFirst Session for the user.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.SessionContextData.IsNewSession">
<summary>
Gets or sets the IsNewSession Session.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.SessionStateData">
<summary>
Partial class to add the EventData attribute and any additional customizations to the generated type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.Tags">
<summary>
Base class for tags backed context.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData">
<summary>
Encapsulates information about a user using an application.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData.Id">
<summary>
Gets or sets the ID of user accessing the application.
</summary>
<remarks>
Unique user ID is automatically generated in default Application Insights configuration.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData.AccountId">
<summary>
Gets or sets the ID of an application-defined account associated with the user.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData.UserAgent">
<summary>
Gets or sets the UserAgent of an application-defined account associated with the user.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData.StoreRegion">
<summary>
Gets or sets the StoreRegion of an application-defined account associated with the user.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData.AcquisitionDate">
<summary>
Gets or sets the date when the user accessed the application for the first time.
</summary>
<remarks>
Acquisition date is automatically supplied in default Application Insights configuration.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData.SetDefaults(Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.UserContextData)">
<summary>
Sets values on the current context based on the default context passed in.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.FixedSizeQueue`1">
<summary>
A light fixed size queue. If Enqueue is called and queue's limit has reached the last item will be removed.
This data structure is thread safe.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.InternalContext">
<summary>
Encapsulates Internal information.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.InternalContext.SdkVersion">
<summary>
Gets or sets application insights SDK version.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.InternalContext.AgentVersion">
<summary>
Gets or sets application insights agent version.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IPlatform">
<summary>
Encapsulates platform-specific functionality required by the API.
</summary>
<remarks>
This type is public to enable mocking on Windows Phone.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IPlatform.GetApplicationSettings">
<summary>
Returns a dictionary that can be used to access per-user/per-application settings shared by all application instances.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IPlatform.ReadConfigurationXml">
<summary>
Returns contents of the ApplicationInsights.config file in the application directory.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IPlatform.GetExceptionDetails(System.Exception,Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails)">
<summary>
Returns the platform specific <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.External.ExceptionDetails" /> object for the given Exception.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IRandomNumberBatchGenerator">
<summary>
Interface for random number generator capable of producing
a batch of unsigned 64 bit random numbers.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.JsonWriter.WritePropertyName(System.String)">
<summary>
Writes the specified property name enclosed in double quotation marks followed by a colon.
</summary>
<remarks>
When this method is called multiple times, the second call after <see cref="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.JsonWriter.WriteStartObject" />
and all subsequent calls will write a coma before the name.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.LocationContext">
<summary>
Encapsulates telemetry location information.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.LocationContext.Ip">
<summary>
Gets or sets the location IP.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.OperationContext">
<summary>
Encapsulates information about a user session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.OperationContext.Id">
<summary>
Gets or sets the application-defined operation ID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.OperationContext.Name">
<summary>
Gets or sets the application-defined operation NAME.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.OperationContext.SyntheticSource">
<summary>
Gets or sets the application-defined operation SyntheticSource.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Platform.PlatformApplicationLifecycle">
<summary>
Common logic of <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IApplicationLifecycle" /> provider shared by all platforms.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Platform.PlatformImplementation">
<summary>
The .NET 4.0 and 4.5 implementation of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IPlatform" /> interface.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Platform.PlatformImplementation.ReadConfigurationXml">
<summary>
Returns contents of the ApplicationInsights.config file in the application directory.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Platform.PlatformSingleton">
<summary>
Provides access to the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Platform.PlatformSingleton.Current" /> platform.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Platform.PlatformSingleton.Current">
<summary>
Gets or sets the current <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IPlatform" /> implementation.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Property">
<summary>
A helper class for implementing properties of telemetry and context classes.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.SessionContext">
<summary>
Encapsulates information about a user session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.SessionContext.Id">
<summary>
Gets or sets the application-defined session ID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.SessionContext.IsFirst">
<summary>
Gets or sets the IsFirst Session for the user.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory" /> class.
</summary>
<remarks>
This constructor is protected because <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory" /> is only meant to be instantiated
by the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.Instance" /> property or by tests.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.Instance">
<summary>
Gets or sets the default <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory" /> instance used by <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration" />.
</summary>
<remarks>
This property is a test isolation "pinch point" that allows us to test <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration" /> without using reflection.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryContextExtensions">
<summary>
Extension methods for TelemetryContext.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryContextExtensions.GetInternalContext(Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext)">
<summary>
Returns TelemetryContext's Internal context.
</summary>
<param name="context">Telemetry context to get Internal context for.</param>
<returns>Internal context for TelemetryContext.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TelemetryHelper.NormalizeInstrumentationKey(System.String)">
<summary>
Normalize instrumentation key by removing dashes ('-') and making string in the lowercase.
In case no InstrumentationKey is available just return empty string.
In case when InstrumentationKey is available return normalized key + dot ('.')
as a separator between instrumentation key part and telemetry name part.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.Extensions">
<summary>
Provides a set of extension methods for tracing.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.Extensions.ToInvariantString(System.Exception)">
<summary>
Returns a culture-independent string representation of the given <paramref name="exception" /> object,
appropriate for diagnostics tracing.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock">
<summary>
Thread level resource section lock.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.syncObject">
<summary>
Thread level lock object.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock" /> class.
Marks section locked.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.IsResourceLocked">
<summary>
Gets a value indicating whether lock is set on the section.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.ThreadResourceLock.Dispose">
<summary>
Release lock.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.WindowsCoreEventSource.Keywords">
<summary>
Keywords for the PlatformEventSource.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.WindowsCoreEventSource.Keywords.UserActionable">
<summary>
Key word for user actionable events.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.WindowsCoreEventSource.Keywords.Diagnostics">
<summary>
Keyword for errors that trace at Verbose level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.WindowsCoreEventSource.Keywords.VerboseFailure">
<summary>
Keyword for errors that trace at Verbose level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.Tracing.WindowsCoreEventSource.Keywords.ErrorFailure">
<summary>
Keyword for errors that trace at Error level.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.TypeExtensions">
<summary>
Defines extension methods that allow coding against <see cref="T:System.Type" /> without conditional compilation on versions of .NET framework.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.UserContext">
<summary>
Encapsulates information about a user using an application.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.UserContext.Id">
<summary>
Gets or sets the ID of user accessing the application.
</summary>
<remarks>
Unique user ID is automatically generated in default Application Insights configuration.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.UserContext.AccountId">
<summary>
Gets or sets the ID of an application-defined account associated with the user.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.UserContext.UserAgent">
<summary>
Gets or sets the UserAgent of an application-defined account associated with the user.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.UserContext.AcquisitionDate">
<summary>
Gets or sets the date when the user accessed the application for the first time.
</summary>
<remarks>
Acquisition date is automatically supplied in default Application Insights configuration.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.random">
<summary>
Generator singleton.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.index">
<summary>
Index of the last used random number within pre-generated array.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.segmentCount">
<summary>
Count of segments of random numbers.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.segmentSize">
<summary>
Number of random numbers per segment.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.bitsToStoreRandomIndexWithinSegment">
<summary>
Number of bits used to store index of the random number within segment.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.segmentIndexMask">
<summary>
Bit mask to get segment index bits.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomIndexWithinSegmentMask">
<summary>
Bit mask to get index of the random number within segment.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomArrayIndexMask">
<summary>
Bit mask to get index of the random number in the pre-generated array.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomGemerators">
<summary>
Array of random number batch generators (one per each segment).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.randomNumbers">
<summary>
Array of pre-generated random numbers.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.Initialize">
<summary>
Initializes generator with a set of random numbers.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.Initialize(System.Func{System.UInt64,Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.IRandomNumberBatchGenerator},System.Int32,System.Int32)">
<summary>
Initializes generator with a set of random numbers.
</summary>
<param name="randomGeneratorFactory">Factory used to create random number batch generators.</param>
<param name="segmentIndexBits">Number of significant bits in segment index, i.e. value of 3 means 8 segments of random numbers - 0..7.</param>
<param name="segmentBits">Number of significant bits in random number index within segment, i.e. value of 10 means 1024 random numbers per segment.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.Next">
<summary>
Weakly thread safe next (random) operation id generator
where 'weakly' indicates that it is unlikely we'll get into
collision state.
</summary>
<returns>Next operation id.</returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.WeakConcurrentRandom.RegenerateSegment(System.Int32)">
<summary>
Generates random number batch for segment which just exhausted
according to value of the new index.
</summary>
<param name="newIndex">Index in random number array of the random number we're about to return.</param>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator">
<summary>
Generates batches of random number using Xorshift algorithm
Note: the base code is from http://www.codeproject.com/Articles/9187/A-fast-equivalent-for-System-Random.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator.#ctor(System.UInt64)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator" /> class.
</summary>
<param name="seed">Random generator seed value.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.Implementation.XorshiftRandomBatchGenerator.NextBatch(System.UInt64[],System.Int32,System.Int32)">
<summary>
Generates a batch of random numbers.
</summary>
<param name="buffer">Buffer to put numbers in.</param>
<param name="index">Start index in the buffer.</param>
<param name="count">Count of random numbers to generate.</param>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ISupportConfiguration">
<summary>
Represents an object that supports initialization from <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ISupportConfiguration.Initialize(Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration)">
<summary>
Initialize method is called after all configuration properties have been loaded from the configuration.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ITelemetryInitializer">
<summary>
Represents an object that initializes <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> objects.
</summary>
<remarks>
The <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" /> instances use <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ITelemetryInitializer" /> objects to
automatically initialize properties of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> objects.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ITelemetryInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Initializes properties of the specified <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> object.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.SdkVersionPropertyContextInitializer">
<summary>
Initializes SDK Properties: SDK Version and SDKMode.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.SdkVersionPropertyContextInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext)">
<summary>
Adds a telemetry property for the version of SDK.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.SequencePropertyInitializer">
<summary>
An <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ITelemetryInitializer" /> that that populates <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Sequence" /> property for
the Microsoft internal telemetry sent to the Vortex endpoint.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.SequencePropertyInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Populates <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Sequence" /> with unique ID and sequential number.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration">
<summary>
Encapsulates the global telemetry configuration typically loaded from the ApplicationInsights.config file.
</summary>
<remarks>
All <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" /> objects are initialized using the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.Active" />
telemetry configuration provided by this class.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.Active">
<summary>
Gets the active <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration" /> instance loaded from the ApplicationInsights.config file.
If the configuration file does not exist, the active configuration instance is initialized with minimum defaults
needed to send telemetry to Application Insights.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.InstrumentationKey">
<summary>
Gets or sets the default instrumentation key for the application.
</summary>
<exception cref="T:System.ArgumentNullException">The new value is null.</exception>
<remarks>
This instrumentation key value is used by default by all <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" /> instances
created in the application. This value can be overwritten by setting the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.InstrumentationKey" />
property of the <see cref="P:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.Context" />.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.DisableTelemetry">
<summary>
Gets or sets a value indicating whether sending of telemetry to Application Insights is disabled.
</summary>
<remarks>
This disable tracking setting value is used by default by all <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" /> instances
created in the application.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.ContextInitializers">
<summary>
Gets the list of <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.IContextInitializer" /> objects that supply additional information about application.
</summary>
<remarks>
Context initializers extend Application Insights telemetry collection by supplying additional information
about application environment, such as <see cref="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.User" /> or <see cref="P:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext.Device" />
information that remains constant during application lifetime. A <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" /> invokes context
initializers to obtain initial property values for <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.TelemetryContext" /> object during its construction.
The default list of context initializers is provided by the Application Insights NuGet packages and loaded from
the ApplicationInsights.config file located in the application directory.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryInitializers">
<summary>
Gets the list of <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ITelemetryInitializer" /> objects that supply additional information about telemetry.
</summary>
<remarks>
Telemetry initializers extend Application Insights telemetry collection by supplying additional information
about individual <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> items, such as <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Timestamp" />. A <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" />
invokes telemetry initializers each time <see cref="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.Track(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)" /> method is called.
The default list of telemetry initializers is provided by the Application Insights NuGet packages and loaded from
the ApplicationInsights.config file located in the application directory.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryModules">
<summary>
Gets the list of modules that automatically generate application telemetry.
</summary>
<remarks>
Telemetry modules automatically send telemetry describing the application to Application Insights. For example, a telemetry
module can handle application exception events and automatically send <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry" /> you can see on the
Application Insights portal.
The default list of telemetry modules is provided by the Application Insights NuGet packages and loaded from
the ApplicationInsights.config file located in the application directory.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.TelemetryChannel">
<summary>
Gets or sets the telemetry channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.CreateDefault">
<summary>
Creates a new <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration" /> instance loaded from the ApplicationInsights.config file.
If the configuration file does not exist, the new configuration instance is initialized with minimum defaults
needed to send telemetry to Application Insights.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration.Dispose">
<summary>
Releases resources used by the current instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration" /> class.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TimestampPropertyInitializer">
<summary>
An <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Extensibility.ITelemetryInitializer" /> that sets <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Timestamp" /> to <see cref="P:System.DateTimeOffset.Now" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Extensibility.TimestampPropertyInitializer.Initialize(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
Sets <see cref="P:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry.Timestamp" /> to <see cref="P:System.DateTimeOffset.Now" />.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient">
<summary>
Send events, metrics and other telemetry to the Application Insights service.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" /> class. Send telemetry with the active configuration, usually loaded from ApplicationInsights.config.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.#ctor(Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" /> class. Send telemetry with the specified <paramref name="configuration" />.
</summary>
<exception cref="T:System.ArgumentNullException">The <paramref name="configuration" /> is null.</exception>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.Context">
<summary>
Gets the current context that will be used to augment telemetry you send.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.InstrumentationKey">
<summary>
Gets or sets the default instrumentation key for all <see cref="T:Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry" /> objects logged in this <see cref="T:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient" />.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.Channel">
<summary>
Gets or sets the channel used by the client helper. Note that this doesn't need to be public as a customer can create a new client
with a new channel via telemetry configuration.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.IsEnabled">
<summary>
Check to determine if the tracking is enabled.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackEvent(System.String,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.Double})">
<summary>
Send an <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry" /> for display in Diagnostic Search and aggregation in Metrics Explorer.
</summary>
<param name="eventName">A name for the event.</param>
<param name="properties">Named string values you can use to search and classify events.</param>
<param name="metrics">Measurements associated with this event.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackEvent(Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry)">
<summary>
Send an <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry" /> for display in Diagnostic Search and aggregation in Metrics Explorer.
</summary>
<param name="telemetry">An event log item.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackTrace(System.String)">
<summary>
Send a trace message for display in Diagnostic Search.
</summary>
<param name="message">Message to display.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackTrace(System.String,Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel)">
<summary>
Send a trace message for display in Diagnostic Search.
</summary>
<param name="message">Message to display.</param>
<param name="severityLevel">Trace severity level.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackTrace(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
<summary>
Send a trace message for display in Diagnostic Search.
</summary>
<param name="message">Message to display.</param>
<param name="properties">Named string values you can use to search and classify events.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackTrace(System.String,Microsoft.VisualStudio.ApplicationInsights.DataContracts.SeverityLevel,System.Collections.Generic.IDictionary{System.String,System.String})">
<summary>
Send a trace message for display in Diagnostic Search.
</summary>
<param name="message">Message to display.</param>
<param name="severityLevel">Trace severity level.</param>
<param name="properties">Named string values you can use to search and classify events.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackTrace(Microsoft.VisualStudio.ApplicationInsights.DataContracts.TraceTelemetry)">
<summary>
Send a trace message for display in Diagnostic Search.
</summary>
<param name="telemetry">Message with optional properties.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackMetric(System.String,System.Double,System.Collections.Generic.IDictionary{System.String,System.String})">
<summary>
Send a <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry" /> for aggregation in Metric Explorer.
</summary>
<param name="name">Metric name.</param>
<param name="value">Metric value.</param>
<param name="properties">Named string values you can use to classify and filter metrics.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackMetric(Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry)">
<summary>
Send a <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.MetricTelemetry" /> for aggregation in Metric Explorer.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackException(System.Exception,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.Double})">
<summary>
Send an <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry" /> for display in Diagnostic Search.
</summary>
<param name="exception">The exception to log.</param>
<param name="properties">Named string values you can use to classify and search for this exception.</param>
<param name="metrics">Additional values associated with this exception.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackException(Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry)">
<summary>
Send an <see cref="T:Microsoft.VisualStudio.ApplicationInsights.DataContracts.ExceptionTelemetry" /> for display in Diagnostic Search.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.Track(Microsoft.VisualStudio.ApplicationInsights.Channel.ITelemetry)">
<summary>
This method is an internal part of Application Insights infrastructure. Do not call.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackPageView(System.String)">
<summary>
Send information about the page viewed in the application.
</summary>
<param name="name">Name of the page.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackPageView(Microsoft.VisualStudio.ApplicationInsights.DataContracts.PageViewTelemetry)">
<summary>
Send information about the page viewed in the application.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackRequest(System.String,System.DateTimeOffset,System.TimeSpan,System.String,System.Boolean)">
<summary>
Send information about a request handled by the application.
</summary>
<param name="name">The request name.</param>
<param name="timestamp">The time when the page was requested.</param>
<param name="duration">The time taken by the application to handle the request.</param>
<param name="responseCode">The response status code.</param>
<param name="success">True if the request was handled successfully by the application.</param>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.TrackRequest(Microsoft.VisualStudio.ApplicationInsights.DataContracts.RequestTelemetry)">
<summary>
Send information about a request handled by the application.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.Flush">
<summary>
Flushes channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.TelemetryClient.FlushAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Flushes channel and wait until transmit is fully completed. Wait can be cancelled by using CancellationToken.
</summary>
<param name="token">Cancellation token</param>
<returns>Waitable and cancellable task</returns>
</member>
<member name="T:Microsoft.VisualStudio.ApplicationInsights.Utils">
<summary>
Various utilities.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Utils.PopulateRequiredStringValue(System.String,System.String,System.String)">
<summary>
Validates the string and if null or empty populates it with '$parameterName is a required field for $telemetryType' value.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Utils.ValidateDuration(System.String)">
<summary>
Returns default Timespan value if not a valid Timespan.
</summary>
<returns></returns>
</member>
<member name="F:Microsoft.VisualStudio.ApplicationInsights.Utils.RelativeFolderPath">
<summary>
The relative path to the cache for our application data.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.ApplicationInsights.Utils.ReadSerializedContext``1(System.String)">
<summary>
Reads the serialized context from persistent storage, or will create a new context if none exits.
</summary>
<param name="fileName">The file to read from storage.</param>
<returns>The fallback context we will be using.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DisabledTelemetryChannelValidator.IsValid(Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel)">
<summary>
Check whether channel is valid to be added to active channel list
</summary>
<param name="channelToValidate"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.RegistryChannelValidator.IsValid(Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel)">
<summary>
Check whether channel is valid to be added to active channel list
</summary>
<param name="channelToValidate"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Exceptions.FatalCollectorException">
<summary>
An exception which indicates the collector cannot safely proceed further.
Typically, the correct response to such an issue is to stop the collector.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Exceptions.TelemetryStorageException">
<summary>
An exception which indicates telemetry storage has encountered a fatal error.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Exporters.IExporter">
<summary>
A component responsible for exporting events to a desired endpoint, handling retries, etc.
See OpenTelemetry documentation: https://opentelemetry.io/docs/collector/configuration/#exporters.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Exporters.IExporter.ExportEvents(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent})">
<summary>
Sends the specified events to the configured endpoint.
</summary>
<param name="events">The events to send.</param>
<returns>True if all events exported successfully. Else, returns false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Exporters.TelemetryExporter">
<summary>
Takes the telemetry passed to it and sends it to the configured endpoint.
Much of the code was taken from the older Sender class.
Changes here should be made there as well.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Exporters.TelemetryExporter.ExportEvents(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent})">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Exporters.TelemetryExporter.SendAllAsync(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent},System.Threading.CancellationToken)">
<summary>
Sends all events to the endpoint. Each event is deleted when sent successfully.
Regardless of outcome, each event is disposed.
</summary>
<param name="transmissions">The set of events to send.</param>
<param name="token">The token used to determine if the run should be cancelled.</param>
<returns>True if all events sent successfully. Else, returns false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Exporters.TelemetryExporter.SendAsync(Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent,System.Threading.CancellationToken)">
<summary>
Sends a transmission asynchronously and handle errors.
</summary>
<param name="transmission">The transmission to send.</param>
<param name="token">Cancellation token.</param>
<returns>true if the send is retriable. Otherwise, false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Exporters.TelemetryExporter.GetStatusCode(System.Net.WebException)">
<summary>
Return the status code from the web exception or null if no such code exists.
</summary>
<returns>Returns the status code of the web exception (or null, if there is no response).</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Exporters.TelemetryExporter.IsRetriable(System.Nullable{System.Int32},System.Net.WebExceptionStatus)">
<summary>
Returns true if <paramref name="httpStatusCode" /> or <paramref name="webExceptionStatus" /> are retriable.
</summary>
<returns>Returns true if there is an error worth retrying later. Else, returns false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent">
<summary>
Represents a telemetry event which has been emitted by a component.
These transmitted events should carry enough info to delete and send to their intended destination.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent.ApiKey">
<summary>
Gets the API key to use when sending the event to its endpoint.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent.TelemetryLevel">
<summary>
Gets the minimum telemetry level necessary to report this event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent.Delete">
<summary>
Deletes the file or other artifacts associated with the event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent.SendAsync(System.Threading.CancellationToken)">
<summary>
Sends the event to the configured endpoint.
</summary>
<param name="token">The token indicating cancellation status.</param>
<returns>A task indicating completion of the send.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.ITelemetryPipeline">
<summary>
Represents a pipelines, which receives, processes, and exports telemetry.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.ITelemetryPipeline.Name">
<summary>
Gets the name of the pipeline (for debugging or telemetry purposes).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.ITelemetryPipeline.ProcessTelemetry">
<summary>
Runs one iteration of the pipeline to receive, process, and export telemetry.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.ITelemetryPipeline.AddReceiver(Microsoft.VisualStudio.Telemetry.Collector.Receivers.IReceiver)">
<summary>
Adds a receiver to the pipeline.
</summary>
<param name="receiver">The receiver to add.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.ITelemetryPipeline.AddProcessor(Microsoft.VisualStudio.Telemetry.Collector.Processors.IProcessor)">
<summary>
Adds a processor to the pipeline.
</summary>
<param name="processor">The processor to add.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.ITelemetryPipeline.AddExporter(Microsoft.VisualStudio.Telemetry.Collector.Exporters.IExporter)">
<summary>
Adds an exporter to the pipeline.
</summary>
<param name="exporter">The exporter to add.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.IUpdateTelemetryLevel">
<summary>
An interface indicating that this component can respond to telemetry level changes.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.IUpdateTelemetryLevel.UpdateTelemetryLevel(Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel)">
<summary>
Make any internal changes to the component necessary to respond to the new telemetry level.
</summary>
<param name="newLevel">The new telemetry level.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Processors.EndpointApiKeyFilter">
<summary>
Filters events down to the expected API key.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Processors.EndpointApiKeyFilter.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Collector.Processors.EndpointApiKeyFilter" /> class.
</summary>
<param name="endpointApiKey">The API key to filter down onto.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Processors.EndpointApiKeyFilter.ProcessEvents(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent})">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Processors.IProcessor">
<summary>
A component which processes telemetry after it is received, prior to export.
See OpenTelemetry documentation: https://opentelemetry.io/docs/collector/configuration/#processors
These operations can include filtering, sampling, aggregating, or modifying telemetry.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Processors.IProcessor.ProcessEvents(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent})">
<summary>
Process the events as appropriate.
</summary>
<param name="events">The events to process.</param>
<returns>The set of valid events which should be passed to the next processor(s).</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Processors.VsCodeTelemetryLevelFilter">
<summary>
Filters all telemetry to the configured telemetry level for the session.
Any telemetry which does not align with the configured level is dropped and then deleted.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Processors.VsCodeTelemetryLevelFilter.#ctor(Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Collector.Processors.VsCodeTelemetryLevelFilter" /> class.
</summary>
<param name="configuredTelemetryLevel">The telemetry level configured for the application.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Processors.VsCodeTelemetryLevelFilter.ProcessEvents(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Collector.IEmittedTelemetryEvent})">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Processors.VsCodeTelemetryLevelFilter.UpdateTelemetryLevel(Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.Receivers.IReceiver">
<summary>
A component responsible for receiving (through pull or push mechanisms) all telemetry to be processed.
See OpenTelemetry documentation: https://opentelemetry.io/docs/collector/configuration/#receivers.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Receivers.IReceiver.GetEvents">
<summary>
Retrieves the events to process and export.
</summary>
<returns>The set of events to process and export.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Receivers.IReceiver.PurgeTelemetryData">
<summary>
Deletes all incoming telemetry data.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.Receivers.PersistentStorageReceiver.#ctor(Microsoft.VisualStudio.ApplicationInsights.Channel.PersistenceVersion,System.String,System.String)">
<summary>
Creates a receiver to pull events from the TRN Cache for VS Code.
</summary>
<param name="version">The storage version used for the TRN cache.</param>
<param name="iKey">The instrumentation key used for the product.</param>
<param name="globalStorageUri">The globalStorageUri passed by VS Code (if it exists).</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector">
<summary>
The Collector for VS Telemetry, modeled after the OpenTelemetry Collector.
See Documentation: https://opentelemetry.io/docs/collector/.
This Collector should be configured, instantiated, and run as a single instance per application.
Different applications with different policies and different storage can run in parallel
as long as they don't attempt to acquire the same mutex.
Much of this code is cleaned up and relocated from the older PersistenceTransmitter.
Changes here should also be made there.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.CollectorStatus">
<summary>
The Collector's current status.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.CollectorStatus.NotStarted">
<summary>
The Collector has never been started or stopped and thus never run.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.CollectorStatus.Starting">
<summary>
The Collector is starting but not yet running.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.CollectorStatus.Running">
<summary>
The Collector is currently running.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.CollectorStatus.Stopped">
<summary>
The Collector has stopped running.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.SendingInterval">
<summary>
Gets or sets the interval between each successful sending.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.locker">
<summary>
A locker that will be used as a name mutex to synchronize transmitters from different channels and different processes.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.delayHandler">
<summary>
A wait handle that flags the collector when to start sending again. The type is protected for unit test.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.stoppedHandler">
<summary>
A wait handle that is being set when Collector is no longer sending.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.eventToKeepMutexThreadAlive">
<summary>
Mutex is released once the thread that acquired it is ended. This event keeps the long running thread that acquire the mutex alive until dispose is called.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.sendingCancellationTokenSource">
<summary>
Cancels the sending.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.drainingTimeout">
<summary>
The amount of time to wait, in the stop method, until the last transmission is sent.
If time expires, the stop method will return even if the transmission hasn't been sent.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.disposeCount">
<summary>
The number of times this object was disposed.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.Status">
<summary>
Gets or Sets the current running status of the collector.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.#ctor(System.TimeSpan,System.String,System.Nullable{System.TimeSpan})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector" /> class.
</summary>
<param name="processingInterval">The time which must transpire between each iteration of running the configured pipelines.</param>
<param name="lockingFolder">The folder to lock on when acquiring a cross-process mutex.</param>
<param name="drainingTimeout">The time to wait after stopping/disposing until the last transmission is sent.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.AddPipeline(Microsoft.VisualStudio.Telemetry.Collector.ITelemetryPipeline)">
<summary>
Adds the configured pipeline to the collector.
</summary>
<param name="pipeline">The pipeline to add.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.UpdateTelemetryLevel(Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.Start">
<summary>
Starts the Collector on a background thread.
All configured pipelines will run once per configured interval while active.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.StopAsync">
<summary>
Stops the Collector.
</summary>
<returns>A <see cref="T:System.Threading.Tasks.Task" /> representing the asynchronous operation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.AcquireMutex(System.Action)">
<summary>
Make sure that <paramref name="action" /> happens only once even if it is executed on different processes.
On every given time only one channel will acquire the mutex, even if the channel is on a different process.
This method is using a named mutex to achieve that. Once the mutex is acquired <paramref name="action" /> will be executed.
</summary>
<param name="action">The action to perform once the mutex is acquired.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryCollector.Dispose">
<summary>
Disposes the object.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline">
<summary>
A Telemetry Pipeline, responsible for receiving, processing, and exporting Telemetry library events.
Modeled after the OpenTelemetry pipeline architecture.
See documentation: https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/design.md.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.Name">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.Receivers">
<summary>
Gets or sets the set of receivers to use to populate the set of telemetry to push through the pipeline.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.Processors">
<summary>
Gets or sets the set of processors to run to process, filter, aggregate, or modify telemetry.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.Exporters">
<summary>
Gets or sets the set of exporters to run to send telemetry to the desired endpoint.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.ConfiguredTelemetryLevel">
<summary>
Gets or sets the currently configured telemetry level.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.processingLock">
<summary>
The lock used to ensure processing, purging, and other operations don't compete out-of-phase.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.#ctor(System.String,Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline" /> class.
</summary>
<param name="name">The name of the pipeline.</param>
<param name="telemetryLevel">The initial telemetry level.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.ProcessTelemetry">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.AddReceiver(Microsoft.VisualStudio.Telemetry.Collector.Receivers.IReceiver)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.AddProcessor(Microsoft.VisualStudio.Telemetry.Collector.Processors.IProcessor)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.AddExporter(Microsoft.VisualStudio.Telemetry.Collector.Exporters.IExporter)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.UpdateTelemetryLevel(Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.TelemetryPipeline.PurgeTelemetryData">
<summary>
Deletes all telemetry from all receivers.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Collector.VSCodeTelemetryCollector">
<summary>
The telemetry collector used in VS Code instead of the legacy Senders.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.VSCodeTelemetryCollector.Start(System.String,System.String)">
<summary>
Initializes and starts the collector using the specific telemetry level and storage.
</summary>
<param name="rawTelemetryLevel">VS Code's configured telemetry level (ex: 'all', 'error', etc.)</param>
<param name="globalStorageUri">The GlobalStorageUri passed from VS Code.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.VSCodeTelemetryCollector.UpdateTelemetryLevel(System.String)">
<summary>
Updates the collector to use the specified telemetry level.
</summary>
<param name="newLevel">The new telemetry level.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.VSCodeTelemetryCollector.Dispose(System.Boolean)">
<summary>
Disposes of the collector and its associated resources.
</summary>
<param name="disposing">True if currently disposing. Else, false.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Collector.VSCodeTelemetryCollector.Dispose">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.CommonProperty.FileBasedKeyValuesLoader">
<summary>
Parses a common properties bag json file into an IEnumerable of Key Value Pairs.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.CommonProperty.FileBasedKeyValuesLoader.GetData(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)">
<summary>
Loads data from the json file indicated in the <paramref name="filePath" />. If file does not exist, will return
an empty dictionary. Supported types are string, bool, int, double. Will default to string for
unsupported types.
</summary>
<remarks>
ReparsePointAware code does not properly support unexpanded file paths such as Windows 8.3 format.
As this code uses this library, <paramref name="filePath" /> must be fully expanded.
</remarks>
<param name="session">TelemetrySession used to post faults in case of error.</param>
<param name="filePath">path to json file with key/value pairs.</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.CommonProperty.IExternalKeyValuesLoader.GetData(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)">
<summary>
Loads configuration key/value pairs from an external process.
</summary>
<returns>An IDictionary</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.AssetEvent">
<summary>
A class that stores information for asset event.
Asset is the target of user task or operation, e.g., Solution, Project, File, Extension, License, Designer.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetEvent.#ctor(System.String,System.String,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" /> class.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<param name="assetEventVersion">
Used for customized properties versioning.
E.g., project asset posts event with name "vs/platform/project".
If the event is updated, uses this parameter to increment the version.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetEvent.#ctor(System.String,System.String,System.Int32,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" /> class.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<param name="assetEventVersion">
Used for customized properties versioning.
E.g., project asset posts event with name "vs/platform/project".
If the event is updated, uses this parameter to increment the version.
</param>
<param name="correlation">
Correlation value for this event.
</param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.AssetEvent.AssetId">
<summary>
Gets asset id from this asset event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.AssetEvent.AssetEventVersion">
<summary>
Gets the version of this asset event.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.AssetService">
<summary>
A class to provide help methods for both asset consumer and providers.
Consumers can use this class to get correlation via method GetCorrelation.
Providers can register existing correlation in this service via method RegisterCorrelation,
or(and) register themselves via method RegisterProvider to send asset events and return correlation per consumers' request.
</summary>
<remarks>
1. All methods in this service converts Guid value to D-format string (https://msdn.microsoft.com/en-us/library/97af8hh4(v=vs.110).aspx)
2. This class is thread-safe.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.AssetService.Instance">
<summary>
Gets singleton instance of <see cref="T:Microsoft.VisualStudio.Telemetry.AssetService" />
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.RegisterCorrelation(System.String,System.Guid,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation)">
<summary>
Register correlation from a given asset id with specified asset type.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<param name="correlation">correlation of the asset.</param>
<remarks>
Used by Asset Provider.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.RegisterCorrelation(System.String,System.String,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation)">
<summary>
Register correlation from a given asset id with specified asset type.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<param name="correlation">correlation of the asset.</param>
<remarks>
Used by Asset Provider.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.UnregisterCorrelation(System.String,System.Guid)">
<summary>
Unregister correlation from this service.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<remarks>
Used by Asset Provider.
Call this method when previous registered asset correlation is stale.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.UnregisterCorrelation(System.String,System.String)">
<summary>
Unregister correlation from this service.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<remarks>
Used by Asset Provider.
Call this method when previous registered asset correlation is stale.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.RegisterProvider(System.String,Microsoft.VisualStudio.Telemetry.IAssetProvider)">
<summary>
Register asset provider which can send asset event and return correlation per consumers' request.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
<param name="assetProvider">Asset provider</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.UnregisterProvider(System.String)">
<summary>
Unregister asset provider.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.GetCorrelation(System.String,System.Guid)">
<summary>
Get correlation for a given asset type and asset id.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
You can get more information from asset provider.
</param>
<returns>Asset correlation</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.AssetService.GetCorrelation(System.String,System.String)">
<summary>
Get correlation for a given asset type and asset id.
</summary>
<param name="assetTypeName">Asset type name. It is defined by asset provider.</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
You can get more information from asset provider.
</param>
<returns>Asset correlation</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.DataModelEventNameHelper">
<summary>
A helper class to validate if event name conforms to data model event name schema, and set properties based on the name.
Here's the data model event name schema,
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelEventNameHelper.SetProductFeatureEntityName(Microsoft.VisualStudio.Telemetry.OperationEvent)">
<summary>
Set product name, feature name and entity name by parsing event name string.
</summary>
<param name="operationEvent">Operation event</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelEventNameHelper.SetProductFeatureEntityName(Microsoft.VisualStudio.Telemetry.FaultEvent)">
<summary>
Set product name, feature name and entity name by parsing event name string.
</summary>
<param name="faultEvent">Fault event</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelEventNameHelper.SetProductFeatureEntityName(Microsoft.VisualStudio.Telemetry.AssetEvent)">
<summary>
Set product name, feature name and entity name by parsing event name string.
</summary>
<param name="assetEvent">Asset event</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelEventNameHelper.SetProductFeatureEntityName(System.String,Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags.PrefixedNotConcurrent{System.Object})">
<summary>
Set product name, feature name and entity name by parsing event name string.
If the event name doesn't comply with data model event name schema, an exception will be thrown.
Data model event name schema:
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</summary>
<param name="eventName">event name</param>
<param name="reservedProperties">the reserved properties dictionary from event used to set data model properties.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelEventNameHelper.ValidateEventName(System.String)">
<summary>
Validate the event name complies with data model event name schema.
</summary>
<param name="eventName"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.DataModelEventType">
<summary>
Supported Data model event type
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.DataModelEventType.UserTask">
<summary>
User task event
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.DataModelEventType.Trace">
<summary>
Trace event
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.DataModelEventType.Operation">
<summary>
Operation event
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.DataModelEventType.Fault">
<summary>
Fault event
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.DataModelEventType.Asset">
<summary>
Asset event
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.DataModelEventTypeNames">
<summary>
A class that defines string values used in event property EventType
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelEventTypeNames.GetName(Microsoft.VisualStudio.Telemetry.DataModelEventType)">
<summary>
Get event type name from event type enum.
PLEASE DO NOT change the code logic. Enum name is part of contract between client and backend server.
</summary>
<param name="eventType"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.DataModelPropertyNames">
<summary>
A class that defines property names shared by multiple data model entities.
PLEASE DO NOT change the constant strings defined in this class, because they're part of contract between client and backend server.
</summary>
<remarks>
Property name is part of the contract between client API and backend data model process.
Please email vsdmcrew@microsoft.com before changing the property names.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IAssetProvider">
<summary>
An interface implemented by asset provider to offer asset correlate id on-demand.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IAssetProvider.PostAsset(System.String,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation)">
<summary>
Post an asset event for specified asset id with given correlation.
</summary>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<param name="correlation">
The correlation for to-be-posted asset event.
</param>
<returns>
A bool value indicating whether provider posts event successfully.
Return false if input parameters are valid or unexpected error occurs.
</returns>
<remarks>
To create AssetEvent, use constructor <see cref="M:Microsoft.VisualStudio.Telemetry.AssetEvent.#ctor(System.String,System.String,System.Int32,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation)" />
<see cref="T:Microsoft.VisualStudio.Telemetry.AssetService" /> calls this method on background thread so please make it thread-safe.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IAssetServiceThreadScheduler">
<summary>
Class created to schedule actions on either caller thread or background thread.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IAssetServiceThreadScheduler.Schedule(System.Action)">
<summary>
Standalone function. Schedules the action to be run.
</summary>
<param name="action"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.OperationStageType">
<summary>
An enum to define operation stage type. Please don't change the enum name because it is part of client-server contract.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.OperationStageType.Atomic">
<summary>
Represent the full stage of an operation.
Used when consumer doesn't need telemetry data for the operation duration.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.OperationStageType.Start">
<summary>
Represent the start point of a long-running or async operation.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.OperationStageType.End">
<summary>
Represent the end point of a long-running or async operation.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.OperationEvent">
<summary>
A class that stores information for operation data model event.
An operation performs some work in application and comes with result (e.g., Success, Failure).
If the operation is invoked by user directly, please use <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or related methods.
A few examples of operations are, license check, package load, windows layout loading.
For long-time running or async operation, in order to understand what else happened during the time or track if it partially completes because of an error,
use method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)" /> which tracks both start and end points.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.Result">
<summary>
Gets result from this operation.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.ResultSummary">
<summary>
Gets result summary from this operation.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.StageType">
<summary>
Gets stage type from this operation.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.StartEndPairId">
<summary>
Gets pair id for start-end operation events. It is the same value as CorrelationId.
return null for atomic operation event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.Duration">
<summary>
Gets duration of the operation if the stage type is End.
Return null for other stage types.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.StartTime">
<summary>
Gets start time (in ticks) of current operation which stage type is End.
Return null for other stage types.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.EndTime">
<summary>
Gets end time (in ticks) of current operation which stage type is End.
Return null for other stage types.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.ProductName">
<summary>
Gets product name
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.FeatureName">
<summary>
Gets feature name
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OperationEvent.EntityName">
<summary>
Gets entity name
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OperationEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> class.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
<example>
This example shows how to create and post <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />.
<code>
OperationEvent operation = new OperationEvent("vs/debugger/loadingAssembly", Result.Success);
TelemetryService.DefaultSession.PostEvent(operation);
</code>
</example>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OperationEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.OperationStageType,Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)">
<summary>
Create an operation event with specified information.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="stageType">operation stage type.</param>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OperationEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.DataModelEventType,Microsoft.VisualStudio.Telemetry.OperationStageType,Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> class.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="eventType">The type of event.</param>
<param name="stageType">The type of operation.</param>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OperationEvent.Correlate(Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation,System.String)">
<summary>
Correlate this event with other event via <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation" /> with description information.
</summary>
<param name="correlation">The property <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" /> of correlated event.</param>
<param name="description">
A description string for this correlation information, such as name, hint, tag, category.
Please don't include comma which is a reserved char.
</param>
<remarks>
This method is not thread-safe.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OperationEvent.SetResultProperties(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)">
<summary>
Set result related properties
</summary>
<param name="result">the result of this operation</param>
<param name="resultSummary">a summary description for the result. Default value is null.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OperationEvent.SetTimeProperties(System.DateTime,System.DateTime,System.Double)">
<summary>
Set time properties for operation event.
</summary>
<param name="startTime"></param>
<param name="endTime"></param>
<param name="durationInMilliseconds"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OperationEvent.SetPostStartEventProperty(System.Boolean)">
<summary>
Set SendStartEvent property for operation event.
</summary>
<param name="postStartEvent">a boolean indicating whether a start event is posted for this end event.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryDataModelProperty">
<summary>
This class represents a data model property.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryDataModelProperty.Value">
<summary>
Gets value set for the property
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryDataModelProperty.#ctor(System.Object)">
<summary>
Creates the data model Property Object.
</summary>
<param name="val"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryDataModelProperty.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation">
<summary>
A struct to define correlation information.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation.Empty">
<summary>
Represents empty <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation" />
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation.EventType">
<summary>
Gets event type of this correlation.
</summary>
<remarks>
The value is used by backend server to improve query performance.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation.Serialize">
<summary>
Serialize current object to string
</summary>
<returns>
A json string to include id and event type properties.
E.g., {"id":"d7149afe-632f-4278-b94e-3915a79ee60f","eventType":"Operation"}
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation.Deserialize(System.String)">
<summary>
Deserialize a json string to <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation" /> object.
</summary>
<param name="jsonString">
A json string to include id and event type properties.
E.g., {"id":"d7149afe-632f-4278-b94e-3915a79ee60f","eventType":"Operation"}
</param>
<returns>
A <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation" /> object.
It would throw <see cref="T:Newtonsoft.Json.JsonReaderException" /> if parameter jsonString is an invalid Json string.
It would throw <see cref="T:Newtonsoft.Json.JsonSerializationException" /> if any of conditions below happen,
1. Miss properties "id" or "eventType"
2. Invalid property value. "id" value should be a guid string, and "eventType" should be enum name from <see cref="T:Microsoft.VisualStudio.Telemetry.DataModelEventType" />.
</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty">
<summary>
This class represents a data model metric property.
The property name will be updated with a suffix ".DataModelMetric" when the event is posted.
A metric is a value or aggregated count collected as a measurement of a particular characteristic of the system.
E.g., usage metrics like file size, project count, upload size; performance metric like duration.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty.#ctor(System.Double)">
<summary>
Creates the Metric Property Object.
</summary>
<param name="val"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryResult">
<summary>
An enum to define the result from user task or operation.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryResult.None">
<summary>
Used for unknown or unavailable result.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryResult.Success">
<summary>
A result without any failure from product or user.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryResult.Failure">
<summary>
A result to indicate the action/operation failed because of product issue (not user faults)
Consider using FaultEvent to provide more details about the failure.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryResult.UserFault">
<summary>
A result to indicate the action/operation failed because of user fault (e.g., invalid input).
Consider using FaultEvent to provide more details.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryResult.UserCancel">
<summary>
A result to indicate the action/operation is cancelled by user.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryResultStrings">
<summary>
A class that defines the strings used for property Result.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryResultStrings.GetString(Microsoft.VisualStudio.Telemetry.TelemetryResult)">
<summary>
Get Telemetry Result string used in backend.
PLEASE DO NOT change the logic. Enum name is part of contract between client and backend server.
</summary>
<param name="result"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty">
<summary>
This class represents a data model setting property.
The property name will be updated with a suffix ".DataModelSetting" when the event is posted.
A setting is something that user can customize the value to change how the app looks/feels/behaves.
E.g., all settings in VS tools options dialog.
Machine-level or environmental properties are NOT settings. They should posted as regular properties.
E.g., CPU count, OS locale.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty.#ctor(System.Object)">
<summary>
Creates the Setting Property Object.
</summary>
<param name="val"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetrySeverity">
<summary>
An enum to define the severity of the telemetry event.
It is used for any data consumer who wants to categorize data based on severity.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySeverity.High">
<summary>
indicates telemetry event with high value or require attention (e.g., fault).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySeverity.Normal">
<summary>
indicates a regular telemetry event.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySeverity.Low">
<summary>
indicates telemetry event with verbose information.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent">
<summary>
A class that stores information for user task data model event.
A user task is an application operation that is INVOKED BY USER directly and comes with result (e.g., Success, Failure).
It is used for user behavior/intent analysis. User is aware of the operation and be able to execute.
e.g. Open project and Show tool windows are user tasks; instead load VS package and Design time build are operations.
For long-time running or async user task, in order to understand what else happened during the time or track if it partially completes because of an error,
use method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)" /> which tracks both start and end points.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.UserTaskEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> class.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
<example>
This example shows how to create and post <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" />.
<code>
UserTask userTask = new UserTask("vs/debugger/stepinto", Result.Success);
TelemetryService.DefaultSession.PostEvent(userTask);
</code>
</example>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.UserTaskEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.OperationStageType,Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> class.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="stageType">The stage of User Task.</param>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.DefaultContextPropertyManager">
<summary>
Provide context properties, in this case for the default context, either from Host Process, Library,
OS, Machine, User, or any other property provider
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DefaultContextPropertyManager.AddPropertyProvider(Microsoft.VisualStudio.Telemetry.IPropertyProvider)">
<summary>
Adds additional property providers. Used for unit tests.
</summary>
<param name="propertyProvider"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DefaultContextPropertyManager.AddDefaultContextProperties(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Adds shared properties to the context.
</summary>
<param name="telemetryContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DefaultContextPropertyManager.PostDefaultContextProperties(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Post default context properties on a background thread
</summary>
<param name="telemetryContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DefaultContextPropertyManager.DisposeManagedResources">
<summary>
Dispose managed resources implementation
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.DiagnosticTelemetry">
<summary>
Diagnostic telemetry class is intended to gather and post internal telemetry,
i.e. under "VS.TelemetryApi" namespace
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DiagnosticTelemetry.LogRegistrySettings(System.String,System.String)">
<summary>
Log registry settings using key/value pair.
settingsName - suffix for the settings property.
</summary>
<param name="settingsName"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DiagnosticTelemetry.PostDiagnosticTelemetryWhenSessionInitialized(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Post diagnostic telemetry. Generates events with properties and send them.
</summary>
<param name="telemetrySession"></param>
<param name="propertyBag"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DiagnosticTelemetry.ShouldHashTelemetryAssemblyPath(System.String@)">
<summary>
Get hashed path to the VSTelemetry dll or if its in Private Assemblies, returns PrivateAssemblies
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ActionPriorityConstants">
<summary>
List of all priorities in order to easy maintain their order
When you add new priority, please follow the ascending order.
Lower number = higher priority.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.ClientSideThrottlingAction.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ClientSideThrottlingAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using eventProcessorContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
Please note that although we are throttling, the reset actually occurs when the following event
is processed. This means if we sent 1k events under a second, and do not do anything for 10 minutes
and then send an event, the Reset will occur then. This was done to simplify code as this feature
is primarily for events under development.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether current action is not explicitely forbid current event</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ComplexObjectSerializerException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.ComplexObjectSerializerException" /> class with a specified error message and a reference to the inner exception that is the cause of this exception.
</summary>
<param name="message">The error message that explains the reason for the exception. </param><param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. </param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.ComplexPropertyAction.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.ComplexPropertyAction.serializerFactory">
<summary>
Use factory here to not load additional modules for serializer before session is Started.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ComplexPropertyAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using eventProcessorContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether current action is not explicitely forbid current event</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelPropertyAction`1.#ctor(System.Int32,System.String,System.String,System.String)">
<summary>
Execute action on event, using eventProcessorContext as a provider of the necessary information.
This action add a suffix to property name which property is type T in the event.
</summary>
<param name="priority"></param>
<param name="suffixName"></param>
<param name="flagName"></param>
<param name="diagnosticName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.DataModelPropertyAction`1.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using eventProcessorContext as a provider of the necessary information.
This action add a suffix DataModelSetting to all Setting property names in the event.
</summary>
<param name="eventProcessorContext"></param>
<returns>
Indicator, whether current action is not explicitely forbid current event.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.EnforceAIRestrictionAction">
<summary>
This action enforce AppInsight restriction on the property.
Action is check property name size/characters.
Also it checks property value size.
In case the property is not pass validation it is removed from the event and
added to the special reserved property.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.EnforceAIRestrictionAction.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EnforceAIRestrictionAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using telemetryManifestContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether current action is not explicitely forbid current event</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EnforceAIRestrictionAction.IsPropertyValueValid(System.String)">
<summary>
Check, whether text representation of the value is follow restriction
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EnforceAIRestrictionAction.IsPropertyNameValid(System.String)">
<summary>
Check, whether property name is follow restriction
</summary>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IComplexObjectSerializer">
<summary>
Interface is used to implement serializer to convert object to the string representation for the complex objects.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IComplexObjectSerializer.Serialize(System.Object)">
<summary>
Try to serialize object into the string
</summary>
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IComplexObjectSerializer.SetTypeConverter(System.Type,System.Func{System.Object,System.String})">
<summary>
Set converter for the specific type.
</summary>
<param name="type"></param>
<param name="converter"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IComplexObjectSerializer.WasConverterUsedForType(System.Type)">
<summary>
Check whether converter for the specifc type was called.
</summary>
<param name="type"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IComplexObjectSerializerFactory">
<summary>
Create instance of the complex object serializer
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPiiPropertyProcessor.TypeOfPiiProperty">
<summary>
Returns type of object we can process.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPiiPropertyProcessor.TypeOfHashedProperty">
<summary>
Returns type of object we can process.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPiiPropertyProcessor.ConvertToRawValue(System.Object)">
<summary>
Convert object to the raw string representation.
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPiiPropertyProcessor.ConvertToHashedValue(System.Object)">
<summary>
Convert object to the hashed string representation.
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPiiPropertyProcessor.CanAddRawValue(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Check whether we can add raw property value.
</summary>
<param name="eventProcessorContext"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPiiPropertyProcessor.BuildRawPropertyName(System.String)">
<summary>
Generates raw property name based on the existing property name.
</summary>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonComplexObjectSerializer.SetTypeConverter(System.Type,System.Func{System.Object,System.String})">
<summary>
Add custom converter to convert object of the certain type to the string.
</summary>
<param name="type"></param>
<param name="converter"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonComplexObjectSerializer.WasConverterUsedForType(System.Type)">
<summary>
Check whether converter for the specifc type was called.
</summary>
<param name="type"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.OptOutAction">
<summary>
OptOut default action.
This action is executed only when session is OptOut.
In this case it checks if event name is in the list of the OptOut friendly event name.
If not IsEventDropped flag is set.
Also it checks every property. If property name is not in the OptOut friendly property name
property is removed from the event and placed to the excluded list.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.OptOutAction.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OptOutAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using telemetryManifestContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
By default OptOut set IsEventDropped to the true, and exclude all properties.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether current action is not explicitely forbid current event</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OptOutAction.AddOptOutFriendlyEventName(System.String)">
<summary>
Add OptOut friendly event name
</summary>
<param name="eventName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.OptOutAction.AddOptOutFriendlyPropertiesList(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Add OptOut friendly properties to the action
</summary>
<param name="propertyNameList"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.PiiAction.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PiiAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using eventProcessorContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether current action is not explicitely forbid current event</returns>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.PIIPropertyProcessor.Encrypter">
<summary>
The HMAC algorithm to use on this thread.
</summary>
<remarks>
There are no documented guarantees that <see cref="T:System.Security.Cryptography.HashAlgorithm" /> is required to be thread-safe.
Ensure thread-safety then by creating one per consuming thread.
</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SuppressEmptyPostPropertyEventAction">
<summary>
Suppress all context/postproperty events, which doesn't contain useful payload.
For example, when properties were removed by other actions it doesn't make sense to post
this event with default reserved and shared context properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SuppressEmptyPostPropertyEventAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Validate coming event
</summary>
<param name="eventProcessorContext"></param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.EventProcessor.CurrentManifest">
<summary>
Gets or sets current manifest used to processing events
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySession,Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Event processor constructor should be provided with session.
This required for start channels.
</summary>
<param name="session"></param>
<param name="eventProcessorContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.ProcessEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Process event, using dynamic telemetry settings.
Called from the background thread.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.ScrubProperties(System.Collections.Generic.IDictionary{System.String,System.Object},Microsoft.VisualStudio.Telemetry.SensitiveDataScrubber.ISensitiveDataScrubber,System.Boolean)">
<summary>
Method goes through the properties dictionary and adds the key value pair of the property in case it finds that the value contains sensitive information.
The property with the offending string is then replaced with a constant such as "REDACTED".
</summary>
<param name="properties"></param>
<param name="scrubber"></param>
<param name="scrubAllPersonalData"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.AddChannel(Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel)">
<summary>
Add session channel
</summary>
<param name="channel"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.AddCustomAction(Microsoft.VisualStudio.Telemetry.IEventProcessorAction)">
<summary>
Add custom action
</summary>
<param name="eventProcessorAction"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
One more way to dispose router asynchronously.
In that case it asks channels to flush everything to the Network asynchronously if channel supported such method.
</summary>
<param name="token">Cancellation token</param>
<returns>Task for wait on</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.PostDiagnosticInformation(Microsoft.VisualStudio.Telemetry.TelemetryManifest)">
<summary>
Post diagnostic information about telemetry manifest rules and actions.
</summary>
<param name="newManifest"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessor.GetMergedCustomAndManifestActionsInOrder(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestAction})">
<summary>
Get predefined custom actions
</summary>
<param name="manifestActions"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.EventProcessorContext">
<summary>
Context is passed to the every single action during execution.
Context contains all neccessary information for the action to execute.
Context also contain event itself. During executing action event could be updated.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.EventProcessorContext.IsEventDropped">
<summary>
Gets or sets a value indicating whether event is dropped
This is analyzed at the very end of the processing
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorContext.InitForNewEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Reset ProcessorContext to be able to process new telemetryEvent
and init all field.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorContext.ExcludePropertyFromEvent(System.String)">
<summary>
Remove property from the property list of the event and move it to the
excluded properties list
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorContext.IncludePropertyToEvent(System.String)">
<summary>
Move property from the excluded property list to the event properties list
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorContext.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
One more way to dispose router asynchronously.
In that case it asks channels to flush everything to the Network asynchronously if channel supported such method.
</summary>
<param name="token">Cancellation token</param>
<returns>Task for wait on</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorContext.DisposeManagedResources">
<summary>
Dispose all channels
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.EventProcessorRouter">
<summary>
Router serves for route processed event to the channels.
It is fullfilled by the routed arguments specified for the channels.
Also it is possible to disable/enable channel for the specified event.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.Reset">
<summary>
Reset all isChannelAvailable array to false
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.TryGetRouteArgument(System.String,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs}@)">
<summary>
Check, whether we have scheduled routing for the specific channel.
</summary>
<param name="channelId"></param>
<param name="routeArguments"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.TryAddRouteArgument(System.String,Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs)">
<summary>
In route action we fill routing argument with the specific value
</summary>
<param name="channelId"></param>
<param name="routeArguments"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.DisableChannel(System.String)">
<summary>
Disable specific channel
</summary>
<param name="channelId"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.IsChannelDisabled(System.String)">
<summary>
Check, whether channel is disabled
</summary>
<param name="channelId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.AddChannel(Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel)">
<summary>
Add session channel
</summary>
<param name="channel"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.RouteEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.String,System.Boolean)">
<summary>
Post cooked event to the available channels. In case if event is dropped (isDropped == true)
we still want to post this event to the DevChannel if any. Dev channel is used for the testing
purposes.
</summary>
<param name="telemetryEvent"></param>
<param name="sessionId"></param>
<param name="isDropped"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
One more way to dispose router asynchronously.
In that case it asks channels to flush everything to the Network asynchronously if channel supported such method.
</summary>
<param name="token">Cancellation token</param>
<returns>Task for wait on</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.DisposeManagedResources">
<summary>
Dispose all channels
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.RemoveAllChannels">
<summary>
Remove all channels
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.OnUpdateChannelList">
<summary>
When channels set is updated we call this method to re-init all arrays
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.UpdateDefaultChannel(System.Boolean)">
<summary>
Update the Default Channel for the processor to the defaultChannel.
Currently only supports aivortex or collector++ as default channel.
</summary>
<param name="useCollector"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.EventProcessorRouter.RouteInformation">
<summary>
Structure for the keeping route information
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IEventProcessor">
<summary>
Event processor interface is used to implement processor of the incoming events
using dynamic telemetry settings.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessor.ProcessEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Process event, using dynamic telemetry settings
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessor.AddCustomAction(Microsoft.VisualStudio.Telemetry.IEventProcessorAction)">
<summary>
Add custom action
</summary>
<param name="eventProcessorAction"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessor.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
One more way to dispose router asynchronously.
In that case it asks channels to flush everything to the Network asynchronously if channel supported such method.
</summary>
<param name="token">Cancellation token</param>
<returns>Task for wait on</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IEventProcessorAction">
<summary>
IEventProcessorAction is used by the EventProcessor for the process events
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IEventProcessorAction.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using telemetryManifestContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether current action is not explicitely forbid current event</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorActionDiagnostics.PostDiagnosticInformation(Microsoft.VisualStudio.Telemetry.TelemetrySession,Microsoft.VisualStudio.Telemetry.TelemetryManifest)">
<summary>
Allows the action to post diagnostic information when the manifest version
changes or action is being disposed.
</summary>
<param name="mainSession"></param>
<param name="newManifest"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorContext.InitForNewEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Reset ProcessorContext to be able to process new TelemetryEvent
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorContext.ExcludePropertyFromEvent(System.String)">
<summary>
Remove property from the property list of the event and move it to the
excluded properties list
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorContext.IncludePropertyToEvent(System.String)">
<summary>
Move property from the excluded property list to the event properties list
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorContext.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
One more way to dispose router asynchronously.
In that case it asks channels to flush everything to the Network asynchronously if channel supported such method.
</summary>
<param name="token">Cancellation token</param>
<returns>Task for wait on</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.Reset">
<summary>
Reset all isChannelAvailable array to false
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.TryGetRouteArgument(System.String,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs}@)">
<summary>
Check, whether we have scheduled routing for the specific channel.
</summary>
<param name="channelId"></param>
<param name="routeArguments"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.TryAddRouteArgument(System.String,Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs)">
<summary>
In route action we fill routing argument with the specific value
</summary>
<param name="channelId"></param>
<param name="routeArgument"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.DisableChannel(System.String)">
<summary>
Disable specific channel
</summary>
<param name="channelId"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.IsChannelDisabled(System.String)">
<summary>
Check, whether channel is disabled
</summary>
<param name="channelId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.AddChannel(Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel)">
<summary>
Add session channel
</summary>
<param name="channel"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.RouteEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.String,System.Boolean)">
<summary>
Post cooked event to the available channels
</summary>
<param name="telemetryEvent"></param>
<param name="sessionId"></param>
<param name="isDropped"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
One more way to dispose router asynchronously.
In that case it asks channels to flush everything to the Network asynchronously if channel supported such method.
</summary>
<param name="token">Cancellation token</param>
<returns>Task for wait on</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEventProcessorRouter.UpdateDefaultChannel(System.Boolean)">
<summary>
Update the Default Channel for the processor to the defaultChannel.
Currently only supports aivortex or collector++ as default channel.
</summary>
<param name="useCollector"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.EventProcessorChannelBuilder">
<summary>
EventProcessorChannelBuilder serves to build a complex objects and takes care about all dependencies.
There is 2 stages of the creating of all objects. 1 stage is to create Builder itself with all necessary
parameters such as persistentPropertyBag. Second stage is to create objects itself when TelemetrySession
object is known.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorChannelBuilder.#ctor(Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag,Microsoft.VisualStudio.Telemetry.ITelemetryScheduler)">
<summary>
Instantiate builder itself with all necessary parameters. It is done from the
TelemetrySessionInitializer object, thus TelemetrySession doesn't care what external
dependencies are needed for creating EventProcessorChannel and EventProcessor objects.
</summary>
<param name="persistentPropertyBag"></param>
<param name="telemetryScheduler"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EventProcessorChannelBuilder.Build(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Build EventProcessorChannel and all its dependencies
</summary>
<param name="hostSession"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IContextPropertyManager">
<summary>
Provide context properties, either from Host Process, Library,
OS, Machine, User, or any other property provider
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IContextPropertyManager.AddPropertyProvider(Microsoft.VisualStudio.Telemetry.IPropertyProvider)">
<summary>
Adds additional property providers. Used for unit tests.
</summary>
<param name="propertyProvider"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IContextPropertyManager.AddDefaultContextProperties(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Adds shared properties to the context.
</summary>
<param name="telemetryContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IContextPropertyManager.PostDefaultContextProperties(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Post default context properties on a background thread
</summary>
<param name="telemetryContext"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IDiagnosticTelemetry">
<summary>
Diagnostic telemetry class is intended to gather and post internal telemetry,
i.e. under "VS.TelemetryApi" namespace
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IDiagnosticTelemetry.LogRegistrySettings(System.String,System.String)">
<summary>
Log registry settings using key/value pair
</summary>
<param name="settingsName"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IDiagnosticTelemetry.PostDiagnosticTelemetryWhenSessionInitialized(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Post diagnostic telemetry. Generates events with properties and send them.
Adds all properties from the persistent property bag to the event and then
clears the persistent property bag.
</summary>
<param name="telemetrySession"></param>
<param name="propertyBag"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.IsForcedUserExternal">
<summary>
Whether flag is set, that user is forced to be external
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.TryGetTestHostName(System.String@)">
<summary>
Try to get test host name for the test purposes
</summary>
<param name="testHostName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.TryGetTestAppId(System.UInt32@)">
<summary>
Try to get test app id for the test purposes
</summary>
<param name="testAppId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.GetChannelSettings(System.String)">
<summary>
Get internal settings for the channel specified by its ID.
There are 3 states could be:
- explicitly enabled
- explicitly disabled
- undefined (no settings available)
</summary>
<param name="channelId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.GetIPGlobalConfigDomainName">
<summary>
Returns the IP Global Config Domain Name
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.IsTelemetryDisabledCompletely">
<summary>
Check whether telemetry is completely disabled
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.IsLocalLoggerEnabled">
<summary>
Check whether local logger is enabled
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.FaultEventWatsonSamplePercent">
<summary>
Returns the sample rate for FaultEvents for Watson pipeline. AI pipeline is always sent (100%)
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.FaultEventMaximumWatsonReportsPerSession">
<summary>
Returns the maximum # of Watson samples per session
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IInternalSettings.FaultEventMinimumSecondsBetweenWatsonReports">
<summary>
Returns the mininum # of seconds between Watson samples.
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IHostInformationProvider.ProcessName">
<summary>
Gets the name of the current host process, for example devenv, in lowercase.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IHostInformationProvider.Is64BitProcess">
<summary>
Gets a value indicating whether the current host process is 64 bits or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IHostInformationProvider.OSBitness">
<summary>
Gets the Bitness of the OS as a string i.e. "64" for 64 bit and "32" for 32 bit.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IMachineInformationProvider.MachineId">
<summary>
Gets the unique ID for the machine (i.e. across users).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IMACInformationProvider.RunProcessIfNecessary(System.Action{System.String})">
<summary>
Runs the external process to get MAC Address (only if necessary).
</summary>
<param name="onComplete">Function to call with the MAC address when the process completes</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IMACInformationProvider.GetMACAddressHash">
<summary>
Gets the hash of the MAC address of the computer.
<returns>Hashed MAC address</returns>
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider">
<summary>
This interface is used to generate the InstallationId and the hardware ids used to
discern whether the installation id should change depending if the hardware ids have changed.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.InstallationId">
<summary>
Gets the current InstallationId.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.InstallationIdChanged">
<summary>
Gets a value indicating whether the current InstallationId changed.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.MachineGuid">
<summary>
Gets the current MachineGuid.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.MachineGuidChanged">
<summary>
Gets a value indicating whether the current MachineGuid is different from the cached value.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.DriveSerialNumber">
<summary>
Gets the current Drive Serial Number.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.DriveSerialNumberChanged">
<summary>
Gets a value indicating whether the current Drive Serial Number is different from cached value.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.Uuid">
<summary>
Gets the current Bios UUID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.UuidChanged">
<summary>
Gets a value indicating whether the current Bios UUID is different from cached value.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.ReportError(System.String,System.Exception,System.String)">
<summary>
Used to report errors during the generation of any of the identifiers.
</summary>
<param name="method">Name of the failing method.</param>
<param name="e">Exception object.</param>
<param name="message">Any additional message.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.ReportError(System.String,System.String)">
<summary>
Used to report errors during the generation of the identifiers.
</summary>
<param name="method">The name of the failing method.</param>
<param name="message">The error message.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.IUniqueIdentifierInformationProvider.GetErrors">
<summary>
Gets the json string representation of the list of erorrs.
</summary>
<returns>String of errors, or null if no errors.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.LinuxUniqueIdentifierInformationProvider.InitializeUUID">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.LinuxUniqueIdentifierInformationProvider.InitializeDriveSerialNumber">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.LinuxUniqueIdentifierInformationProvider.InitializeMachineGuid">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.LinuxUniqueIdentifierInformationProvider.StorageDirectoryBase">
<summary>
Gets the StorageDirectoryBase to use on Linux. Uses XDG_CACHE_HOME if exists, otherwise uses a .cache folder under the User's home profile.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.MacUniqueIdentifierInformationProvider.InitializeUUID">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.MacUniqueIdentifierInformationProvider.InitializeDriveSerialNumber">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.MacUniqueIdentifierInformationProvider.InitializeMachineGuid">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.MacUniqueIdentifierInformationProvider.StorageDirectoryBase">
<summary>
Gets the StorageDirectoryBase folder on macOs. Uses "Library/Application Support" under the UserProfile folder.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase">
<summary>
Contains common implementation of InstallationId and hardwareIds that are operating system
agnostic. InstallationId is cached on disk. HardwareIds currently cached in the registry.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.Uuid">
<summary>
Gets the current Bios UUID.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.MachineGuid">
<summary>
Gets the current Machine Guid from Registry.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.DriveSerialNumber">
<summary>
Gets the current Drive Serial Number.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.InstallationId">
<summary>
Gets the current InstallationId.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.UuidChanged">
<summary>
Gets a value indicating whether the Uuid has changed from what was generated now versus what was cached before.
</summary>
<remarks>This value is not accurate until InstallationId has been confirmed up to date and this is the first id verified to have changed.</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.MachineGuidChanged">
<summary>
Gets a value indicating whether the MachineGuid has changed from what was generated now versus what was cached before.
</summary>
<remarks>This value is not accurate until InstallationId has been confirmed up to date and this is the first id verified to have changed.</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.DriveSerialNumberChanged">
<summary>
Gets a value indicating whether the DriveSerialNumber has changed from what was generated now versus what was cached before.
</summary>
<remarks>This value is not accurate until InstallationId has been confirmed up to date and this is the first id verified to have changed.</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.InstallationIdChanged">
<summary>
Gets a value indicating whether the INstallationId has changed from what was generated now versus what was cached before.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.ErrorList">
<summary>
Gets the list of errors obtained during generation of ids.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase" /> class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.ReportError(System.String,System.Exception,System.String)">
<summary>
Tracks a reported error with an Exception object.
</summary>
<param name="method">The method throwing the error.</param>
<param name="e">The exception object that occured.</param>
<param name="message">Any additional message for the error.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.ReportError(System.String,System.String)">
<summary>
Tracks a reported error.
</summary>
<param name="method">Method where the error occured.</param>
<param name="message">Any additional message to help diagnose the error.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.GetErrors">
<summary>
Returns a serialized string of the list errors if any are reported.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.InitializeLazyMethods">
<summary>
Initializes the Lazy methods.
</summary>
<remarks>Separated into its own method because they need to be reinitialized if one has changed.</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.StorageDirectoryBase">
<summary>
Gets the base folder where these files will be kept.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.InitializeUUID">
<summary>
Initialize the current Bios UUID.
</summary>
<returns>The UUID if it can be obtained, otherwise null.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.InitializeMachineGuid">
<summary>
Initialize the current MachineGuid.
</summary>
<returns>The MachineGuid if it can be obtained, otherwise null.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.InitializeDriveSerialNumber">
<summary>
Initialize the current DriveSerialNumber.
</summary>
<returns>The DriveSerialNumber if it can be obtained, otherwise null.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.PersistCurrentIdentifiers">
<summary>
Saves current hardware Ids to registry. Saves installation id to file.
</summary>
<returns>Installation Id.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.GenerateInstallationIdFilePath">
<summary>
Generates the file path to cache the InstallationId on disk.
</summary>
<returns>FilePath to store the InstallationId.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.CheckCachedIdsAreCurrent">
<summary>
Checks that the cached Ids match the current generated ones.
* If a cached value is not set but a current id is found, it is set in registry.
* If a current value cannot be obtained, the cache value is not checked.
</summary>
<returns>True if a value is changed, false if it has not changed or a change cannot be determined.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.SetRegistryValueInIdentifierPath(System.String,System.String)">
<summary>
Helper method to set registry values in the InstallationId registry path.
</summary>
<param name="name">Name of the value to set.</param>
<param name="regValue">Value to be set.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.GetRegistryValueInIdentifierPath(System.String)">
<summary>
Gets the value for the <paramref name="name" /> specified located in the Identifier registry path.
</summary>
<param name="name">Name of the value to get.</param>
<returns>Value if found, otherwise 'null'.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.DeleteIdentifierRegistryKey">
<summary>
Delete the entire Identifier key from Registry. Used when the InstallationId needs to be rotated so that all hardware ids used to check that the machine didn't change are also regenerated.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.DeleteInstallationIdFile">
<summary>
Deletes the installation id file. Done when the id needs to be rotated.9
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.UniqueIdentifierInformationProviderBase.PersistInstallationId(System.String,System.String)">
<summary>
Writes <paramref name="installationId" /> to file at <paramref name="path" />.
</summary>
<param name="path">Full file path. Should not contain Reparse Points.</param>
<param name="installationId">Installation Id to write.</param>
<exception cref="T:System.InvalidOperationException">Thrown if the directory where the file is going to go cannot be created.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.InitializeUUID">
<summary>
Get the BIOS UUID using WMI.
Limitations: The BIOS UUID is determined by the hardware BIOS. For Virtual Machines, Hyper-V will rotate this automatically when a new VM is created.
</summary>
<returns>BIOS </returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.InitializeDriveSerialNumber">
<summary>
Obtains the drive serial number of the drive where the Windows path is. If that cannot be obtained, falls back to Path.GetTempPath()
Limitations: For virtualized drives, the drive serial number value is not set.
</summary>
<returns>Drive Serial Number if exists. Returns 'null' if unable to obtain the drive serial number.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.InitializeMachineGuid">
<summary>
Attempts to obtain the MachineGuid generated by Windows from HKLM\SOFTWARE\\Microsoft\\Cryptography.
Limitations: For imaging, this only changes if some generalization tool is run (such as sysprep), otherwise the guid remains the same.
</summary>
<returns>The Windows MachineGuid if available in the registry. Returns 'null' if it is unable to be obtained.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.InitializeBiosInformation">
<summary>
Initializes an instance of the BiosInformation.
</summary>
<returns>The BiosInformation struct or default if an exception is thrown.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.GetFinalProgramDataPath">
<summary>
Gets the program data folder and calculates the final path with no reparse points.
</summary>
<returns>Full final path to program data folder.</returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.StorageDirectoryBase">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.GetSystemFirmwareTable(Windows.Win32.System.SystemInformation.FIRMWARE_TABLE_PROVIDER,Windows.Win32.System.SystemInformation.FIRMWARE_TABLE_ID)">
<summary>
Gets the specific firmware table.
</summary>
<param name="provider">The Firmware table provider</param>
<param name="table">The firmware table integer identifier</param>
<returns>The firmware table as a byte array</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InformationProviders.WindowsUniqueIdentifierInformationProvider.EnumSystemFirmwareTables(Windows.Win32.System.SystemInformation.FIRMWARE_TABLE_PROVIDER)">
<summary>
Enumerates all system firmware tables from the specified firmware table provider
</summary>
<param name="provider">The Firmware table provider</param>
<returns>The table names</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.UserType">
<summary>
Defines different user types
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IUserInformationProvider">
<summary>
Check whether user is internal microsoft employee and whether he/she
logged in from the internal microsoft network.
This information is neccessary for sending PII.
We can send PII data only for internal users. The only exception is the Europe users.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IUserInformationProvider.CanCollectPrivateInformation">
<summary>
Gets a value indicating whether the current session is deemed to be a session qualified
to collect private information.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IUserInformationProvider.IsUserMicrosoftInternal">
<summary>
Gets a value indicating whether the current session is deemed to be a "Microsoft Internal" session
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IUserInformationProvider.IsMicrosoftAADJoined">
<summary>
Gets a value indicating whether the current machine is joined to the Microsoft AAD tenant
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IUserInformationProvider.UserId">
<summary>
Gets a value indicating a unique ID for the current user.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IUserInformationProvider.UserType">
<summary>
Gets a value for the user type.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.MachineInformationProvider.MachineId">
<summary>
Gets the unique ID for the machine (i.e. across users).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.GetName">
<summary>
INsBundleInformationProvider's GetName method. Calls through to the ProcessName implementation.
</summary>
<returns>The name of the process.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.GetVersion">
<summary>
INsBundleInformationProvider's GetVersion method. Calls through to the ProcessExeName implementation.
</summary>
<returns>The assembly file version of the process.</returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.ProcessName">
<summary>
Gets the name of the current host process, for example devenv, in lowercase.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.ProcessId">
<summary>
Gets the process id of the current host process.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.ProcessExeVersion">
<summary>
Gets the process exe version
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.Is64BitProcess">
<summary>
Gets a value indicating whether the bitness of the current process is 64 bit or not.
Alternatively, we could use ``Environment.Is64BitProcess`` however, this is available &gt;= .NET 4.0 and we don't want to take any chances.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.OSBitness">
<summary>
Gets the OS Bitness.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.InitializeName(System.Diagnostics.FileVersionInfo)">
<summary>
Gets the process file name. If the file ends in .exe or .dll, trim the extension off.
</summary>
<returns>Name of the executing assembly.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MonoHostInformationProvider.GetFileVersionInfo(System.Diagnostics.Process)">
<summary>
Gets the file version info based on the running process. For dotnet, it publishes the actual code
to "ProgramName".dll while when it runs, its running an executable entry point.
What that means is that we'll need to check the mainModule's FileVersion isn't null and if it is, check for the .dll file.
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.MonoUserInformationProvider.UserType">
<summary>
Gets user type, which is external by default as in VsLog.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MonoUserInformationProvider.CalculateIsMicrosoftAADJoined">
<summary>
Returns false as there isn't currently a way to join a non-Windows machine to AAD.
</summary>
<returns>false</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.UserInformationProviderBase">
<summary>
Base type for the user information provider. Platform specific implementations can use this type to calculate generic properties.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.UserInformationProviderBase.CanCollectPrivateInformation">
<summary>
Gets a value indicating whether the current session is deemed to be a session qualified to collect private information
This information is necessary for sending PII.
We can send PII data only for internal users. The only exception is the Europe users.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.UserInformationProviderBase.IsUserMicrosoftInternal">
<summary>
Gets a value indicating whether the current session is deemed to be a "Microsoft Internal" session
Check whether user is internal Microsoft employee and whether he/she
logged in from the internal Microsoft network.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.UserInformationProviderBase.IsMicrosoftAADJoined">
<summary>
Gets a value indicating whether the current machine is joined to the Microsoft AAD tenant
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.UserInformationProviderBase.UserId">
<summary>
Gets a value indicating a unique ID for the current user.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.UserInformationProviderBase.CalculateIsMicrosoftAADJoined">
<summary>
Gets the value of whether the machine is joined to the Microsoft AAD tenant. Currently only checks on Windows machines and
non-Windows machines will return false.
</summary>
<returns>True if joined to the Microsoft AAD tenant</returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsHostInformationProvider.ProcessName">
<summary>
Gets the name of the current host process, for example devenv, in lowercase.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsHostInformationProvider.ProcessId">
<summary>
Gets the process id of the current host process.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsHostInformationProvider.Is64BitProcess">
<summary>
Gets a value indicating whether gets a value indicating if the bitness of the current process is 64 bit or not.
Alternatively, we could use ``Environment.Is64BitProcess`` however, this is available &gt;= .NET 4.0.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsHostInformationProvider.OSBitness">
<summary>
Gets the OS Bitness. "64" for 64 bit and "32" for 32 bit.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsHostInformationProvider.InitializeName">
<summary>
For Perf reasons (in order to reduce RefSet by about 400KB during VS Start) we use the
Win32 API to read the Process Exe name instead of using the .NET API.
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsUserInformationProvider.UserType">
<summary>
Gets a value for the user type.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsUserInformationProvider.CalculateIsMicrosoftAADJoined">
<summary>
If joined to an AAD tenant, checks the AADTenantId fetched in GetAADTenantId() and checks whether it matches the Microsoft AAD tenantId.
</summary>
<returns>True of part of the Microsoft AAD tenant</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.#ctor(Microsoft.VisualStudio.Telemetry.IDiagnosticTelemetry)">
<summary>
Main constructor that requests all required classes.
</summary>
<param name="diagnosticTelemetry"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.GetChannelSettings(System.String)">
<summary>
Get internal settings for the channel specified by its ID.
There are 3 states could be:
- explicitly enabled
- explicitly disabled
- undefined (no settings available)
</summary>
<param name="channelId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.IsForcedUserExternal">
<summary>
Check whether user is forced set as external
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.TryGetTestAppId(System.UInt32@)">
<summary>
Try to get test AppId settings from the registry.
</summary>
<param name="testAppId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.TryGetTestHostName(System.String@)">
<summary>
Try to get test hostName from the registry.
</summary>
<param name="testHostName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.GetIPGlobalConfigDomainName">
<summary>
Returns the IP Global Config Domain Name or empty string in case of network exception.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.IsTelemetryDisabledCompletely">
<summary>
Check, whether telemetry completely disabled
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v TurnOffSwitch /t REG_DWORD /d 1 /f
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.IsLocalLoggerEnabled">
<summary>
Check whether local logger is enabled
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.FaultEventWatsonSamplePercent">
<summary>
Get the sample rate for Fault Events from registry
useful for testing
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventWatsonSampleRate /t REG_DWORD /d 100 /f
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.FaultEventMaximumWatsonReportsPerSession">
<summary>
Get the default # of Watson reports per session from registry
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventMaximumWatsonReportsPerSession /t REG_DWORD /d 100 /f
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.InternalSettingsBase.FaultEventMinimumSecondsBetweenWatsonReports">
<summary>
Get the default # of seconds bewtween Watson reports from registry
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventMinimumSecondsBetweenWatsonReports /t REG_DWORD /d 3600 /f
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IStreamParser">
<summary>
Parses an object from a stream.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IStreamSerializer">
<summary>
Serializes an object to a stream.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryEtwProvider">
<summary>
Implementation for host specific ETW provider for telemetry events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryEtwProvider.WriteActivityStartEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity)">
<summary>
Writes start event for a TelemetryActivity
</summary>
<param name="activity">Telemetry activity instance</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryEtwProvider.WriteActivityStopEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity)">
<summary>
Writes stop event for a TelemetryActivity
</summary>
<param name="activity">Telemetry activity instance</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryEtwProvider.WriteActivityEndWithDurationEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity)">
<summary>
Writes event for a TelemetryActivity that was ended with a specified duration
</summary>
<param name="activity">Telemetry activity instance</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryEtwProvider.WriteActivityPostEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity,Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Writes an event for a TelemetryActivity when it is posted to a session.
</summary>
<param name="activity">Telemetry activity instance</param>
<param name="session"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryEtwProvider.WriteTelemetryPostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Writes an event to indicate a telemetry event being posted to a session
</summary>
<param name="telemetryEvent">Telemetry event instance</param>
<param name="session"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryEventMatch">
<summary>
Represents a telemetry event filter.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryEventMatch.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Indicates whether the specified <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEvent" /> satisfies this filter.
</summary>
<param name="telemetryEvent">The <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEvent" /> to check against this filter.</param>
<returns>true if this filter is satisfied; otherwise, false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryOptinStatusReader.ReadIsOptedInStatus(System.String)">
<summary>
Read IsOptedIn status for current product.
</summary>
<param name="productVersion">Product version is needed to build a config path</param>
<returns>OptedIn status</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryOptinStatusReader.ReadIsOptedInStatus(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Calculate IsOptedIn status based on OptedIn status from all installed versions of VS.
</summary>
<param name="session">Host telemetry session</param>
<returns>OptedIn status</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryPropertyBag`1">
<summary>
ITelemetryPropertyBag interface for the generic PropertyBag
</summary>
<typeparam name="TValue"></typeparam>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryTestChannel">
<summary>
Interface for the test channels to receive events
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryTestChannel.OnPostEvent(System.Object,Microsoft.VisualStudio.Telemetry.TelemetryTestChannelEventArgs)">
<summary>
Process incoming events
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter">
<summary>
Custom JSON converter. It allows to use specified handlers to convert custom objects to the string.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter.AddConverter(System.Type,System.Func{System.Object,System.String})">
<summary>
Add new converter by type.
</summary>
<param name="type"></param>
<param name="converter"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter.CanConvert(System.Type)">
<summary>
Check whether current converter can deal with certain type.
</summary>
<param name="objectType"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)">
<summary>
Read Json value to the object. Not implemented for this purposes.
</summary>
<param name="reader"></param>
<param name="objectType"></param>
<param name="existingValue"></param>
<param name="serializer"></param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter.CanRead">
<summary>
Gets a value indicating whether current converter can Read.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter.ResetUsageInformation">
<summary>
Reset converters usage information.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter.WasConverterUsed(System.Type)">
<summary>
Check whether specific converter was used
</summary>
<param name="typeOfConverter"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonHelpers.CustomJsonConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
<summary>
Write Json representation of the current value.
</summary>
<param name="writer"></param>
<param name="value"></param>
<param name="serializer"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.JsonCreationConverter`1">
<summary>
Abstract base class, serves as a base class for the object creators during
deserialize objects from the Json using Newtonsoft.Json
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonCreationConverter`1.CanConvert(System.Type)">
<summary>
Can convert input type to the desired one?
</summary>
<param name="objectType"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonCreationConverter`1.ReadJson(Newtonsoft.Json.JsonReader,System.Type,System.Object,Newtonsoft.Json.JsonSerializer)">
<summary>
Read and parse json file.
</summary>
<param name="reader"></param>
<param name="objectType"></param>
<param name="existingValue"></param>
<param name="serializer"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonCreationConverter`1.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
<summary>
Write json file.
</summary>
<param name="writer"></param>
<param name="value"></param>
<param name="serializer"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonCreationConverter`1.Create(System.Type,Newtonsoft.Json.Linq.JObject)">
<summary>
Create an instance of objectType, based properties in the JSON object
</summary>
<param name="objectType">type of object expected</param>
<param name="jsonObject">
contents of JSON object that will be deserialized
</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonCreationConverter`1.FieldExists(System.String,Newtonsoft.Json.Linq.JObject)">
<summary>
Does expected field exist?
</summary>
<param name="fieldName"></param>
<param name="jsonObject"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.JsonTelemetryManifestParser">
<summary>
Parse json manifest stream and create an object
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonTelemetryManifestParser.ParseAsync(System.IO.TextReader)">
<summary>
Async parse manifest from the text stream
</summary>
<param name="stream"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.JsonTelemetryManifestParser.Parse(System.String)">
<summary>
Parse manifest from the string
</summary>
<param name="jsonString"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.BaseJsonLogFile`1.Initialize(Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider)">
<summary>
Ensure to create a new writer for each session
</summary>
<param name="settingsProvider"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.BaseJsonLogFile`1.WriteAsync(`0)">
<summary>
Log event to file
</summary>
<param name="eventData"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.BaseJsonLogFile`1.DisposeManagedResources">
<summary>
Dispose managed resources.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryLogFile`1.Initialize(Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider)">
<summary>
Ensure to create a new writer for each session
</summary>
<param name="settingsProvider"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryLogFile`1.WriteAsync(`0)">
<summary>
Write event to file
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider.MainIdentifiers">
<summary>
Gets or sets the main identfiers of the file, could be a SessionId or ApplicationName/Version/BranchName
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider.Path">
<summary>
Gets or sets the path of the file, usually C:\Something
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider.Folder">
<summary>
Gets or sets the folder within Path to save files.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider.FilePath">
<summary>
Gets the complete file path to actually create the file.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider.GetCreateFolderPath">
<summary>
Get and, if needed, creates the folder where the log files will exist.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider.GetNextUniqueId">
<summary>
Gets the next (static) unique id for this log file. Used in case multiple files
are created at the same second.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryWriter.WriteLineAsync(System.String)">
<summary>
Writes a single line of text
</summary>
<param name="text"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryJsonLogFile.TelemetryLoggerEventSnapshot">
<summary>
Snapshot object of the telemetry event.
This class is intended to provide plain text event for the
logger purposes.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryLogSettingsProvider.fileVersion">
<summary>
We need it to create unique file across current process.
It is possible to create several files with the same name if
it is one process which creates several cloned sessions at the same time.
Example - VsHub
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryTextWriter.#ctor(System.String)">
<summary>
Initializes the internal writer
</summary>
<param name="filePath"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryTextWriter.WriteLineAsync(System.String)">
<summary>
Writes a single line of text
</summary>
<param name="text"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryTextWriter.Dispose">
<summary>
Closes the writer.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.MacVsOptinStatusReader">
<summary>
Read OptedIn value for the VS for Mac.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MacVsOptinStatusReader.ReadIsOptedInStatus(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
For Mac we don't have separate OptinStatus for different versions.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.DataPointEqualityComparer`1">
<summary>
Comparer used to compare equality of data points in a SortedList.
This comparer reports the normal comparison of x and y except when x == y. In that case, it reports x &gt; y.
This is done to permit duplicate keys in a sorted list while retaining a valid sort order.
This comparer will produce unexpected behavior if used outside of its expected domain.
Use this only in specialized cases where duplicate keys must be permitted in a SortedList.
</summary>
<typeparam name="T">The type of data points being compared (must be a valid numeric struct).</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.DataPointEqualityComparer`1.Compare(`0,`0)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.BaseMetricPropertyGenerator">
<summary>
Dumps basic properties about an event into a telemetry event's properties.
These include properties such as meter name, version, and metric description, unit, etc.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.BaseMetricPropertyGenerator.SetProperties(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.CounterPropertyGenerator`1">
<summary>
Dumps Counter properties into a telemetry event's properties.
</summary>
<typeparam name="T">The type of data tracked by the Counter.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.CounterPropertyGenerator`1.SetProperties(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.HistogramPropertyGenerator`1">
<summary>
Dumps Histogram properties into a telemetry event's properties.
</summary>
<typeparam name="T">The type of data tracked by the Histogram.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.HistogramPropertyGenerator`1.SetProperties(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.IMetricPropertyGenerator">
<summary>
An interface indicating a type can dump metric events into telemetry event properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.IMetricPropertyGenerator.SetProperties(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<summary>
Sets properties on the specified metric event according to the provided metric's type.
</summary>
<param name="metricEvent">The event whose properties must be set.</param>
<param name="metric">The metric associated with the event.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryCounterEvent`1">
<summary>
The class represents a telemetry event for an IVSCounter that can be posted to a server.
The non-VS (ICounter) type has no additional exposed properties beyond the IInstrument.
So, no additional properties are needed for the ICounter event and it can be posted normally.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryCounterEvent`1.#ctor(Microsoft.VisualStudio.Telemetry.TelemetryEvent,Microsoft.VisualStudio.Telemetry.Metrics.ICounter{`0})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryCounterEvent`1" /> class.
</summary>
<param name="telemetryEvent">The event, with all additional custom properties already set.</param>
<param name="counter">The counter to track via the event.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryHistogramEvent`1">
<summary>
The class represents a telemetry event for a VS Histogram that can be posted to a server.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryHistogramEvent`1.#ctor(Microsoft.VisualStudio.Telemetry.TelemetryEvent,Microsoft.VisualStudio.Telemetry.Metrics.IHistogram{`0})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryHistogramEvent`1" /> class.
</summary>
<param name="telemetryEvent">The event, with all additional custom properties already set.</param>
<param name="histogram">The histogram to track via the event.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent">
<summary>
The class represents a telemetry event for an IInstrument that can be posted to a server.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.Metrics">
<summary>
Gets or sets the set of metrics tracked by this event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.MetricEvent">
<summary>
Gets the telemetry event associated with the metric.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.#ctor(Microsoft.VisualStudio.Telemetry.TelemetryEvent,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent" /> class.
</summary>
<param name="telemetryEvent">The event, with all additional custom properties already set.</param>
<param name="metric">The metric to track via the event.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.#ctor(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Metrics.IInstrument})">
<summary>
Construct a telemetry event with a composited set of metrics.
</summary>
<param name="telemetryEvent">The event, with all additional custom properties already set.</param>
<param name="metrics">The set of metrics to track via the event.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.SetProperties">
<summary>
Sets properties on the metric event related to the metric
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.SetMetricProperty(System.String,System.Object,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<summary>
Sets a property associated with a metric.
</summary>
<param name="propertyKey">The key to associated with the metric's property value.</param>
<param name="content">The metric property's value.</param>
<param name="metric">The metric.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.SetMeterProperty(System.String,System.Object,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<summary>
Sets a property associated with a metric's parent meter.
</summary>
<param name="propertyKey">The key to associated with the meter's property value.</param>
<param name="content">The meter property's value.</param>
<param name="metric">The metric attached to the meter.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent.ToString">
<summary>
ToString to make debugging easier: show in debug watch window.
</summary>
<returns>The string value of the event to simplify debugging.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.TelemetryCompositeMetricEvent">
<summary>
TelemetryEvent representing a composite set of metric events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.TelemetryCompositeMetricEvent.#ctor(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.Metrics.IInstrument})">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.TelemetryCompositeMetricEvent" /> class.
</summary>
<param name="baseEvent">The base event to model the composited event from.</param>
<param name="metrics">The metrics to track with this event.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.TelemetryCompositeMetricEvent.AssignCompositedPropertyValues(Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet,System.String)">
<summary>
Assigns deduplicated composited property values to the composite metric event.
</summary>
<param name="compositeSet">The composite set with deduplicated property values.</param>
<param name="separator">The sequence used to separate property values.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.InvalidBucketConfigurationException">
<summary>
Indicates that a Histogram's bucket configuration was invalid, typically due to a sorting issue.
Buckets must be specified in ascending order.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.InvalidMeterNameException">
<summary>
Indicates an invalid or improperly formatted Meter name was specified.
See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument for details.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.NonMonotonicOperationException">
<summary>
Indicates a non-monotonic operation was performed.
If this operation is intentional, use a non-monotonic instrument (such as an UpDownCounter instead of a Counter).
See https://en.wikipedia.org/wiki/Monotonic_function for details.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.RegisteredMetricLimitExceededException">
<summary>
Indicates more registered metrics were recorded in a set than the configured limit.
Check your strategy for generating keys to identify unique metrics and ensure keys are not too fragmented or unique.
Alternatively, consider raising the configured limit.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.UnsupportedNumericStructException">
<summary>
Indicates an unsupported struct was passed to a Metric.
Unsupported structs may be non-numeric, or simply an unsupported numeric type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.IMeter">
<summary>
Meter is the class responsible for creating and tracking the Instruments.
Mirrored from: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.meter?view=net-6.0.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.Name">
<summary>
Gets the Meter name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.Version">
<summary>
Gets the Meter version.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateCounter``1(System.String,System.String,System.String)">
<summary>
Create a Counter, which is an instrument that can be used to track counts/sums in monotonic scenarios (always increase/decrease).
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateUpDownCounter``1(System.String,System.String,System.String)">
<summary>
Create an UpDownCounter, which is an instrument that can be used to track counts/sums which are not monotonic (can fluctuate in value).
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new up/down counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateVSCounter``1(System.String,System.String,System.String)">
<summary>
Create a VS Counter, which is an instrument that can be used to track counts/sums in monotonic scenarios (always increase/decrease).
The VS version of a counter enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new VS counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateVSUpDownCounter``1(System.String,System.String,System.String)">
<summary>
Create a VS UpDownCounter, which is an instrument that can be used to track counts/sums which are not monotonic (can fluctuate in value).
The VS version of a counter enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new VS up/down counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateHistogram``1(System.String,System.String,System.String)">
<summary>
Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateHistogram``1(System.String,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration,System.String,System.String)">
<summary>
Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
/// <param name="configuration">Optional histogram configuration with bucket boundaries + statistical configuration.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateVSHistogram``1(System.String,System.String,System.String)">
<summary>
Creates a VS Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
The VS version of a histogram enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeter.CreateVSHistogram``1(System.String,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration,System.String,System.String)">
<summary>
Creates a VS Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
The VS version of a histogram enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
/// <param name="configuration">Optional histogram configuration with bucket boundaries + statistical configuration.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.IMeterProvider">
<summary>
The MeterPRovider is responsible for creating new meters with valid names + versions for the context.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeterProvider.CreateMeter(System.String)">
<summary>
Initializes a new instance of Meter using the specified meter name.
This Meter is suitable for measuring + reporting instruments via standard VS Telemetry.
</summary>
<param name="name">The Meter name.</param>
<returns>The new Meter.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IMeterProvider.CreateMeter(System.String,System.String)">
<summary>
Initializes a new instance of Meter using the specified meter name and version.
This Meter is suitable for measuring + reporting instruments via standard VS Telemetry.
</summary>
<param name="name">The Meter name.</param>
<param name="version">The optional Meter version.</param>
<returns>The new Meter.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1">
<summary>
A Counter, as defined by the OpenTelemetry standard.
OpenTelemetry Spec: https://opentelemetry.io/docs/reference/specification/metrics/api/
.NET API spec: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.counter-1?view=net-6.0
This interface permits coding to the OpenTelemetry standard without upgrading our .NET Framework.
Since it's the same standard, we can update implementations to a thin wrapper around OTel when ready.
This also permits us to avoid re-instrumentation for developers.
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1.direction">
<summary>
The detected direction of change (positive or negative) to maintain monotonic constraints.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1.#ctor(Microsoft.VisualStudio.Telemetry.Metrics.IMeter,System.String,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" /> class.
</summary>
<param name="meter">The meter that created the instrument.</param>
<param name="name">The counter name. Cannot be null.</param>
<param name="unit">Optional counter unit of measurements.</param>
<param name="description">Optional counter description.</param>
<exception cref="T:System.ArgumentNullException">Throws if the meter or name are null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1.RecordMeasurement(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Adds the value to the Count.
Currently, the tags are simply ignored because we are not yet integrated with OpenTelemetry.
</summary>
<param name="measurement">The measurement to record.</param>
<param name="tags">The set of OpenTelemetry tags associated with the measurement.</param>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.NonMonotonicOperationException">Throws if incrementing a negative counter or decrementing a positive counter.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.MonotonicDirection">
<summary>
The last recorded trajectory of a monotonic instrument.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.MonotonicDirection.Unknown">
<summary>
The monotonic direction is not yet established.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.MonotonicDirection.Negative">
<summary>
The monotonic direction is negative (constantly decreasing).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.MonotonicDirection.Positive">
<summary>
The monotonic direction is positive (constantly increasing).
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1">
<summary>
A Base class for Counter types, as defined by the OpenTelemetry standard.
OpenTelemetry Spec: https://opentelemetry.io/docs/reference/specification/metrics/api/
.NET API spec: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.counter-1?view=net-6.0
This interface permits coding to the OpenTelemetry standard without upgrading our .NET Framework.
Since it's the same standard, we can update implementations to a thin wrapper around OTel when ready.
This also permits us to avoid re-instrumentation for developers.
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Sum">
<summary>
Gets the Sum of measurements.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Count">
<summary>
Gets the Count of measurements.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.PropertyGenerator">
<summary>
Responsible for generating properties when the metric is posted as an event.
Static is used to ensure T is aligned across counter and generator, and cached.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.#ctor(Microsoft.VisualStudio.Telemetry.Metrics.IMeter,System.String,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1" /> class.
</summary>
<param name="meter">The meter that created the instrument.</param>
<param name="name">The counter name. Cannot be null.</param>
<param name="unit">Optional counter unit of measurements.</param>
<param name="description">Optional counter description.</param>
<exception cref="T:System.ArgumentNullException">Throws if the meter or name are null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Add(`0)">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tag">A key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
<param name="tag3">A third key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object}[])">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tags">A list of key-value pair tags associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Add(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tags">A span of key-value pair tags associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.RecordMeasurement(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Adds the value to the Count.
Currently, the tags are simply ignored because we are not yet integrated with OpenTelemetry.
</summary>
<param name="measurement">The measurement to record.</param>
<param name="tags">The set of OpenTelemetry tags associated with the measurement.</param>
<exception cref="T:System.NotSupportedException">Throws if measurement is less than 0.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.CounterBase`1.Microsoft#VisualStudio#Telemetry#Metrics#Events#IMetricPropertyGenerator#SetProperties(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1">
<summary>
A Histogram, as defined by the OpenTelemetry standard.
OpenTelemetry Spec: https://opentelemetry.io/docs/reference/specification/metrics/api/
.NET API spec: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.histogram-1?view=net-6.0
This interface permits coding to the OpenTelemetry standard without upgrading our .NET Framework.
Since it's the same standard, we can update implementations to a thin wrapper around OTel when ready.
This also permits us to avoid re-instrumentation for developers.
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Statistics">
<summary>
Gets the summary-level statistics for the full Histogram.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Buckets">
<summary>
Gets the buckets for the histogram with associated statistical data.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.PropertyGenerator">
<summary>
Responsible for generating properties when the metric is posted as an event.
Static is used to ensure T is aligned across counter and generator, and cached.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Record(`0)">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tag">A key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
<param name="tag3">A third key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object}[])">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tags">A list of key-value pair tags associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Record(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tags">A span of key-value pair tags associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.RecordMeasurement(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Records the measurement, associating it with the proper buckets and updating statistics as needed.
Currently, the tags are simply ignored because we are not yet integrated with OpenTelemetry.
</summary>
<param name="measurement">The measurement to record.</param>
<param name="tags">The set of OpenTelemetry tags associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1.Microsoft#VisualStudio#Telemetry#Metrics#Events#IMetricPropertyGenerator#SetProperties(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent,Microsoft.VisualStudio.Telemetry.Metrics.IInstrument)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBucket`1">
<summary>
Defines a bucket within a histogram (with boundaries + statistics).
</summary>
<typeparam name="T">The type of the overall histogram.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBucket`1.MinBoundary">
<summary>
Gets the minimum boundary of the bucket.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBucket`1.MaxBoundary">
<summary>
Gets the maximum boundary of the bucket.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBucket`1.Statistics">
<summary>
Gets the statistical information for this bucket.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBucket`1.#ctor(System.Double,System.Double,Microsoft.VisualStudio.Telemetry.Metrics.IMeter,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBucket`1" /> class.
</summary>
<param name="minBoundary">The minimum boundary of the bucket.</param>
<param name="maxBoundary">The maximum boundary of the bucket.</param>
<param name="meter">The parent meter of the histogram.</param>
<param name="configuration">The configuration used for the histogram.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBucket`1.IsCorrectBucket(System.Double)">
<summary>
Determines whether or not this bucket is the correct one for the measurement.
The upper bounds are inclusive, the lower bounds are exclusive, as per OpenTelemetry spec.
Spec: https://opentelemetry.io/docs/reference/specification/metrics/data-model/.
</summary>
<param name="measurement">The measurement being recorded.</param>
<returns>True if the measurement is within this Bucket's bounds. Else, false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBuckets`1">
<summary>
The set of buckets within the histogram.
</summary>
<typeparam name="T">The type of the histogram.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBuckets`1.OrderedBuckets">
<summary>
Gets the ordered list of buckets within the histogram along with associated statistics.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBuckets`1.#ctor(Microsoft.VisualStudio.Telemetry.Metrics.IMeter,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBuckets`1" /> class.
</summary>
<param name="meter">The parent meter of the histogram.</param>
<param name="configuration">The configuration used to create the histogram.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBuckets`1.Record(`0)">
<summary>
Records a measurement in the correct bucket within the histogram.
</summary>
<param name="measurement">The measurement to record.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramBuckets`1.CreateBuckets(Microsoft.VisualStudio.Telemetry.Metrics.IMeter,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration)">
<summary>
Creates the necessary buckets within the histogram according to the configuration.
</summary>
<param name="meter">The parent meter of the histogram.</param>
<param name="configuration">The configuration used to create the histogram.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration">
<summary>
Specifies the configuration of a histogram - which statistics to collect and which buckets to use.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration.ExplicitBuckets">
<summary>
Gets the explicit bucket boundaries for the histogram.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration.RecordMinMax">
<summary>
Gets a value indicating whether or not to record Minimum/Maximum values.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration.RecordMedian">
<summary>
Gets a value indicating whether or not to record the Median value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration.DefaultHistogramBuckets">
<summary>
The default histogram buckets according to the OpenTelemetry standard. Must be specified in increasing order.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration.#ctor(System.Double[],System.Boolean,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration" /> class.
Allows specifying explicit bucket boundaries and which statistics should be collected.
</summary>
<param name="explicitBucketBoundaries">The histogram's bucket boundaries.</param>
<param name="recordMinMax">True if min/max values should be recorded.</param>
<param name="recordMedian">True if the median value should be recorded (note: depending on datapoint volume median tracking may elevate memory usage).</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration.ValidateBucketOrdering">
<summary>
Validate that buckets are specified in ascending order.
</summary>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.InvalidBucketConfigurationException">Throws an argument exception if buckets are not in ascending order.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1">
<summary>
Tracks the statistics for a histogram for a given scope (all-up or bucketized).
</summary>
<typeparam name="T">The base numeric type of the histogram.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.Counter">
<summary>
Gets the Counter representing the sum and count of datapoint values within the statistical set.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.Min">
<summary>
Gets the minimum value recorded within the statistical set. If null, it's untracked.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.Max">
<summary>
Gets the maximum value recorded within the statistical set. If null, it's untracked.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.Average">
<summary>
Gets the average value recorded within the statistical set.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.Median">
<summary>
Gets the median value recorded within the statistical set. If null, it's untracked.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.FirstRecorded">
<summary>
Gets the time the first event was recorded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.LastRecorded">
<summary>
Gets the time the last event was recorded.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.#ctor(Microsoft.VisualStudio.Telemetry.Metrics.IMeter,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1" /> class.
</summary>
<param name="meter">The parent meter for the Histogram.</param>
<param name="configuration">The configuration of the Histogram.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.Record(`0)">
<summary>
Records the specified measurement, updating tracked statistics as appropriate.
</summary>
<param name="measurement">The value to record in the Histogram's statistics.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.HistogramStatistics`1.CalculateMedian">
<summary>
Calculates the median of the collected data points.
</summary>
<returns>Null if no data points were collected or the instrument is not tracking the median. Otherwise, returns the median value.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.ICounter`1">
<summary>
A Counter, as defined by the OpenTelemetry standard.
OpenTelemetry Spec: https://opentelemetry.io/docs/reference/specification/metrics/api/
.NET API spec: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.counter-1?view=net-6.0
This interface permits coding to the OpenTelemetry standard without upgrading our .NET Framework.
Since it's the same standard, we can update implementations to a thin wrapper around OTel when ready.
This also permits us to avoid re-instrumentation for developers.
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.ICounter`1.Add(`0)">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.ICounter`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tag">A key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.ICounter`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.ICounter`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
<param name="tag3">A third key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.ICounter`1.Add(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object}[])">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tags">A list of key-value pair tags associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.ICounter`1.Add(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Records the increment value of the measurement.
</summary>
<param name="delta">The value of the increment (may not be negative).</param>
<param name="tags">A span of key-value pair tags associated with the measurement.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.IHistogram`1">
<summary>
A Histogram, as defined by the OpenTelemetry standard.
OpenTelemetry Spec: https://opentelemetry.io/docs/reference/specification/metrics/api/
.NET API spec: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.histogram-1?view=net-6.0
This interface permits coding to the OpenTelemetry standard without upgrading our .NET Framework.
Since it's the same standard, we can update implementations to a thin wrapper around OTel when ready.
This also permits us to avoid re-instrumentation for developers.
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IHistogram`1.Record(`0)">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IHistogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tag">A key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IHistogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IHistogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
<param name="tag3">A third key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IHistogram`1.Record(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object}[])">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tags">A list of key-value pair tags associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.IHistogram`1.Record(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Records a measurement value.
</summary>
<param name="value">The measurement value.</param>
<param name="tags">A span of key-value pair tags associated with the measurement.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.IInstrument">
<summary>
The base interface for all non-observable instruments.
Mirrored from: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.instrument-1?view=net-6.0.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IInstrument.Name">
<summary>
Gets the instrument name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IInstrument.Description">
<summary>
Gets the instrument description.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IInstrument.Meter">
<summary>
Gets the Meter that created the instrument.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IInstrument.Unit">
<summary>
Gets the instrument unit of measurements.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IInstrument.Enabled">
<summary>
Gets a value indicating whether there are any listeners for this instrument.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IInstrument.IsObservable">
<summary>
Gets a value indicating whether the instrument is an observable instrument.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1">
<summary>
The base class for all non-observable instruments.
Mirrored from: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.instrument-1?view=net-6.0.
</summary>
<typeparam name="T">The type of the instrument.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.Name">
<summary>
Gets the instrument name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.Description">
<summary>
Gets the instrument description.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.Meter">
<summary>
Gets the Meter that created the instrument.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.Unit">
<summary>
Gets the instrument unit of measurements.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.Enabled">
<summary>
Gets a value indicating whether there are any listeners for this instrument.
Always True currently, as measurements are recorded internal to the instrument.
When OpenTelemetry is integrated, this will accurately describe the status of listeners.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.IsObservable">
<summary>
Gets a value indicating whether the instrument is an observable instrument.
Always False currently, as Instruments in are non-observable by definition in .NET.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.EmptyTags">
<summary>
Indicates an empty set of tags which can be used in substitute of user-specified tags.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.Tags">
<summary>
Gets or sets the set of tags associated with an instrument's datapoint.
This set is re-used from call to call to avoid too many allocations.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.internalTags">
<summary>
The backing value for tags internally.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.MAX_TAGS">
<summary>
The maximum permitted number of tags (based on the .NET implementation).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.#ctor(Microsoft.VisualStudio.Telemetry.Metrics.IMeter,System.String,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1" /> class.
Internal constructor to initialize the common instrument properties like the meter, name, description, and unit.
</summary>
<param name="meter">The meter that created the instrument.</param>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<exception cref="T:System.ArgumentNullException">Throws if the meter or name are null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.Publish">
<summary>
Activates the instrument to start recording measurements and to allow listeners to start listening to such measurements.
This is currently a no-op as measurement implicitly begins when the first measurement is recorded.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.RecordMeasurement(`0)">
<summary>
Records a measurement by notifying all MeterListener objects that are listening to this instrument.
</summary>
<param name="measurement">The measurement value.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.RecordMeasurement(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement by notifying all MeterListener objects that are listening to this instrument.
</summary>
<param name="measurement">The measurement value.</param>
<param name="tag">A key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.RecordMeasurement(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement by notifying all MeterListener objects that are listening to this instrument.
</summary>
<param name="measurement">The measurement value.</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.RecordMeasurement(`0,System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Records a measurement by notifying all MeterListener objects that are listening to this instrument.
</summary>
<param name="measurement">The measurement value.</param>
<param name="tag1">A first key-value pair tag associated with the measurement.</param>
<param name="tag2">A second key-value pair tag associated with the measurement.</param>
<param name="tag3">A third key-value pair tag associated with the measurement.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Instrument`1.RecordMeasurement(`0,System.ReadOnlySpan{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
<summary>
Records a measurement by notifying all MeterListener objects that are listening to this instrument.
</summary>
<param name="measurement">The measurement value.</param>
<param name="tags">A span of key-value pair tags associated with the measurement.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.IVSCounter`1">
<summary>
A Counter with support for exposing Sum + Count, which are not supported directly by OpenTelemetry counters.
Taking a dependency on this histogram allows developers to use more convenient types.
The cost of taking a dependency on the VS type is that it it can require additional dev work to move to OpenTelemetry.
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IVSCounter`1.Sum">
<summary>
Gets the Sum of measurements.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IVSCounter`1.Count">
<summary>
Gets the Count of measurements.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.IVSHistogram`1">
<summary>
A Histogram with exposed Statistics + Buckets
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IVSHistogram`1.Statistics">
<summary>
Gets the summary-level statistics for the full Histogram.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.IVSHistogram`1.Buckets">
<summary>
Gets the buckets for the histogram with associated statistical data.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.UpDownCounter`1">
<summary>
An UpDownCounter, as defined by the OpenTelemetry standard.
OpenTelemetry Spec: https://opentelemetry.io/docs/reference/specification/metrics/api/
.NET API spec: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.counter-1?view=net-6.0
This interface permits coding to the OpenTelemetry standard without upgrading our .NET Framework.
Since it's the same standard, we can update implementations to a thin wrapper around OTel when ready.
This also permits us to avoid re-instrumentation for developers.
</summary>
<typeparam name="T">The counter type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.UpDownCounter`1.#ctor(Microsoft.VisualStudio.Telemetry.Metrics.IMeter,System.String,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.UpDownCounter`1" /> class.
</summary>
<param name="meter">The meter that created the instrument.</param>
<param name="name">The counter name. Cannot be null.</param>
<param name="unit">Optional counter unit of measurements.</param>
<param name="description">Optional counter description.</param>
<exception cref="T:System.ArgumentNullException">Throws if the meter or name are null.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet">
<summary>
Responsible for managing the lifetimes of "Registered" Metrics.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.Metrics">
<summary>
Gets the keys and corresponding registered metrics.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.CompositeProperties">
<summary>
Gets the dictionary of CompositeProperties for the event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.MetricEvent">
<summary>
Gets the event to be sent when the set of metrics either expires or is closed.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.Expiry">
<summary>
Gets the time when this registered metric set expires.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.ConcurrentMetricsCount">
<summary>
Gets the total count of registered metrics currently being tracked by this set.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.#ctor(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet" /> class.
</summary>
<param name="metricEvent">The base event to send when the set is closed.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.Record``1(System.String,Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricInstrumentType,``0,System.TimeSpan,System.Double[],System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Records new metric data (creating a new registered metric, if none is found).
</summary>
<typeparam name="T">The type of data being recorded.</typeparam>
<param name="metricName">The metric's name.</param>
<param name="instrumentType">The type of instrumentation type (i.e. Counter, Histogram) that is being recorded.</param>
<param name="data">The data to record on that metric.</param>
<param name="timeout">The timeout to use when creating new metrics or updating their expiry.</param>
<param name="buckets">The bucket boundary definitions to use for types which support buckets.</param>
<param name="commonProperties">The set of common properties associated with this data.</param>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.UnsupportedNumericStructException">Throws when an unsupported data type is recorded. Only standard numeric value types are supported.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.GetMetric(System.String)">
<summary>
Gets the metric associated with the given key.
</summary>
<param name="metricName">The metric's name.</param>
<returns>The metric, if found with the associated key. If no metric is found, returns null.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.Close(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)">
<summary>
Closes the metric set by sending the associated event with all properties set.
</summary>
<param name="session">The session to use to post the event.</param>
<param name="separator">The delimiter for concatenated/deduped property values.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.CreateRegisteredMetric``1(System.String,Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricDataType,Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricInstrumentType,System.String,System.String,System.Double[])">
<summary>
Creates a Registered Metric of the appropriate type for the set based on the data type it is receiving.
</summary>
<typeparam name="T">The type of data received by the metric.</typeparam>
<param name="name">The name of the metric.</param>
<param name="dataType">The type of data (i.e. Integer, FloatingPoint) that is being recorded.</param>
<param name="instrumentType">The type of instrumentation type (i.e. Counter, Histogram) that is being recorded.</param>
<param name="units">The unit of measurement associated with the metric's value.</param>
<param name="description">The description of the metric.</param>
<param name="buckets">The bucket boundary definitions of the metric.</param>
<returns>The Registered Metric of the appropriate type.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.RecordData``1(Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric,``0)">
<summary>
Records data on the specified metric.
</summary>
<typeparam name="T">The whole-number data type of the data.</typeparam>
<param name="metric">The metric to record data on.</param>
<param name="data">The data to record.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredCompositeMetricsSet.UpdateExpirationTime(System.TimeSpan)">
<summary>
Refreshes the expiration time of the registered metric based on the specified timeout.
</summary>
<param name="timeout">The timeout to use for expiring this metric.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricDataType">
<summary>
Indicates the data type associated with data recorded on a metric.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricDataType.Integer">
<summary>
The data type is an integer (whole-number).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricDataType.FloatingPoint">
<summary>
The data type is floating-point.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricInstrumentType">
<summary>
Indicates the specific instrumentation type.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricInstrumentType.Undefined">
<summary>
Undefined instrument type.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricInstrumentType.Counter">
<summary>
Standard counter instrument type.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricInstrumentType.Histogram">
<summary>
Standard histogram instrument type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric">
<summary>
A Registered Metric is a metric with a couple associated fields:
1. An associated name (for referencing later)
2. An associated telemetry event (for sending data about the metric)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric.Name">
<summary>
Gets the name associated with this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric.Instrument">
<summary>
Gets the Instrument associated with this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric.DataType">
<summary>
Gets the Data Type associated with this metric.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric.InstrumentType">
<summary>
Gets the Instrument type associated with this metric.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric.#ctor(Microsoft.VisualStudio.Telemetry.Metrics.IInstrument,Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricDataType,Microsoft.VisualStudio.Telemetry.Metrics.Management.MetricInstrumentType)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetric" /> class.
</summary>
<param name="instrument">The instrument associated with the metric.</param>
<param name="dataType">The type of data to be recorded on the instrument.</param>
<param name="instrumentType">The instrument type.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager">
<summary>
Responsible for managing the lifetimes of "Registered" Metrics.
This is mostly useful for scenarios where there is no single good place for orchestration.
Ex: The C++ compiler cl.exe runs out-of-proc and uses fire-and-forget telemetry.
Only limited types are supported to intentionally narrow the accessibility of the scenario.
You must either allow the configured expiry time to pass or explicitly close the manager to post events.
If you know a key or unit of work is done, you may call <see cref="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.Close(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)" />.
If you are done with the manager entirely, call <see cref="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.CloseAll(Microsoft.VisualStudio.Telemetry.TelemetrySession)" />.
Do not use this manager outside of strictly necessary scenarios - use Metrics + MetricEvents directly instead.
When using the manager in appropriate scenarios, pay close attention to memory + performance considerations.
Tune the max metrics + timeout values to match your scenario's expectations.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.CompositeMetricSets">
<summary>
Gets mapping of keys to composite metric sets.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.IsExpirationTimerRunning">
<summary>
Gets a value indicating whether the manager's timer to enforce metric expiration is active.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.ConcurrentMetricsCount">
<summary>
Gets the current count of all active metrics.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.DEFAULT_MAX_CONCURRENT_METRICS">
<summary>
The default count of maximum concurrent metrics. Capped to prevent memory/performance issues.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.DEFAULT_TIMEOUT_IN_SECONDS">
<summary>
The default timeout for a given registered metric.
After the timeout, the associated event is sent automatically.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.DEFAULT_COMPOSITE_PROPERTY_SEPARATOR">
<summary>
The default string to use as a separator between composited property values.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.MaxConcurrentMetrics">
<summary>
The maximum number of concurrent metrics permitted in the current metric manager.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.timeoutInSeconds">
<summary>
The timeout for a given registered metric.
After the timeout, the associated event is sent automatically.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.compositePropertySeparator">
<summary>
The string to use as a separator between composited property values.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.timeout">
<summary>
The timeout for a registered metric. When the timeout expires with no additional data, the metric should be sent.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.metricSetSync">
<summary>
The Sync object for modifying a set, to avoid an unlikely case where a given metric is closed at the same time data is recorded on it.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.disposedValue">
<summary>
Tracks state of disposal.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.Int32,System.Int32,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager" /> class.
</summary>
<param name="session">The session to use to send expired metrics.</param>
<param name="maxConcurrentMetrics">The maximum number of metrics which can be tracked by the manager.</param>
<param name="timeoutInSeconds">The minimum time waited after the last data is recorded on a metric before the event is automatically closed.</param>
<param name="compositePropertySeparator">The separator to split composited property values.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.RecordCounterData``1(System.String,``0,System.String,Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Records data or creates a new counter associated with the metric associated with the key.
</summary>
<typeparam name="T">The type of data to record.</typeparam>
<param name="key">The key of the metric.</param>
<param name="data">The data to record.</param>
<param name="metricName">The metric's name.</param>
<param name="metricEvent">The event to associate with the metric, if this is a new key.</param>
<param name="compositeProperties">The optional set of composite properties to deduplicate across datapoints.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.RecordHistogramData``1(System.String,``0,System.String,Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Double[],System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
<summary>
Records data or creates a new histogram associated with the metric associated with the key.
</summary>
<typeparam name="T">The type of data to record.</typeparam>
<param name="key">The key of the metric.</param>
<param name="data">The data to record.</param>
<param name="metricName">The metric's name.</param>
<param name="metricEvent">The event to associate with the metric, if this is a new key.</param>
<param name="buckets">The bucket boundaries for the histogram, if this is a new key.</param>
<param name="compositeProperties">The optional set of composite properties to deduplicate across datapoints.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.CloseAll(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Closes all counters and histograms currently managed and sends their associated events.
</summary>
<param name="session">The session to use to send outstanding events.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.Close(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)">
<summary>
Closes any metric(s) listed under the specified key, using the provided session to send telemetry.
</summary>
<param name="session">The session to use to send telemetry events for closed any metric(s).</param>
<param name="key">The key of the metric to close.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.Dispose(System.Boolean)">
<summary>
Disposes the current metric manager.
</summary>
<param name="disposing">True if currently disposing.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Management.RegisteredMetricManager.Dispose">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.Meter">
<summary>
Meter is the class responsible for creating and tracking the Instruments.
Mirrored from: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.metrics.meter?view=net-6.0.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Meter.Name">
<summary>
Gets the Meter name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Metrics.Meter.Version">
<summary>
Gets the Meter version.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Meter" /> class.
</summary>
<param name="name">The Meter name.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.#ctor(System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Meter" /> class.
</summary>
<param name="name">The Meter name.</param>
<param name="version">The optional Meter version.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateCounter``1(System.String,System.String,System.String)">
<summary>
Create a metrics Counter object.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateUpDownCounter``1(System.String,System.String,System.String)">
<summary>
Create an UpDownCounter, which is an instrument that can be used to track counts/sums which are not monotonic (can fluctuate in value).
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateVSCounter``1(System.String,System.String,System.String)">
<summary>
Create a VS Counter, which is an instrument that can be used to track counts/sums in monotonic scenarios (always increase/decrease).
The VS version of a counter enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new VS counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateVSUpDownCounter``1(System.String,System.String,System.String)">
<summary>
Create a VS UpDownCounter, which is an instrument that can be used to track counts/sums which are not monotonic (can fluctuate in value).
The VS version of a counter enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new VS up/down counter.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Counter`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateHistogram``1(System.String,System.String,System.String)">
<summary>
Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateHistogram``1(System.String,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration,System.String,System.String)">
<summary>
Creates a Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
/// <param name="configuration">The histogram's configuration.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateVSHistogram``1(System.String,System.String,System.String)">
<summary>
Creates a VS Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
The VS version of a histogram enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.CreateVSHistogram``1(System.String,Microsoft.VisualStudio.Telemetry.Metrics.HistogramConfiguration,System.String,System.String)">
<summary>
Creates a VS Histogram, which is an instrument that can be used to report arbitrary values that are likely to be statistically meaningful. It is intended for statistics such as histograms, summaries, and percentiles.
The VS version of a histogram enables additional properties but requires additional work to migrate to OpenTelemetry when available.
</summary>
<typeparam name="T">The numerical type of the measurement.</typeparam>
<param name="name">The instrument name. Cannot be null.</param>
/// <param name="configuration">The histogram's configuration.</param>
<param name="unit">Optional instrument unit of measurements.</param>
<param name="description">Optional instrument description.</param>
<returns>A new histogram.</returns>
<exception cref="T:System.NotSupportedException">Throws if T is not a valid numeric type. For supported types, check documentation: <see cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Histogram`1" />.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.Dispose">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.Meter.ValidateNumericType(System.Type)">
<summary>
Validates whether or not the type is a valid numeric struct. This must be validated for runtime stability.
</summary>
<param name="type">The instrument's measurement type.</param>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.UnsupportedNumericStructException">Throws if T is not a valid numeric type. Supported types: <see cref="T:System.Byte" />, <see cref="T:System.Int16" />, <see cref="T:System.Int32" />, <see cref="T:System.Int64" />, <see cref="T:System.Double" />, <see cref="T:System.Single" />, and <see cref="T:System.Decimal" />.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.ArithmeticCache">
<summary>
Serves as a cache of standard arithmetic operator implementations.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.ArithmeticCache.GetArithmetic``1">
<summary>
Gets the appropriate arithmetic implementation for working with a given type.
</summary>
<typeparam name="T">The type which requires arithmetic operations.</typeparam>
<returns>The arithmetic type which can handle arithmetic for type T.</returns>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.UnsupportedNumericStructException">Throws when type T is not a supported numeric type.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.ByteArithmetic">
<summary>
A class to support generic arithmetic operations across byte values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.ByteArithmetic.Add(System.Byte,System.Byte)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.DecimalArithmetic">
<summary>
A class to support generic arithmetic operations across decimal values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.DecimalArithmetic.Add(System.Decimal,System.Decimal)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.DoubleArithmetic">
<summary>
A class to support generic arithmetic operations across double values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.DoubleArithmetic.Add(System.Double,System.Double)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.FloatArithmetic">
<summary>
A class to support generic arithmetic operations across float (Single) values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.FloatArithmetic.Add(System.Single,System.Single)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.GenericNumericUtility">
<summary>
Utility for performing operations with generic numeric types.
This is necessary because many operations (summing, dividing, etc.) are not derived from an interface.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.GenericNumericUtility.arithmeticOperators">
<summary>
The cache of arithmetic operators (to avoid frequent allocations during operations).
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.GenericNumericUtility.Add``1(``0,``0)">
<summary>
Adds the two generic values together, returning them as type T.
This method is unsafe at runtime unless T supports the '+' operator.
This constraint should be enforced upstream.
The Meter class uses the ValidateNumericType method to ensure instruments only target valid numeric types.
</summary>
<typeparam name="T">The type of variables to be summed.</typeparam>
<param name="a">First value to add.</param>
<param name="b">Second value to add.</param>
<returns>The sum of the two values, cast as type T.</returns>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.UnsupportedNumericStructException">Throws when type T is not a supported numeric type.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.GenericNumericUtility.Average``1(``0,System.Int64)">
<summary>
Calculates the average (mean) of the given sum + count.
</summary>
<typeparam name="T">The type of the sum to be averaged.</typeparam>
<param name="sum">The total sum (numerator).</param>
<param name="count">The count of elements (denominator).</param>
<returns>Returns null if count is 0, otherwise returns the average (mean) value.</returns>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.UnsupportedNumericStructException">Throws when type T is not a supported numeric type.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.GenericNumericUtility.Compare``1(``0,``0)">
<summary>
Compare two values.
</summary>
<typeparam name="T">The type of variables to be compared.</typeparam>
<param name="a">First value to compare.</param>
<param name="b">Second value to compare.</param>
<returns>The result of the default IComparer<typeparamref name="T" /> comparison of a and b.</returns>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.UnsupportedNumericStructException">Throws when type T is not a supported numeric type.</exception>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.IArithmetic`1">
<summary>
Interface for types which permit various generic arithmetic operations to be performed upon them.
</summary>
<typeparam name="T">A type which logically supports arithmetic operations.</typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.IArithmetic`1.Add(`0,`0)">
<summary>
Add two values together.
Implementors or overloads must add within a "checked" block to guard against overflow.
</summary>
<param name="a">The first value to add.</param>
<param name="b">The second value to add.</param>
<returns>The sum of a and b.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.Int16Arithmetic">
<summary>
A class to support generic arithmetic operations across short (Int16) values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.Int16Arithmetic.Add(System.Int16,System.Int16)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.Int32Arithmetic">
<summary>
A class to support generic arithmetic operations across int (Int32) values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.Int32Arithmetic.Add(System.Int32,System.Int32)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.Int64Arithmetic">
<summary>
A class to support generic arithmetic operations across long (Int64) values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.NumericUtilities.Int64Arithmetic.Add(System.Int64,System.Int64)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Metrics.VSTelemetryMeterProvider">
<summary>
The MeterProvider is responsible for creating new meters with valid names + versions for the VS telemetry context.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.VSTelemetryMeterProvider.CreateMeter(System.String)">
<summary>
Initializes a new instance of Meter using the specified meter name.
This Meter is suitable for measuring + reporting instruments via standard VS Telemetry.
</summary>
<param name="name">The Meter name.</param>
<returns>The new Meter.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.VSTelemetryMeterProvider.CreateMeter(System.String,System.String)">
<summary>
Initializes a new instance of Meter using the specified meter name and version.
This Meter is suitable for measuring + reporting instruments via standard VS Telemetry.
</summary>
<param name="name">The Meter name.</param>
<param name="version">The optional Meter version.</param>
<returns>The new Meter.</returns>
<exception cref="T:Microsoft.VisualStudio.Telemetry.Metrics.Exceptions.InvalidMeterNameException">Throws if the meter's name is invalid.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Metrics.VSTelemetryMeterProvider.IsValidInstrumentName(System.String)">
<summary>
Returns whether the given instrument name is valid according to the specification.
</summary>
<remarks>See specification: <see href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/api.md#instrument" />.</remarks>
<param name="instrumentName">The instrument name.</param>
<returns>Boolean indicating if the instrument is valid.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.MonoInternalSettings">
<summary>
Internal settings implementation for Mono. Mostly this class just delegates behavour to the default windows implementation
but it overrides the channel settings and Sqm policy which is not supported
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.NativeMethods">
<summary>
Class containing all PInvoke definitions we use in the Telemetry Library (other than SQM API) and some helpers related to native method calls.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.NativeMethods.GetFullProcessExeName">
<summary>
Returns the full path of the EXE of the current process. In case of error, a null is returned.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.NativeMethods.GetProcessCreationTime">
<summary>
Returns the UTC start time in Ticks of the current process or null if the start time cannot be determined.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.NativeMethods.GetProcessCreationFileTime">
<summary>
Returns the UTC start time of the current process as a FileTime or null if the start time cannot be determined.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationProvider">
<summary>
Enables dependency injection for telemetry notification service.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationProvider.AttachChannel(Microsoft.VisualStudio.Telemetry.ITelemetryTestChannel)">
<summary>
Attaches the notification service's test channel to receive telemetry events.
</summary>
<param name="channel">The notification service's test channel.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationProvider.DetachChannel(Microsoft.VisualStudio.Telemetry.ITelemetryTestChannel)">
<summary>
Detaches the notification service's test channel to stop receiving telemetry events.
</summary>
<param name="channel">The notification service's test channel.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationProvider.PostFaultEvent(System.String,System.String,System.Exception)">
<summary>
Posts a fault telemetry event.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationService">
<summary>
Telemetry notification service allows subscribers to be notified when telemetry event matching a specified rule is posted.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationService.Subscribe(Microsoft.VisualStudio.Telemetry.ITelemetryEventMatch,System.Action{Microsoft.VisualStudio.Telemetry.TelemetryEvent},System.Boolean)">
<summary>
Subscribes to be notified when a telemetry event matching the specified filter is posted.
</summary>
<param name="eventMatch">The <see cref="T:Microsoft.VisualStudio.Telemetry.ITelemetryEventMatch" /> representing the filter rule for telemetry events.</param>
<param name="handler">The handler to be invoked when a telemetry event matching the specified rule is posted.</param>
<param name="singleNotification">Specifies whether to unsubscribe once a matching notification is raised.</param>
<returns>A subscription ID that can be used to unsubscribe from notifications.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="eventMatch" /> is null, empty or white space.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="handler" /> is null.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationService.Unsubscribe(System.Int32)">
<summary>
Unsubscribes from the notification service.
</summary>
<param name="subscriptionId">The subscription ID to unsubscribe from.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Notification.NotificationTelemetryChannel">
<summary>
A pass through test channel for the notification service.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationProvider">
<summary>
Runtime <see cref="T:Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationProvider" />, using <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryService" />.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService">
<summary>
Telemetry notification service allows subscribers to be notified when telemetry event matching a specified rule
is posted.
</summary>
<remarks>
Using a simple mutual-exclusion lock implementation and int as ID because heavy async consumptions of this
service is not expected at this time.
</remarks>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.defaultLazy">
<summary>
we can't have a readonly static lazy here because unit tests will just use the same instance, causing confusion and random errors, depending on the order of unit test execution
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.Default">
<summary>
Gets the default singleton instance of the telemetry notifications service.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.Initialize">
<summary>
initialize the defaultLazy. Pass in Null as TelemetrySession to use which means use TelemetryService.DefaultSession
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.#ctor(Microsoft.VisualStudio.Telemetry.Notification.ITelemetryNotificationProvider)">
<summary>
Internal constructor for unit testing.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.Subscribe(Microsoft.VisualStudio.Telemetry.ITelemetryEventMatch,System.Action{Microsoft.VisualStudio.Telemetry.TelemetryEvent},System.Boolean)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.Unsubscribe(System.Int32)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.OnPostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
We want to be very fast to post an event on the client thread, so we just add it to a queue, set an event, and return
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Notification.TelemetryNotificationService.SetSession(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ISetTelemetrySession">
<summary>
TelemetryNotificationService.Default and TelemetryService.DefaultSession
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ISetTelemetrySession.SetSession(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
set the session to be used
</summary>
<param name="session"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEventMatchByName">
<summary>
This class is used to represent a telemetry filter by telemetry event name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEventMatchByName.EventName">
<summary>
Gets the name of the event that you want to filter out in the notification service.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEventMatchByName.IsFullNameCheck">
<summary>
Gets a value indicating whether the name of the event provided should match the telemetry event name exactly.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEventMatchByName.#ctor(System.String,System.Boolean)">
<summary>
Create a filter for telemetry event by its name
</summary>
<param name="eventName">Name of the telemetry event you want to match</param>
<param name="isFullNameCheck">Set to true to match the name exactly. Set to false for a startswith check</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEventMatchByName.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.NullVsOptinStatusReader">
<summary>
Implements a 'null' ITelemetryOptinStatusReader that always returns false. On platforms other than
windows we do not have access to global policy that enables opt-in for the user. We will use this
for all non-Windows platforms
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag">
<summary>
Represents a property bag that survives process shutdown.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.Persist">
<summary>Persists any changes</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.SetProperty(System.String,System.Int32)">
<summary>
Sets a new integer property value. The latest property value will be stored.
</summary>
<param name="propertyName"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.SetProperty(System.String,System.String)">
<summary>
Sets a new string property value. The latest property value will be stored.
</summary>
<param name="propertyName"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.SetProperty(System.String,System.Double)">
<summary>
Sets a new object property value. The latest property value will be stored.
</summary>
<param name="propertyName"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.GetProperty(System.String)">
<summary>
Gets a specific property value.
</summary>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.RemoveProperty(System.String)">
<summary>
Removes a specific property value.
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.GetAllProperties">
<summary>
Gets all properties with undefined order.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IPersistentPropertyBag.Clear">
<summary>
Removes all properties from persistent property bag.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.MonoRegistryPropertyBag">
<summary>
Implements a registry property bag that uses a file base registry for use on MacOS
or Unix. It used to use Mono's implementation of Win32.Registry but now uses a slimed
clone so that can be run on .NET Core on non-Windows platforms.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.RegistryPropertyBag">
<summary>
Stores a property bag in a registry.
Different exe names do not override each other properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.RegistryPropertyBag.SafeRegistryCall(System.Action)">
<summary>
Executes an action that manipulates registry and catches safe exceptions.
A safe exception can be a result of the registry key been deleted by another process
or if a user has manipulated with registry to restrict permissions.
</summary>
<param name="action"></param>
<returns>True is the action was executed and false if the action has thrown an safe registry exception.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.RegistryPropertyBag.Persist">
<summary>Persists any changes. This is a NoOp for this implementation</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Native.Mac.MacFoundation">
<summary>
Native Mac runtime methods for CoreGraphics and other classes
Ported in part from: https://github.com/xamarin/xamarin-macios
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Native.Mac.MacRuntime">
<summary>
Native Mac runtime methods for accessing NSxxx methods and objects
Ported in part from: https://github.com/xamarin/xamarin-macios
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1">
<summary>
Dictionary of string to TValue that internally stores
keys with the given prefix string prepended. This is
useful for avoiding string allocations that would
otherwise be incurred by concatenating prefixes later
while still maintaining the appearance of a bag
that is indexed without the prefix.
</summary>
<typeparam name="TValue"></typeparam>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.withPrefix">
<summary>
The raw backing IDictionary of the PrefixedPropertyBag
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.#ctor(System.Collections.Generic.IDictionary{System.String,`0},System.String)">
<summary>
Constructs a PrefixedPropertyBag with the given backing dictionary and string key prefix
</summary>
<param name="backingDictionary">IDictionary store to use. Can be Dictionary or ConcurrentDictionary for example</param>
<param name="prefix"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Item(System.String)">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Keys">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Values">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Count">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.IsReadOnly">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Add(System.String,`0)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Add(System.Collections.Generic.KeyValuePair{System.String,`0})">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Clear">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Contains(System.Collections.Generic.KeyValuePair{System.String,`0})">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.ContainsKey(System.String)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.CopyTo(System.Collections.Generic.KeyValuePair{System.String,`0}[],System.Int32)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.GetEnumerator">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Remove(System.String)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.Remove(System.Collections.Generic.KeyValuePair{System.String,`0})">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.TryGetValue(System.String,`0@)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.System#Collections#IEnumerable#GetEnumerator">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.AddPrefixed(System.String,`0)">
<summary>
Adds or updates an element with the provided key and value.
Key must already be prefixed with the prefixed being
used by this PrefixedPropertyBag. This is useful in
cases where the key is a known constant as it allows
callers to avoid an extra string allocation.
</summary>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.RemovePrefixed(System.String)">
<summary>
Removes the element with the specified key.
Key must already be prefixed with the prefixed being
used by this PrefixedPropertyBag. This is useful in
cases where the key is a known constant as it allows
callers to avoid an extra string allocation.
</summary>
<param name="key"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.GetPrefixed(System.String)">
<summary>
Gets the value of the specified key.
Key must already be prefixed with the prefixed being
used by this PrefixedPropertyBag. This is useful in
cases where the key is a known constant as it allows
callers to avoid an extra string allocation.
</summary>
<param name="key"></param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.PrefixedEnumerable">
<summary>
Gets an IEnumerable of the prefixed key value pairs
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.PrefixedPropertyBag`1.AddRangePrefixed(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,`0}},System.Boolean)">
<summary>
Adds all KeyValuePairs from source to the bag.
Keys in the source must already be prefixed with
the prefixed being used by this PrefixedProeprtyBag.
</summary>
<param name="source"></param>
<param name="forceUpdate"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MacMachinePropertyProvider.InitializeSystemInformation">
<summary>
Initialize System information
We get this information from Win API call to GetNativeSystemInfo
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.MacOSPropertyProvider">
<summary>
OS Information Provider supply caller with necessary operating system information, such as
major version, minor version, product type and so on
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.MacOSPropertyProvider.InitializeOSVersionInfo">
<summary>
Initialize OS Version info structure by system values
We get this information from Win API call to GetVersionEx
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsHostPropertyProvider.InitializeIsRDPSession">
<summary>
Determines if we are in a Remote Desktop Session scenario by calling GetSystemMetrics function from WinAPI
</summary>
<returns>True, if in remote desktop session</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsMachinePropertyProvider.InitializeOSMemoryInformation">
<summary>
Initialize OS Memory information
We get this information from Win API call to GlobalMemoryStatusEx
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsMachinePropertyProvider.InitializeSystemInformation">
<summary>
Initialize System information
We get this information from Win API call to GetNativeSystemInfo
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsMachinePropertyProvider.IsVirtualMachine">
<summary>
Marked internal for tests. Because we add an additional property if its a VM (the VirtualMachineType),
we need to know if we're a VM during tests.
</summary>
<returns>True if its running on a VM.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsMachinePropertyProvider.InitializeIsDevBox">
<summary>
Determines if we are in a Microsoft Dev Box scenario by validating if the W365 registry key exists and if it does, if the partner Guid is the Dev Box partner Guid.
</summary>
<returns>True, if its a Dev Box.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsMachinePropertyProvider.InitializeVirtualMachineTypeValue">
<summary>
Initialize the Virtual Machine type value. If its in the registry, get it from there. Otherwise access it via the WinAPI
</summary>
<returns>uint value for the virtual machine type</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler">
<summary>
Class created to schedule actions either immediately or after a specified delay.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.Schedule(System.Action,System.Nullable{System.Threading.CancellationToken})">
<summary>
Standalone function. Schedules the action to be run by Task.Run.
</summary>
<param name="action"></param>
<param name="token"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.Schedule(System.Func{System.Threading.Tasks.Task},System.Nullable{System.Threading.CancellationToken})">
<summary>
Standalone function. Schedules the delegate to be run by Task.Run.
</summary>
<param name="actionTask"></param>
<param name="token"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.InitializeTimed(System.TimeSpan)">
<summary>
Initializes the timed feature of this scheduler. The specified
time will be set for every subsequent call of ScheduleTimed.
</summary>
<param name="delay"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.ScheduleTimed(System.Action,System.Boolean)">
<summary>
Schedule processing event for the background, using TaskTimer
</summary>
<param name="action"></param>
<param name="recurring"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.ScheduleTimed(System.Func{System.Threading.Tasks.Task},System.Boolean)">
<summary>
Schedule processing event for the background, using TaskTimer
</summary>
<param name="actionTask"></param>
<param name="recurring"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.CanEnterTimedDelegate">
<summary>
Function that checks whether we should execute timed delegate, in particular,
prevents re-entry if used with a multi-thread lock.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.ExitTimedDelegate">
<summary>
Function that should be called after the delegate completes operation.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryScheduler.CancelTimed(System.Boolean)">
<summary>
In case action is scheduled - cancel it
In case no action is scheduled - do nothing
</summary>
<param name="wait"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.Schedule(System.Func{System.Threading.Tasks.Task},System.Nullable{System.Threading.CancellationToken})">
<summary>
Standalone function. Schedules the action to be run by Task.Run.
</summary>
<param name="actionTask"></param>
<param name="token"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.Schedule(System.Action,System.Nullable{System.Threading.CancellationToken})">
<summary>
Standalone function. Schedules the delegate to be run by Task.Run.
</summary>
<param name="action"></param>
<param name="token"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.InitializeTimed(System.TimeSpan)">
<summary>
Initializes the timed feature of this scheduler. The specified
time will be set for every subsequent call of ScheduleTimed.
</summary>
<param name="delay"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.ScheduleTimed(System.Func{System.Threading.Tasks.Task},System.Boolean)">
<summary>
Schedule processing event for the background, using TaskTimer
</summary>
<param name="actionTask"></param>
<param name="recurring"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.ScheduleTimed(System.Action,System.Boolean)">
<summary>
Schedule processing event for the background, using TaskTimer
</summary>
<param name="action"></param>
<param name="recurring"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.CanEnterTimedDelegate">
<summary>
Function that checks whether we should execute timed delegate, in particular,
prevents re-entry if used with a multi-thread lock.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.ExitTimedDelegate">
<summary>
Function that should be called after the delegate completes operation.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScheduler.CancelTimed(System.Boolean)">
<summary>
In case action is scheduled - cancel it
In case no action is scheduled - do nothing
</summary>
<param name="wait"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SensitiveDataScrubber.ISensitiveDataScrubber">
<summary>
Interface that defines the ability to scrub sensitive data from telemetry.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SensitiveDataScrubber.ISensitiveDataScrubber.ContainsSensitiveData(System.String,System.Boolean)">
<summary>
The propertyValue is matched on the regex and the string is redacted in the case there is a match.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SensitiveDataScrubber.SensitiveDataScrubber">
<summary>
Implementation of the ISensitiveDataScrubber that reads in regexes and then redacts properties in case sensitive data is found.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SensitiveDataScrubber.SensitiveDataScrubber.#ctor">
<summary>
Constructor that will prospectively pull in the regexes to parse and then compiles one regex object with
the said parsed regexes.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SensitiveDataScrubber.SensitiveDataScrubber.ContainsSensitiveData(System.String,System.Boolean)">
<summary>
The propertyValue is matched on the regex and the string is redacted in the case there is a match.
</summary>
<param name="propertyValue"></param>
<param name="scrubAllTypesOfPersonalData"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Services.IRemoteFileReader">
<summary>
Interface to read the file asynchronously. It is up to the owner of the implementation
to decide which file to read and from what location.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Services.IRemoteFileReaderFactory">
<summary>
Factory interface which create new instance of the IRemoteFileReader
for customers to the use it to get remote file.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Services.NativeFlagsEx.ToFILE_ACCESS_FLAGS(System.IO.FileAccess)">
<summary>
Converts System.IO.FileAccess to Windows API FILE_ACCESS_FLAGS flags. Supports limited conversions.
</summary>
<param name="fileAccess">System.IO.FileAccess objects to convert.</param>
<returns>The flag representation of FILE_ACCESS_FLAGS conversion.</returns>
<exception cref="T:System.NotImplementedException">If the conversion that is being requested doesn't exist, this will be thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Services.NativeFlagsEx.ToFILE_SHARE_MODE(System.IO.FileShare)">
<summary>
Converts System.IO.FileShare to Windows API FILE_SHARE_MODE flags. Supports limited conversions.
</summary>
<param name="fileShare">System.IO.FileShare object to convert.</param>
<returns>The flag representation of FILE_SHARE_MODE conversion.</returns>
<exception cref="T:System.NotImplementedException">If the conversion that is being requested doesn't exist, this will be thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Services.OSInformationProvider.InitializeOSVersionInfo">
<summary>
Initialize OS Version info structure by system values
We get this information from Win API call to GetVersionEx
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Services.StringEx.NormalizePath(System.String)">
<summary>
Normalize path to the Registry friendly. For example, if path is:
" /microsoft/visualstudio//telemetry/experiment/shippedflights " it will be transformed to:
"microsoft\visualstudio\telemetry\experiment\shippedflights".
- trims all whitespace and slash characters from the beginning and end of the string;
- removes multiple slashes occur in the middle;
- convert all '/' slash characters to '\'.
</summary>
<param name="path"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Services.StringEx.GetRootSubCollectionOfPath(System.String)">
<summary>
Gets the root subcollection of a path. For example, if path is:
microsoft\visualstudio\telemetry, the root subcollection is microsoft
</summary>
<param name="path"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Services.StringEx.IsSkippable(System.Char)">
<summary>
Check whether character is skippable.
</summary>
<param name="c">Input character</param>
<returns>True if character can be skipped</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsClientWrapper">
<summary>
Default client wrapper - create direct AI channel
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsClientWrapper.TryGetTransport(System.String@)">
<summary>
Return current transport
</summary>
<param name="transportUsed"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsClientWrapper.CreateAppInsightsChannel(Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration)">
<summary>
Create Asimov AI channel
</summary>
<param name="config"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsSessionChannel">
<summary>
Asimov AppInsights channel. Post data to the Vortex directly or using UTC.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsSessionChannel.AppInsightsPersistencePath">
<summary>
This path is for the folder with pending packets to send to backend.
It should be in consistence with \Shared\AI\TelemetryChannels\PersistenceChannel\Windows\WindowsStorage.cs
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsSessionChannel.CheckPendingEventsAndStartChannel(System.String)">
<summary>
Workaround for sending Asimov pending events which was sent by the VS Setup
</summary>
<param name="sessionId"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsSessionChannel.CreateAppInsightsClientWrapper">
<summary>
Obtain AppInsights client wrapper
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsSessionChannel.TryUploadPendingFiles(System.String,System.String)">
<summary>
Try to check specified base path for the pending files and in case
pending files are found explicitly start channel to send events.
</summary>
<param name="environmentFolderName"></param>
<param name="sessionId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.AsimovAppInsightsSessionChannel.AppendCommonSchemaVersion(Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry)">
<summary>
Appends the Common Schema version to the EventTelemetry object
Common Schema version is dependant on the EndPoint destination
</summary>
<param name="eventTelemetry"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsClientWrapper">
<summary>
Base AppInsightsClientWrapper. Implement all necessary functionality for the work with AI channel.
Derived by real channels: Default, Asimov
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsClientWrapper.TrackEvent(Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry)">
<summary>
Send the specified telemetry event to Application Insights.
</summary>
<param name="ev">Event</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsClientWrapper.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Transmit all internal buffers to the end-point and dispose channel.
</summary>
<param name="token">Cancellation token</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsClientWrapper.CreateAppInsightsChannel(Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration)">
<summary>
Create real AppInsights transport channel
</summary>
<param name="config"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel">
<summary>
Base AppInsights channel. Implements base operations on AI session channel
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.isChannelStarted">
<summary>
Is channel already started. Prevent from start channel several times.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.ChannelId">
<summary>
Gets the channel id, known by the concrete implementation.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.TransportUsed">
<summary>
Gets used transport for the Asimov channel. Expected to be called after Start() method.
In case it is called before Start() exception will be thrown.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.Properties">
<summary>
Gets or sets channel properties. It could restricts access to the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.#ctor(System.String,System.String,Microsoft.VisualStudio.Telemetry.SessionChannel.IAppInsightsClientWrapper,Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties)">
<summary>
Initialize BaseAppInsightsSessionChannel and calculate used transport.
Calculate used transport by asking concrete implementation if specific transport is used.
In case specific transport is not used transportUsed just channel id.
In case specific transport is used (as for combined channel UTC/Vortex)
transportUsed is channelid.specific transport
</summary>
<param name="instrumentationKey"></param>
<param name="userId"></param>
<param name="overridedClientWrapper"></param>
<param name="defaultChannelProperties"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.Start(System.String)">
<summary>
Start session channel opens channel and make it ready to send events.
</summary>
<param name="sessionId"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Transmit all internal buffers to the end-point and dispose channel.
</summary>
<param name="token">Cancellation token</param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.IsStarted">
<summary>
Gets a value indicating whether channel is started
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.PersistenceFolderName">
<summary>
Gets the folder name for the Persistence storage.
This is where the transmission files are stored.
If/when this convention changes, PersistentStorageReceiver and other IReceivers must also be updated.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Posts a telemetry event.
Converts a TelemetryEvent object to AIContracts.EventTelemetry.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs})">
<summary>
Post routed event
</summary>
<param name="telemetryEvent"></param>
<param name="args"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.AppendCommonSchemaVersion(Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry)">
<summary>
Appends the Common Schema version to the EventTelemetry object
Common Schema version is dependant on the EndPoint destination
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.BaseAppInsightsSessionChannel.CreateAppInsightsClientWrapper">
<summary>
Obtain AppInsights client wrapper
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorClientWrapper">
<summary>
Default client wrapper - create direct AI channel
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorClientWrapper.TryGetTransport(System.String@)">
<summary>
Return current transport
</summary>
<param name="transportUsed"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorClientWrapper.CreateAppInsightsChannel(Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration)">
<summary>
Create Asimov AI channel
</summary>
<param name="config"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorSessionChannel">
<summary>
Collector++ channel. Post data to the Collector directly or using UTC.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorSessionChannel.AppInsightsPersistencePath">
<summary>
This path is for the folder with pending packets to send to backend.
It should be in consistence with \Shared\AI\TelemetryChannels\PersistenceChannel\Windows\WindowsStorage.cs
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorSessionChannel.CheckPendingEventsAndStartChannel(System.String)">
<summary>
Workaround for sending Asimov pending events which was sent by the VS Setup
</summary>
<param name="sessionId"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorSessionChannel.CreateAppInsightsClientWrapper">
<summary>
Obtain AppInsights client wrapper
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorSessionChannel.TryUploadPendingFiles(System.String,System.String)">
<summary>
Try to check specified base path for the pending files and in case
pending files are found explicitly start channel to send events.
</summary>
<param name="environmentFolderName"></param>
<param name="sessionId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.CollectorSessionChannel.AppendCommonSchemaVersion(Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry)">
<summary>
Appends the Common Schema version to the EventTelemetry object
Common Schema version is dependent on the EndPoint destination
</summary>
<param name="eventTelemetry"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.DefaultAppInsightsClientWrapper">
<summary>
Default client wrapper - create direct AI channel
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.DefaultAppInsightsClientWrapper.TryGetTransport(System.String@)">
<summary>
For AI channel no specific transport is used, so we return false
</summary>
<param name="transportUsed"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.DefaultAppInsightsClientWrapper.CreateAppInsightsChannel(Microsoft.VisualStudio.ApplicationInsights.Extensibility.TelemetryConfiguration)">
<summary>
Create default InProcess channel
</summary>
<param name="config"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.DefaultAppInsightsSessionChannel">
<summary>
Default AppInsights channel. Post data to the AI backend directly.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.DefaultAppInsightsSessionChannel.CreateAppInsightsClientWrapper">
<summary>
Obtain AppInsights client wrapper
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.DefaultAppInsightsSessionChannel.AppendCommonSchemaVersion(Microsoft.VisualStudio.ApplicationInsights.DataContracts.EventTelemetry)">
<summary>
Appends the Common Schema version to the EventTelemetry object
Common Schema version is dependant on the EndPoint destination
</summary>
<param name="eventTelemetry"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.IAppInsightsLifecycleManager">
<summary>
Interface for the AppInsights Lifecycle Manager.
Manager is necessary for the send signals to the
AI SDK in order to properly handle offline telemetry.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.IAppInsightsLifecycleManager.ApplicationStart">
<summary>
Application starts
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.IAppInsightsLifecycleManager.ApplicationStop">
<summary>
Application stops
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.ChannelId">
<summary>
Gets unique channel id
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.Properties">
<summary>
Gets or sets channel properties. It could restricts access to the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs})">
<summary>
Post routed event
</summary>
<param name="telemetryEvent"></param>
<param name="args"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.IsStarted">
<summary>
Gets a value indicating whether session is started
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.ProcessEvents">
<summary>
Process events from the queue.
Process all events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Transmit all internal buffers to the end-point and dispose channel.
</summary>
<param name="token">Cancellation token</param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.InitializedAction">
<summary>
Sets the action that is fired after initial events have made it through to
channels.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.EventProcessorChannel.DisposeManagedResources">
<summary>
Implement Dispose resources
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.GlobalTelemetryTestChannel">
<summary>
Global test channel for all sessions. All events from all sessions are captured here.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.GlobalTelemetryTestChannel.#ctor">
<summary>
Private constructor to avoid create this object
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.IDisposeAndTransmit">
<summary>
Channels which support dispose and transmit functionality.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.IDisposeAndTransmit.DisposeAndTransmitAsync(System.Threading.CancellationToken)">
<summary>
Transmit all internal buffers to the end-point and dispose channel.
</summary>
<param name="token">Cancellation token</param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel">
<summary>
Common interface for all session channels.
Session channel depends on type of channel. It could be AppInsights channel, SQM channel, ETW and so on.
Interface defines methods for sending events through the channel during one session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel.ChannelId">
<summary>
Gets channel id
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel.TransportUsed">
<summary>
Gets the transport used to post event.
Format: id[.transport]
Usually it just matches id, but sometime it more detailed.
For example, in the case with Asimov channel it could be:
aiutc.utc or aiutc.vortex
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel.Properties">
<summary>
Gets or sets the type of a session
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel.IsStarted">
<summary>
Gets a value indicating whether session already started
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Posts a telemetry event.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs})">
<summary>
Posts a routed telemetry event.
</summary>
<param name="telemetryEvent"></param>
<param name="args"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel.Start(System.String)">
<summary>
Start session channel. SessionId required for some channels.
</summary>
<param name="sessionId"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties">
<summary>
Each channel has properties
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties.None">
<summary>
No specific settings
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties.Default">
<summary>
This channel is used to transfer events by default (for ex. ai07)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties.InternalOnly">
<summary>
Channel is used for internal users only
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties.Test">
<summary>
For unit test purposes
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties.NotForUnitTest">
<summary>
This channel is not supposed to be used during unit tests
because it is real channel
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.SessionChannel.ChannelProperties.DevChannel">
<summary>
Developer's channel is used to collect all events, even those
which are going to be completely suppressed.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryBufferChannel.Properties">
<summary>
Gets or sets type of a session
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryBufferChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Post telemetry event information
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryBufferChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs})">
<summary>
Post routed event
</summary>
<param name="telemetryEvent"></param>
<param name="args"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryBufferChannel.Start(System.String)">
<summary>
Session Start
</summary>
<param name="sessionID"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryBufferChannel.IsStarted">
<summary>
Gets a value indicating whether session is started
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryBufferChannel.TryDequeue(Microsoft.VisualStudio.Telemetry.TelemetryEvent@)">
<summary>
Try to get current TelemetryEvent from the queue and remove it from queue
</summary>
<param name="telemetryEvent"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel">
<summary>
Represents logging for posting events in the VSTelemetryLibrary to local log file
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel.Properties">
<summary>
Gets or sets channel properties. It could restricts access to the channel.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel.#ctor(Microsoft.VisualStudio.Telemetry.ITelemetryLogSettingsProvider,Microsoft.VisualStudio.Telemetry.ITelemetryLogFile{Microsoft.VisualStudio.Telemetry.TelemetryEvent})">
<summary>
The channel for logging telemetry events to file
</summary>
<param name="settingsProvider"></param>
<param name="logFile"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Post telemetry event information to log file
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs})">
<summary>
Post routed event
</summary>
<param name="telemetryEvent"></param>
<param name="args"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel.Start(System.String)">
<summary>
Channel Start
Get the session ID information and start a log file writer
</summary>
<param name="sessionID"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel.IsStarted">
<summary>
Gets a value indicating whether channel is started
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.SessionChannel.TelemetryLogToFileChannel.DisposeManagedResources">
<summary>
Dispose managed resources.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.SessionChannel.WatsonSessionChannel">
<summary>
For FaultEvents, posting to Watson
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.SessionChannel.WatsonSessionChannel.FaultEventWatsonSamplePercent">
<summary>
Gets the percent of expensive operations that will be collected, i.e. 5 means 5% of occurrences will actually create dumps
Can be changed by test code
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventWatsonSampleRate /t REG_DWORD /d 100 /f
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryActivity">
<summary>
[OBSOLETE]
Please use data model <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> to track performance in dev15 and above releases.
More details is at http://aka.ms/datamodel.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryActivity.CorrelationId">
<summary>
Gets activity correlation id for the current activity
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryActivity.ParentCorrelationId">
<summary>
Gets correlation Id for this activity's parent activity
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryActivity.StartTime">
<summary>
Gets begin timestamp of the activity (in UTC)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryActivity.EndTime">
<summary>
Gets end timestamp of the activity (in UTC)
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryActivity.#ctor(System.String)">
<summary>
Creates the new telemetry activity class.
</summary>
<param name="eventName">Event name that is unique, not null and not empty.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryActivity.#ctor(System.String,System.Guid)">
<summary>
Creates a new telemetry activity parented to another activity
</summary>
<param name="eventName">Event name that is unique, not null and not empty.</param>
<param name="parentCorrelationId">Correlation Id of the parent event</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryActivity.Start">
<summary>
Marks the activity as began and registers the current timestamp
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryActivity.End">
<summary>
Marks the activity as ended and registers the current timestamp
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryActivity.End(System.TimeSpan)">
<summary>
Marks the activity as ended and sets the duration and start time per given the duration
</summary>
<param name="duration">Duration of the activity in milliseconds</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryActivity.GetDefaultEventProperties(System.Int64,System.Int64,System.String)">
<summary>
Returns default properties that should be on each TelemetryEvent
</summary>
<param name="eventTime">A time when the event happend</param>
<param name="processStartTime">A time when the session started</param>
<param name="sessionId"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryComplexProperty">
<summary>
This class represents a complex value support, such as arrays, dictionaries. Processor will convert it to the JSON string.
Also for such types we relax restrictions of the 1K for the property value.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryComplexProperty.Value">
<summary>
Gets the raw value contained as the property value. We need the raw value
since we want measurements for them, if available.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryComplexProperty.#ctor(System.Object)">
<summary>
Creates the Complex Object. Throws if val is null.
</summary>
<param name="val"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryComplexProperty.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryContext">
<summary>
Telemetry Context is a concept of a unit of work.
More details <a href="http://devdiv/sites/vsplat/Fundamentals/Shared Documents/Telemetry/Projects/Telemetry API/TelemetrySession Speclet.docx?Web=1">here</a>
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryContext.SharedProperties">
<summary>
Gets Shared properties that are added to each event until the context is closed.
Shared properties have prefix "Context.%ContextName%."
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryContext.RealtimeSharedProperties">
<summary>
Gets Realtime Shared properties calculated and added to each event until the context is closed.
Shared properties have prefix "Context.%ContextName%."
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryContext.HasSharedProperties">
<summary>
Gets a value indicating whether we have shared properties.
This is implemented in order to avoid instantiation of empty SharedProperties dictionary
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryContext.ContextName">
<summary>
Gets ContextName which serves as convenient way to differ between properties from different contexts.
ContextName added to the prefix of the shared properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.PostProperty(System.String,System.Object)">
<summary>
Post regular context property.
That property is posted to the backend immediately and not attached to the every event.
You may want to consider <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty" />
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.PostProperty(System.String,System.Object,System.Boolean)">
<summary>
Post context property. That property is posted to the backend immediately and not attached to the every event.
Property could be reserved or regular.
Reserved property will accomplished with prefix "Reserved."
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
<param name="isReserved">is property reserved</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.#ctor(System.String,Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal,Microsoft.VisualStudio.Telemetry.ITelemetryScheduler,System.Boolean,System.Action{Microsoft.VisualStudio.Telemetry.TelemetryContext})">
<summary>
Create TelemetrySessionContext with the name
</summary>
<param name="contextName"></param>
<param name="telemetrySessionInternal">Session which owns this context</param>
<param name="theScheduler"></param>
<param name="theOverrideInit"></param>
<param name="initializationAction"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.IsContextNameValid(System.String)">
<summary>
Check whether context name is valid
</summary>
<param name="contextName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.ProcessEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,System.Boolean)">
<summary>
Process telemetry event. Add all shared properties
</summary>
<param name="telemetryEvent"></param>
<param name="overwriteExisting"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.ProcessEventRealtime(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Add all real-time shared properties to event
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.ValidateEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Context event validator. We have to check that properties doesn't contain reserved prefixes
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.ValidatePropertyName(System.String)">
<summary>
Validate property name. Check whether property name prefix is not match to the reserved prefixes.
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.IsPropertyNameReserved(System.String)">
<summary>
Check whether property name is reserved
</summary>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.IsEventNameContextPostProperty(System.String)">
<summary>
Validate whether event name is context/postproperty
</summary>
<param name="eventName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.DisposeManagedResources">
<summary>
Dispose managed resources implementation
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.ValidateEventName(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Validate event name in terms of the context validation.
Name is valid if it is not reserved.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.ValidateEventProperties(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Validate event properties in terms of the context validation.
Property is valid if it is not contain reserved prefix.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.BuildEventName(System.String)">
<summary>
Build context event name
</summary>
<param name="eventName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.BuildStartEvent">
<summary>
Build context start event
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.BuildCloseEvent">
<summary>
Build context end event
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.AddReservedPropertiesToTheEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Add reserved properties (Id and Name) to the event
<a href="http://devdiv/sites/vsplat/Fundamentals/Shared Documents/Telemetry/Projects/Telemetry API/TelemetrySession Speclet.docx?Web=1" />
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryContext.CreateTelemetryEvent(System.String)">
<summary>
Create a telemetry event
</summary>
<param name="eventName"></param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryCredScanProperty.StringValue">
<summary>
Gets the value of the property (if not scrubbed) or the ReplacementText if it is scrubbed;
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryCredScanProperty.ElapsedTimeInMs">
<summary>
Gets time taken for validating the value needed to be scrubbed or not.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryCredScanProperty.ReplacementText">
<summary>
Replacement text if a credential is detected.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject">
<summary>
Helper base class to provide virtual method for releasing managed
resources and preventing from calling Dispose several times.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject.IsDisposed">
<summary>
Gets a value indicating whether session is deposed - to detect redundant calls
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject.Dispose">
<summary>
This code added to correctly implement the disposable pattern.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject.RequiresNotDisposed">
<summary>
This function throws an ObjectDisposedException if the object is disposed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryDisposableObject.DisposeManagedResources">
<summary>
User should implement it to dispose managed resources
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider">
<summary>
Default ETW implementation for telemetry service.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryKeywords">
<summary>
Event keywords for telemetry events. These are used to separate events related to each section of
telemetry API
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryKeywords.Service">
<summary>
Events related to service initialization, service wide messages
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryKeywords.Session">
<summary>
Events related to telemetry session initialization, session wide messages
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryKeywords.Event">
<summary>
Events related to telemetry event instances like posting events
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryKeywords.Activity">
<summary>
Events related to telemetry activity instances like start, stop, post events
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryKeywords.Context">
<summary>
Events related to telemetry context initialization, start, stop
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryEventData">
<summary>
Event data submitted for all telemetry event, contains basic session information
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryActivityDataWithDuration">
<summary>
Event data submitted with telemetry activity instances that were ended with specified duration
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.TelemetryEventDataVerbose">
<summary>
Verbose telemetry event/activity data, used to pass properties to ETW stream
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.#ctor">
<summary>
Creates a new Telemetry ETW provider.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.WriteActivityStartEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity)">
<summary>
Writes start event for a TelemetryActivity
</summary>
<param name="activity">Telemetry activity instance</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.WriteActivityStopEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity)">
<summary>
Writes stop event for a TelemetryActivity
</summary>
<param name="activity">Telemetry activity instance</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.WriteActivityEndWithDurationEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity)">
<summary>
Writes event for a TelemetryActivity that was ended with a specified duration
</summary>
<param name="activity">Telemetry activity instance</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.WriteActivityPostEvent(Microsoft.VisualStudio.Telemetry.TelemetryActivity,Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Writes an event for a TelemetryActivity when it is posted to a session.
</summary>
<param name="activity">Telemetry activity instance</param>
<param name="session"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEtwProvider.WriteTelemetryPostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent,Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Writes an event to indicate a telemetry event being posted to a session
</summary>
<param name="telemetryEvent">Telemetry event instance</param>
<param name="session"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryEvent">
<summary>
The class represents a telemetry event that can be posted to a server.
Class is NOT thread-safe
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEvent.SchemaVersion">
<summary>
Please contact vsdmcrew@microsoft.com before making any change.
Bump the version for any conditions below for data model events.
1. add new property.
2. remove property.
3. change the meaning of property value.
4. change the data type of property value.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEvent.DataModelApiSource">
<summary>
A string to indicate data source of telemetry event. It is used for backend server processing.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEvent.eventProperties">
<summary>
Event property key-value storage
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEvent.reservedEventProperties">
<summary>
Reserved properties key-value storage
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEvent.eventId">
<summary>
Each event should have its own unique id to be able to dedupe or match on a server side
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryEvent.severity">
<summary>
Severity level for this event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.IsOptOutFriendly">
<summary>
Gets or sets a value indicating whether event is friendly for the optOut session.
By default it is false.
If it is OptOut friendly it passes through with the event specific properties only.
This behaviour can be changed by manifest rules.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Severity">
<summary>
Gets or sets a severity level of the event.
The level is used for event consumer (e.g., ETW provider, backend reporting) to organize data easier.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.EventType">
<summary>
Gets event type for this event
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.EventSchemaVersion">
<summary>
Gets schema version for this event.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.DataSource">
<summary>
Gets data source.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation">
<summary>
Gets correlation of this event. It represents this event when correlated with other events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.#ctor(System.String)">
<summary>
Creates the new telemetry event instance.
You should consider choosing <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" />, <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />, <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />, <see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" />,
<see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty" />
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If your data point doesn't align with any VS Data Model entity, please don't force any association and continue to use this method.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="eventName">Event name that is unique, not null and not empty.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity)">
<summary>
Creates the new telemetry event instance with severity information.
You should consider choosing <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" />, <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />, <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />, <see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" />,
<see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty" />
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If your data point doesn't align with any VS Data Model entity, please don't force any association and continue to use this method.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="eventName">Event name that is unique, not null and not empty.</param>
<param name="severity">Severity level of the event.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlate(Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Correlate this event with other events via <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation" />.
</summary>
<param name="correlations">An array of <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" /> that represents the correlated events.</param>
<remarks>
This method is not thread-safe.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity,Microsoft.VisualStudio.Telemetry.DataModelEventType)">
<summary>
Creates the new telemetry event instance with specific information.
</summary>
<param name="eventName">Event name that is unique, not null and not empty.</param>
<param name="severity">Severity level of the event.</param>
<param name="eventType">Data Model type of this event. check <see cref="T:Microsoft.VisualStudio.Telemetry.DataModelEventType" /> for full type list. </param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.#ctor(System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation)">
<summary>
Creates the new telemetry event instance with specific information.
</summary>
<param name="eventName">Event name that is unique, not null and not empty.</param>
<param name="severity">Severity level of the event.</param>
<param name="correlation">Correlation value for this event.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.BuildChannelEvent(System.Int64,System.String)">
<summary>
Creates an event for a channel from this event and session start time.
Note: a returned event is not a pure copy of this event.
</summary>
<param name="processStartTime"></param>
<param name="sessionId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.CloneTelemetryEvent">
<summary>
Don't want to expose an interface, like IClonable publicly, so we use an internal method that clones from a ChannelEvent
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.CorrelateWithDescription(Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation,System.String)">
<summary>
Correlate this event with other event via <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation" /> with description information.
</summary>
<param name="correlation">The property <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" /> of correlated event.</param>
<param name="description">
A description string for this correlation information, such as name, hint, tag, category.
Please don't include comma which is a reserved char.
It could be null or empty string.
</param>
<remarks>
This method is not thread-safe.
</remarks>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Name">
<summary>
Gets current event name
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Properties">
<summary>
Gets a dictionary of event properties.
Properties are dimensions that aggregated data can be sliced by.
The key is a property name that is unique, not null and not empty.
The value is any object that represents a property value.
Telemetry channels must use value.ToString(CultureInfo.InvariantCulture)
to send the value to a server as a string.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.HasProperties">
<summary>
Gets a value indicating whether properties already created.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.PostTimestamp">
<summary>
Gets or sets timestamp of the event when it is going to be posted
Set by TelemetrySession
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.SharedPropertyBags">
<summary>
Gets shared property bags
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.ReservedProperties">
<summary>
Gets a dictionary of reserved event properties.
These properties are for internal purposes, such as
event timestamps, activity attributes.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.HasReservedProperties">
<summary>
Gets a value indicating whether reserved properties already created.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.IsPropertyNameReserved(System.String)">
<summary>
Check whether property name is reserved
</summary>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.GetDefaultEventProperties(System.Int64,System.Int64,System.String)">
<summary>
Returns default properties that should be on each TelemetryEvent
</summary>
<param name="eventTime">A time when the event happend</param>
<param name="processStartTime">A time when the session started</param>
<param name="sessionId"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.AsReservedProperty(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
<summary>
Converts property names to "Reserved." prefixed property names as needed
</summary>
<param name="property"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.InitDataModelBasicProperties">
<summary>
Add data model common properties to telemetry events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryEvent.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryHashedProperty">
<summary>
This class represents a property that should be hashed. During processing
the raw value contained will be turned into a hashed value by a cryptology algorithm.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryHashedProperty.StringValue">
<summary>
Gets the string value contained to be hashed. We pre-ToString
the value, since we need InvariantCulture to guarantee that values
like double always produce the same results.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryHashedProperty.RawValue">
<summary>
Gets the raw value contained as the property value. We need the raw value
since we want measurements for them, if available.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryHashedProperty.#ctor(System.Object)">
<summary>
Creates the Hashed Object and converts to string. Throws if val is null.
</summary>
<param name="val"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryHashedProperty.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryManifestAction.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryManifestMatch.ValidateItself">
<summary>
Validates only 'this' class but not children.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryManifestMatch.GetChildren">
<summary>
Returns all children.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryManifestMatchValue.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryManifestMatchValue.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryManifestParser">
<summary>
Parse manifest stream and create an object
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryManifestParser.Parse(System.String)">
<summary>
Parse manifest from the string
</summary>
<param name="jsonString"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs">
<summary>
ITelemetryManifestRouteArgs interface for the providing arguments to the router
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetryManifestRouteArgs.Validate">
<summary>
Validate arguments on post-parsing stage to avoid validate
each time during posting events.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.Telemetry.ITelemetryManifestManager.UpdateTelemetryManifestStatusEvent">
<summary>
Event is raised when one of the following is happened:
- new manifest successfully read and parsed
- new manifest successfully downloaded and parsed
- reading manifest failed
- downloading manifest failed
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetryManifestManagerBuilder">
<summary>
Builds a TelemetryManifestManager from the TelemetrySession.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestEventArgs.TelemetryManifest">
<summary>
Gets the successfully loaded manifest if any
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestEventArgs.IsSuccess">
<summary>
Gets a value indicating whether the operation (load/download) succeeded
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestManagerBuilder">
<summary>
Builds a TelemetryManifestManager from the telemetrySession
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestManagerBuilder.#ctor">
<summary>
Constructs a builder using defaults for some of the member variables. The null variables will be populated later.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestManagerBuilder.#ctor(System.Object,Microsoft.VisualStudio.Telemetry.ITelemetryManifestManagerSettings,Microsoft.VisualStudio.Telemetry.ITelemetryManifestParser,Microsoft.VisualStudio.Telemetry.ITelemetryScheduler)">
<summary>
Constructs a builder using explicitly supplied member variables.
</summary>
<param name="theRemoteControlClient"></param>
<param name="theSettings"></param>
<param name="theManifestParser"></param>
<param name="theScheduler"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestManagerBuilder.Build(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Builds the manifest manager using the telemetrySession.
</summary>
<param name="telemetrySession"></param>
<returns></returns>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryManifest.FormatVersion">
<summary>
Format version specifies version manifest file format
that current binaries are able to recognize.
It is primarily used in the TelemetryManifestFileDownloader
to request correct version from the server.
This number is incremented when breaking changes in format are occurred.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifest.BuildDefaultManifest">
<summary>
Build default manifest.
It will contain default channels only
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifest.Validate">
<summary>
Validate manifest object structure
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifest.CalculateAllSamplings(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Initializes all TelemetryManifestMatchSample.IsSampleActive.
The initialization is based on information from the given session,
such as machine id, session id etc.
</summary>
<param name="session"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifest.ValidateAfterDeserialization(System.Runtime.Serialization.StreamingContext)">
<summary>
Start validation of the manifest immediately after deserialization
</summary>
<param name="context"></param>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExclude.excludeAll">
<summary>
Calculated field on a deserialization step
Channel id is equal to '*' make it true
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExclude.Priority">
<summary>
Gets priority which is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExclude.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using telemetryManifestContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false if it is last action to execute.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether is it allowed to the keep executing next actions</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExclude.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExcludeProperty.ExcludeProperty">
<summary>
Gets or sets the name of property to exclude.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExcludeProperty.Priority">
<summary>
Gets the priority of rule in processing.
</summary>
<remarks>
This is always <see cref="F:Microsoft.VisualStudio.Telemetry.ActionPriorityConstants.ManifestExcludePropertyPriority" />.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExcludeProperty.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Excludes the property identified by <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExcludeProperty.ExcludeProperty" /> from the event.
</summary>
<param name="eventProcessorContext">Event processor context.</param>
<returns>True in all cases.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExcludeProperty.Validate">
<summary>
Validate the content of the rule.
</summary>
<exception cref="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestValidationException">Thrown if <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionExcludeProperty.ExcludeProperty" /> is null or white space.</exception>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionHashed.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionHashed.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using eventProcessorContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false if it is last action to execute.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether is it allowed to the keep executing next actions</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionHashed.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action every time during
posting events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutBase">
<summary>
Base class for all manifest OptOut actions
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutBase.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Default Execute method checks if session is OptedOut and call specific method
</summary>
<param name="eventProcessorContext"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutBase.Validate">
<summary>
By default no validation needed
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutBase.ExecuteOptOutAction(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Each deriver should implement this specific OptOut action
</summary>
<param name="eventProcessorContext"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutExcludeEvents">
<summary>
Explicitily exclude matched events from the OptOut session, even if these events were
included by the custom OptOut action
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutExcludeEvents.ExecuteOptOutAction(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Implementation of the TelemetryManifestActionOptOutBase.ExecuteOptOutAction method
Logic is very simple. If event matches current conditions then it is not valid for the OptOut session
</summary>
<param name="eventProcessorContext"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutExcludeProperties">
<summary>
Explicitily exclude properties from the matched events from the OptOut session,
even if these properties were included by the custom OptOut action
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutExcludeProperties.ProcessPropertyName(System.String,Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Implementation of the ProcessPropertyName
</summary>
<param name="propertyName"></param>
<param name="eventProcessorContext"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutIncludeEvents">
<summary>
Explicitily include matched events from the OptOut session
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutIncludeEvents.ExecuteOptOutAction(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Implementation of the TelemetryManifestActionOptOutBase.ExecuteOptOutAction method
Logic is very simple. If event matches current conditions then it is valid for the OptOut session
</summary>
<param name="eventProcessorContext"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutIncludeProperties">
<summary>
Explicitily include properties from the matched events for the OptOut session
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutIncludeProperties.ProcessPropertyName(System.String,Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Implementation of the ProcessPropertyName
</summary>
<param name="propertyName"></param>
<param name="eventProcessorContext"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutPropertiesBase">
<summary>
Base class for the work with the OptOut properties
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutPropertiesBase.PropertiesImpl">
<summary>
Gets or sets the properties used by the action.
Note: derived classes should never set null to the property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutPropertiesBase.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionOptOutPropertiesBase.ExecuteOptOutAction(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Implementation of the TelemetryManifestActionOptOutBase.ExecuteOptOutAction method
We need to include/exclude matched properties from/to event when user is OptedOut
</summary>
<param name="eventProcessorContext"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionPii.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionPii.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using eventProcessorContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false if it is last action to execute.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether is it allowed to the keep executing next actions</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionPii.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionRoute.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionRoute.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using telemetryManifestContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false if it is last action to execute.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether is it allowed to the keep executing next actions</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionRoute.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionThrottleBase">
<summary>
Base class for all manifest OptOut actions
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionThrottleBase.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Default Execute method checks if session is OptedOut and call specific method
</summary>
<param name="eventProcessorContext"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionThrottleBase.Validate">
<summary>
By default no validation needed
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestActionThrottleBase.ExecuteThrottlingAction(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Each deriver should implement this specific OptOut action
</summary>
<param name="eventProcessorContext"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidAction">
<summary>
Invalid action is necessary for specify invalid (unrecognized) action on JSON deserialization stage.
During rule validation stage this action should be ignored and removed from the action list.
It allows us to partitially parse manifest files with new actions.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidAction.Priority">
<summary>
Gets action priority. 0 - highest, Inf - lowest
Priority is a hardcoded property we use to sort actions for executing.
We don't want to change it from manifest.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidAction.Execute(Microsoft.VisualStudio.Telemetry.IEventProcessorContext)">
<summary>
Execute action on event, using telemetryManifestContext as a provider of the necessary information.
Return true if it is allowed to execute next actions.
Return false action forbids the event.
</summary>
<param name="eventProcessorContext"></param>
<returns>Indicator, whether current action is not explicitely forbid current event</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidAction.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidMatchItem">
<summary>
Invalid match item is necessary for specify invalid (unrecognized) match item on JSON deserialization stage.
During rule validation stage this item throws an exception and whole rule will be removed from the rule list.
It allows us to partitially parse manifest files with new matching format.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidMatchItem.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Check, whether does event match conditions
</summary>
<param name="telemetryEvent"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidMatchItem.Microsoft#VisualStudio#Telemetry#ITelemetryManifestMatch#ValidateItself">
<summary>
Validates only 'this' class but not children. Explicity specify interface so that this method
can only be called an instance typed to the interface and not an implementation type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidMatchValueItem">
<summary>
Invalid match value item is necessary for specify invalid (unrecognized)
match value item on JSON deserialization stage.
During rule validation stage this item throws an exception
and whole rule will be removed from the rule list.
It allows us to partitially parse manifest files with new matching format.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidMatchValueItem.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidMatchValueItem.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidRouteArgs">
<summary>
Invalid route args item is necessary for specify invalid (unrecognized)
route args on JSON deserialization stage.
During rule validation stage this route action should be ignored and removed from the action list.
It allows us to partitially parse manifest files with new actions.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestInvalidRouteArgs.Validate">
<summary>
Validate arguments on post-parsing stage to avoid validate
each time during posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestLegacyStreamPropertyRouteArgs.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchAnd.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Check, whether does event match conditions
</summary>
<param name="telemetryEvent"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchAnd.Microsoft#VisualStudio#Telemetry#ITelemetryManifestMatch#ValidateItself">
<summary>
Validates only 'this' class but not children. Explicity specify interface so that this method
can only be called an instance typed to the interface and not an implementation type.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchEventName.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Check, whether does event match conditions
</summary>
<param name="telemetryEvent"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchEventName.Microsoft#VisualStudio#Telemetry#ITelemetryManifestMatch#ValidateItself">
<summary>
Validates only 'this' class but not children. Explicity specify interface so that this method
can only be called an instance typed to the interface and not an implementation type.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchExtension.Validate(Microsoft.VisualStudio.Telemetry.ITelemetryManifestMatch)">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
<param name="match"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchNot.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Check, whether does event match conditions
</summary>
<param name="telemetryEvent"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchNot.Microsoft#VisualStudio#Telemetry#ITelemetryManifestMatch#ValidateItself">
<summary>
Validates only 'this' class but not children. Explicity specify interface so that this method
can only be called an instance typed to the interface and not an implementation type.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchOr.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Check, whether does event match conditions
</summary>
<param name="telemetryEvent"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchOr.Microsoft#VisualStudio#Telemetry#ITelemetryManifestMatch#ValidateItself">
<summary>
Validates only 'this' class but not children. Explicity specify interface so that this method
can only be called an instance typed to the interface and not an implementation type.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchPropertyValue.IsEventMatch(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Check, whether does event match conditions
</summary>
<param name="telemetryEvent"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchPropertyValue.Microsoft#VisualStudio#Telemetry#ITelemetryManifestMatch#ValidateItself">
<summary>
Validates only 'this' class but not children. Explicity specify interface so that this method
can only be called an instance typed to the interface and not an implementation type.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchSampling.Path">
<summary>
Contains sampling and correspoding rule.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchSampling.Path.FullName">
<summary>
Gets full sampling name.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchSampling.Microsoft#VisualStudio#Telemetry#ITelemetryManifestMatch#ValidateItself">
<summary>
Validates only 'this' class but not children. Explicity specify interface so that this method
can only be called an instance typed to the interface and not an implementation type.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueContains.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueContains.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueEndsWith.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueEndsWith.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueEq.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueEq.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueExists">
<summary>
Match event if property exists in the event.
Syntax
{
property : "VS.Core.SKU",
value : {
exists : true
}
}
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueExists.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
If property is exist this method will be called.
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueExists.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueGt.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueGt.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueLt.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueLt.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueStartsWith.IsMatch(System.Object)">
<summary>
Check, whether passed value is match condition
</summary>
<param name="valueToCompare"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestMatchValueStartsWith.Validate">
<summary>
Validate rule on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestParserException">
<summary>
Parser exception class, using in the manifest parsers
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestRouter.Validate">
<summary>
Validate router on post-parsing stage to avoid validate each action everytime during
posting events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryManifestRule.Validate">
<summary>
Validate rule, called automatically by TelemetryManifest object after deserializaing
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryManifestValidationException">
<summary>
Validation exception class, using in the validation of the manifest after deserializaing
to check its correctness.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryNullEtwProvider">
<summary>
A null etw provider that does nothing with event calls.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryPiiProperty">
<summary>
This class represents a personally identifiable information property. During processing
the raw value contained will be turned into a hashed value by a cryptology algorithm.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryPiiProperty.#ctor(System.Object)">
<summary>
Creates the Pii Object and converts to string. Throws if val is null.
</summary>
<param name="val"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryPiiProperty.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBag">
<summary>
TelemetryPropertyBag is intended for the add properties to the subscibed events
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags">
<summary>
Collections of the property bags
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags.HasProperties``1(Microsoft.VisualStudio.Telemetry.ITelemetryPropertyBag{``0})">
<summary>
Check, whether we have properties
</summary>
<typeparam name="TValue"></typeparam>
<param name="bag"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags.Concurrent`1">
<summary>
Concurrent property bag
</summary>
<typeparam name="TValue"></typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags.Concurrent`1.#ctor">
<summary>
Initializer of the concurrent bag
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags.PrefixedConcurrent`1">
<summary>
Concurrent property bag with prefixed properties to avoid string duplication
</summary>
<typeparam name="TValue"></typeparam>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags.PrefixedConcurrent`1.#ctor(System.String)">
<summary>
Initializer of the concurrent bag
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryPropertyBags.PrefixedNotConcurrent`1">
<summary>
Non-concurrent property bag with prefixed properties to avoid string duplication
</summary>
<typeparam name="TValue"></typeparam>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1">
<summary>
This class is used to send data model events for an application work with duration and result.
The event could be either <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />
It sends one event at the beginning and the other one at the end of work.
</summary>
<typeparam name="T">An event being or inheriting from <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />, e.g., <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /></typeparam>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.IsEnd">
<summary>
Gets a value indicating whether the scope is end or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.EndEvent">
<summary>
Gets an event that will be posted at the end of work.
It is used to add extra properties for current work.
Please don't post this event directly, use method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> instead.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.Correlation">
<summary>
Gets correlation of start event so user can correlate with this TelemetryScope.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetryScope{`0}.CreateNewEvent,Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings)">
<summary>
Create and post an event for start point, and then create a user event for end point (but not posted.)
</summary>
<param name="telemetrySession">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="createNewEvent">A function to create a new event.</param>
<param name="settings">A <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings" /> object to control the TelemetryScope behavior.</param>
<remarks>
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)">
<summary>
Marks the end of this work and post end event.
</summary>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings">
<summary>
This class is to wrap up settings used to control TelemetryScope behavior when create an instance of it.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings.StartEventProperties">
<summary>
Gets or sets event properties which are added to both start and end events when create an instance of TelemetryScope.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings.Severity">
<summary>
Gets or sets event severity for both start and end events in TelemetryScope.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings.IsOptOutFriendly">
<summary>
Gets or sets a value indicating whether events are opted out friendly or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings.Correlations">
<summary>
Gets or sets correlations for both start and end events in TelemetryScope.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings.PostStartEvent">
<summary>
Gets or sets a value indicating whether post start event or not when create an instance of TelemetryScope.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings.#ctor">
<summary>
Creates the new TelemetryScopeSettings instance.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryService">
<summary>
Core Telemetry class.
It has default session object.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryService.DefaultSession">
<summary>
Gets default session
Used by most, if not all, components to get a session
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryService.AssetService">
<summary>
Gets the singleton <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryService.AssetService" /> instance.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryService.TelemetryEventSource">
<summary>
Gets or sets the ETW event source instance to be used from telemetry sessions, events
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.SetDefaultSession(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Allow user to change the Default Session, especially for a cloned session
e.g. TelemetryService.SetDefaultSession(new TelemetrySession(clonedSettingsString)
</summary>
<param name="telemetrySession"></param>
<exception cref="T:System.InvalidOperationException">Thrown when trying to set a default session when a default session is already set.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.TrySetDefaultSession(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Attempts to set the Default Session, especially for a cloned session
e.g. TelemetryService.TrySetDefaultSession(new TelemetrySession(clonedSettingsString)
</summary>
<param name="telemetrySession"></param>
<returns>true if DefaultSession was successfully set, false if DefaultSession already existed.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.CreateAndGetDefaultSession(System.String,System.String)">
<summary>
Create new default session with specified parameters
</summary>
<param name="appInsightsIKey"></param>
<param name="asimovIKey"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.CreateAndGetDefaultSession(System.String)">
<summary>
Create new default session with specified parameters
</summary>
<param name="collectorApiKey">Collector++ endpoint api-ikey</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.CreateAndGetDefaultSession(System.String,System.String,System.String)">
<summary>
Create new default session with specified parameters
</summary>
<param name="appInsightsIKey"></param>
<param name="asimovIKey"></param>
<param name="collectorApiKey"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.AttachTestChannel(Microsoft.VisualStudio.Telemetry.ITelemetryTestChannel)">
<summary>
Attach test channel for diagnostics
</summary>
<param name="channel"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.DetachTestChannel(Microsoft.VisualStudio.Telemetry.ITelemetryTestChannel)">
<summary>
Detach test channel
</summary>
<param name="channel"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.InitializeEtwProvider(Microsoft.VisualStudio.Telemetry.ITelemetryEtwProvider)">
<summary>
Initialized the host specific ETW provider instance to be used by the telemetry service
This method must be called before any telemetry APIs are used otherwise default provider will be used and
the subsequent InitializeEtwProvider calls will throw.
</summary>
<param name="provider">Provider instance to be used</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryService.EnsureEtwProviderInitialized">
<summary>
Ensures that an ETW provider is initialized.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetrySession">
<summary>
Represents one telemetry session that can post telemetry events
and session properties.
The API makes the best effort to deliver telemetry data to the server.
The requests are queued and sent in batches.
The events will be saved locally if they cannot be sent before the process exits.
Sending will resume when the next application instance calls the telemetry API.
Telemetry may be lost in case of process unresponsiveness or fatal crash or no Internet
connection for 30 days.
All methods are thread-safe and return immediately.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySession.ValueNotAvailable">
<summary>
Constant for value which is not available.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySession.DefaultContextName">
<summary>
Default context name.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.SetTelemetrySessionInternal(Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal)">
<summary>
Used for internal testing only
</summary>
<param name="internalSession"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.#ctor(System.String)">
<summary>
Creates a new telemetry session based on a
serialized string of a TelemetrySessionSettings instance.
Use the SerializeSettings method of an instance of TelemetrySession
to get such a string. This enables a process to post events
to a telemetry session from another process.
Use VSTelemetryService.DefaultSession to access the application session.
</summary>
<param name="serializedSession"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings)">
<summary>
Create TelemetrySession object from serialized session settings and
use the session settings to setup initializer
</summary>
<param name="telemetrySessionSettings"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.#ctor(System.String,Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer)">
<summary>
Create TelemetrySession object from serialized session settings and
using custom session initializer object
</summary>
<param name="serializedSession"></param>
<param name="initializerObject"></param>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.SessionId">
<summary>
Gets the session Id.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.TelemetryLevel">
<summary>
Gets the Configured VS Code Telemetry Level.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.HostProduct">
<summary>
Gets the product hosting the current session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.IsOptedIn">
<summary>
Gets or sets a value indicating whether user is opted in.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.BucketFiltersToEnableWatsonForFaults">
<summary>
Gets or sets a value indicating for which buckets Watson reporting should be enabled for fault events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.BucketFiltersToAddDumpsToFaults">
<summary>
Gets or sets a value indicating for which buckets process dumps should be added for fault events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.HostName">
<summary>
Gets or sets telemetry host name, it affects on manifest file location
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.CancellationToken">
<summary>
Gets the Telemetry Session's CancellationToken
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.AppId">
<summary>
Gets or sets application id for SQM
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.CanCollectPrivateInformation">
<summary>
Gets a value indicating whether current session can collect PII information based on the answer
from the User Information Manager
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.IsUserMicrosoftInternal">
<summary>
Gets a value indicating whether current session belongs to internal user thus can collect information based on the answer
from the User Information Manager
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.CalculatedSamplings">
<summary>
Gets/Sets calculated sampling from the manifest file
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.MachineId">
<summary>
Gets machine id (SQM Machine Id)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.UserId">
<summary>
Gets user id (SQM User Id)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.MacAddressHash">
<summary>
Gets the MAC address hash. If the hash is not found in
local storage, a 0 hash will be returned and the hashing
process will be invoked
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.TimeSinceSessionStart">
<summary>
Gets TimeSinceSessionStart in case if customers want to use it to calculate custom delays based on the same
algorithm Telemetry does.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.InitializedAction">
<summary>
Sets the action that is fired after initial events have made it through to
channels.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.RawTelemetryEventReceived">
<summary>
Gets or Sets the event handler for TelemetryNotificationService
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.Start">
<summary>
Start session means create default context for the session and
add private information properties if it is allowed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.UseVsIsOptedIn(System.String)">
<summary>
Reads and set VS OptIn status.
</summary>
<param name="productVersion">VS product version so it is possible to build settings path</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.UseVsIsOptedIn">
<summary>
Reads and set VS OptIn status.
Calculate IsOptedIn status based on OptedIn status from all installed versions of VS.
If all found OptedIn statuses are true we return true, otherwise we return false.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.CreateContext(System.String)">
<summary>
Create context with the specific name.
</summary>
<param name="contextName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetContext(System.String)">
<summary>
Gets a context by the given name.
</summary>
<param name="contextName"></param>
<returns>null if no context with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.PostEvent(System.String)">
<summary>
Queues a telemetry event to be posted to a server.
Choose this method for simplicity if the name is the only event property.
You should consider choosing PostUserTask, PostOperation, PostFault or PostAsset.
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If your data point doesn't align with any VS Data Model entity, please don't force any association and continue to use this method.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="eventName">Event name that is unique,
not null and not empty.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Queues a telemetry event to be posted to a server.
Choose this method for flexibility.
You should consider choosing PostUserTask, PostOperation, PostFault or PostAsset.
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If your data point doesn't align with any VS Data Model entity, please don't force any association and continue to use this method.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="telemetryEvent">A telemetry event that is ready to be posted.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.PostMetricEvent(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent)">
<summary>
Prepares the metric event by populating metric properties, then posts the event.
</summary>
<param name="metricEvent">A telemetry metric event ready to be posted.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.PostProperty(System.String,System.Object)">
<summary>
Queues an update to for a session-wide property.
You may want to consider <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty" />
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="propertyName">Session property name that is unique,
not null and not empty.</param>
<param name="propertyValue"> Any object that represents a property value.
Telemetry channels must use value.ToString(CultureInfo.InvariantCulture)
to send the value to a server as a string.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.PostRecurringProperty(System.String,System.Object)">
<summary>
Adds a property to be included on the regularly recurring VS/TelemetryApi/RecurringProperties
event. Unlike PostProperty or TelemetryContext.PostProperty, PostRecurringProperty does not add
the given property to every event. PostRecurringProperty is most useful for values that are
constant for the lifetime of a TelemetrySession.
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.AddSessionChannel(Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel)">
<summary>
Add new session channel to the list of active channels.
</summary>
<param name="sessionChannel"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.SerializeSettings">
<summary>
Serializes the TelemetrySessionSettings object.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.SetSharedProperty(System.String,System.Object)">
<summary>
Set shared property for the session means set shared property for the default context
You may want to consider <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty" />
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.RemoveSharedProperty(System.String)">
<summary>
Remove shared property for the session means remove shared property from the default context
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetSharedProperty(System.String)">
<summary>
Get shared property by name.
</summary>
<param name="propertyName"></param>
<returns>null if no shared property with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetSharedPropertyAsObject(System.String)">
<summary>
Get value of shared property by name as an object.
</summary>
<param name="propertyName">Name of shared property.</param>
<returns>null if no shared property with such name.</returns>
<remarks>
This method behaves identically to <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetSharedProperty(System.String)" />. The difference is that this
method won't incur the performance penalties brought on by being the first user of dynamic in an
application's lifetime.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.SetPersistedSharedProperty(System.String,System.String)">
<summary>
Set persisted shared property for the session means set shared property for the default context for
this session and any future sessions on the machine.
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.SetPersistedSharedProperty(System.String,System.Double)">
<summary>
Set persisted shared property for the session means set shared property for the default context for
this session and any future sessions on the machine.
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.RemovePersistedSharedProperty(System.String)">
<summary>
Remove persisted shared property for all sessions means remove shared property from this default context,
and for any future sessions on the machine.
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetPersistedSharedProperty(System.String)">
<summary>
Get persisted shared property by name.
</summary>
<param name="propertyName"></param>
<returns>null if no shared property with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.RegisterPropertyBag(System.String,Microsoft.VisualStudio.Telemetry.TelemetryPropertyBag)">
<summary>
Register the given property bag.
</summary>
<param name="name"></param>
<param name="propertyBag"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.UnregisterPropertyBag(System.String)">
<summary>
Unregister a property bag with the given name.
</summary>
<param name="name"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetPropertyBag(System.String)">
<summary>
Gets a property bag by the given name.
</summary>
<param name="name"></param>
<returns>null if no property bag with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.DisposeToNetworkAsync(System.Threading.CancellationToken)">
<summary>
Asynchronously dispose and try to send all telemetry over the network.
</summary>
<returns>Task to wait on</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.RegisterForReliabilityEvent">
<summary>
Writes process and session information to the registry which is used by any host VS IDE to track and
report the final shutdown status of this process.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.ProcessStartTime">
<summary>
Gets the process start time for this session
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.ProcessPid">
<summary>
Gets the process id for this session.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.Start(System.Boolean)">
<summary>
Start session means create default context for the session and
add private information properties if it is allowed.
</summary>
<param name="checkPendingAsimovEvents">Do we need to check whether
pending events exists and explicitly start Vortex channel</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.Create">
<summary>
Creates a new default telemetry session.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.Create(Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer)">
<summary>
Creates a new telemetry session from the given initializer.
</summary>
<param name="initializerObject"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings,System.Boolean,Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer)">
<summary>
Set up telemetry session properties
</summary>
<param name="settings"></param>
<param name="initializerObject"></param>
<param name="isCloned"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.AddContext(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Add context to the contexts list.
Context list is necessary to add shared properties to each event.
</summary>
<param name="telemetryContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.RemoveContext(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Remove context from the contexts list.
</summary>
<param name="telemetryContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.AddSessionChannels(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel})">
<summary>
Add new session channels for the current session
</summary>
<param name="channels"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetCachedUseCollectorFromRegistry">
<summary>
Checks Registry located at Software\Microsoft\VisualStudio\Telemetry
for default channel set by VSDYNTEL manifest v2
RegKey name = VS.Core.Telemetry.OverrideVortex
Default value set in Constants
</summary>
<returns>Whether telemetry should be sent to collector that's set in Registry, if no value in registry, then defaults to value in Constants</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.SetUseCollectorToRegistry(System.Nullable{System.Boolean})">
<summary>
Updates Registry located at Software\Microsoft\VisualStudio\Telemetry
for UseCollector's cached value
RegKey name = VS.Core.Telemetry.UseCollector
Default value = true
</summary>
<returns>True if diverting to Collector, or false to send to Vortex</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.AddContextProperties(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Add context properties to the event.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.Guard(System.Func{System.String},System.String)">
<summary>
Guard function returns value in case it is available.
In case of fail it returns defaultValue
</summary>
<param name="provider">provider function for getting value</param>
<param name="defaultValue"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.ValidateEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Validate event. Ensure that event regular properties doesn't contain Reserved. prefix
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.ProcessManifestUseCollectorProperty(Microsoft.VisualStudio.Telemetry.TelemetryManifest)">
<summary>
Updates the telemetry collection endpoint based on manifest and available keys
1. If the collectorKey is VS then use manifest UseCollector value, and fill in missing
Asimov or AppInsight keys
2. If a non VS CollectorKey is set, then UseCollector is true regardless of manifest
3. if no collector key has been set, and there exists Asimov and AppInsights keys, then
UseCollector is false to allow redirection to Vortex.
4. If no collector, AI and asimov keys are available, throw exception
</summary>
<param name="manifest">TelemetryManifest from CDN</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.DisposeManagedResources">
<summary>
Protected implementation of Dispose pattern.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.AddCommonPropertyRange(System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Add properties that may be common to all events
for the session, but should not have the Default.Context prefix. Properties
are not persisted between sessions.
To add a single property see <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.TryAddCommonProperty(System.String,System.Object)" />
</summary>
<param name="properties"></param>
<exception cref="T:System.ArgumentNullException">Thrown when properties, key, or value is null</exception>
<exception cref="T:System.ArgumentException">Thrown when property key or value is null</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.TryAddCommonProperty(System.String,System.Object)">
<summary>
Attempts to add a single property key and value that may be common to all events
for the session but should not have the Context prefix. Properties are not persisted
between sessions.
To add multiple properties see <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.AddCommonPropertyRange(System.Collections.Generic.IDictionary{System.String,System.Object})" />
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
<returns>true if the key/value pair was added, false if the key already existed.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when properties, key, or value is null</exception>
<exception cref="T:System.ArgumentException">Thrown when property key or value is null</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.TryGetCommonPropertyValue(System.String,System.Object@)">
<summary>
Gets the value associated with the specified property name that will be common
to all events for the session, but should not have the context or reserved prefix.
</summary>
<param name="propertyName"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.GetCommonPropertyDictionary">
<summary>
Gets an IDictionary containing a copy of the CommonProperty keys and values
currently in the session.
</summary>
<returns>IDictionary of keys and values if CommonProperty keys and values exist, null if no keys exist.</returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySession.GlobalStorageUri">
<summary>
Gets the global storage URI from VS Code
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetrySessionCommandLineExtensions">
<summary>
Extension methods for <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySession" /> to post command line arguments.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionCommandLineExtensions.PostCommandLineFlags(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String[])">
<summary>
Queues a telemetry event with command line flags information to be posted to the server.
Only command line flags (identified by the given prefixes) will be included.
</summary>
<param name="session">A <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySession" /> to post the event with.</param>
<param name="flagPrefixes">The prefix(s) to identify a program's flag.</param>
<exception cref="T:System.ArgumentNullException">If session is null.</exception>
<exception cref="T:System.ArgumentException">If eventName is null, empty or white space.</exception>
<exception cref="T:System.ArgumentException">
If no prefixes are specified, or all prefixes are null, empty or white space.
</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionCommandLineExtensions.PostCommandLineFlags(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Queues a telemetry event with command line flags information with additional properties to be posted to the server.
Only command line flags (identified by the given prefixes) will be included.
</summary>
<param name="session">A <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySession" /> to post the event with.</param>
<param name="flagPrefixes">The prefix(s) to identify a program's flag.</param>
<param name="additionalProperties">Optional additional properties to include with the event.</param>
<exception cref="T:System.ArgumentNullException">If session is null.</exception>
<exception cref="T:System.ArgumentException">If eventName is null, empty or white space.</exception>
<exception cref="T:System.ArgumentException">
If no prefixes are specified, or all prefixes are null, empty or white space.
</exception>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionCommandLineExtensions.GetCommandLineArgsFunc">
<summary>
Gets or sets the function to provide command-line arguments for the current process.
</summary>
<remarks>Internal property to allow dependency injection from unit tests.</remarks>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions">
<summary>
A class to contain all data model extension methods to existing class TelemetrySession.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Post an event for user task.
A user task is an application operation that is INVOKED BY USER directly and comes with result (e.g., Success, Failure).
It is used for user behavior/intent analysis. User is aware of the operation and be able to execute.
e.g. Open project and Show tool windows are user tasks; instead load VS package and Design time build are operations.
This method is used for atomic user task that runs very fast or has little value to analyze the process duration. Caller calls this method when user task is complete.
For long-time running or async user task, in order to understand what else happened during the time or track if it partially completes because of an error,
use method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)" /> which tracks both start and end points.
</summary>
<param name="session">telemetry session object.</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
<param name="correlatedWith">
Specify which events to correlate by using property <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" />
Good candidates to correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> are,
<see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />
<see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" />
<see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />
</param>
<returns>The user task event correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String,Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Post an Operation event.
An operation performs some work in application and comes with result (e.g., Success, Failure).
If the operation is invoked by user directly, please use <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or related methods.
A few examples of operations are, license check, package load, windows layout loading.
This method is used for atomic operation that runs very fast or has little value to analyze the process duration. Caller calls this method when operation is complete.
For long-time running or async operation, in order to understand what else happened during the time or track if it partially completes because of an error,
use method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)" /> which tracks both start and end points.
</summary>
<param name="session">telemetry session object.</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="result">the result of this user task. If the result is Failure, recommend correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.</param>
<param name="resultSummary">
optional parameter. a summary description for the result.
it provides a little bit more details about the result without digging into it.
when correlated with fault event, use this parameter to summarize the additional information stored in <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />.
E.g., "sign in failed because of wrong credential", "user cancelled azure deployment".
Default value is null.
</param>
<param name="correlatedWith">
Specify which events to correlate by using property <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" />
Good candidates to correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> are,
<see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" />
<see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" />
<see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" />
</param>
<returns>The operation event correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)">
<summary>
Start tracking user task by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> at the beginning of user task work, and then return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity)">
<summary>
Start tracking user task by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> at the beginning of user task work, and then return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="severity">
A severity level of the event.
The level is used for event consumer (e.g., ETW provider, backend reporting) to organize data easier.
</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity,System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Start tracking user task by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> with specified properties at the beginning of user task work,
and then return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="severity">
A severity level of the event.
The level is used for event consumer (e.g., ETW provider, backend reporting) to organize data easier.
</param>
<param name="startEventProperties">
Event properties for the start event of this scope. They are also copied to end event.
</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity,System.Collections.Generic.IDictionary{System.String,System.Object},Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Start tracking user task by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> with specified properties at the beginning of user task work,
and then return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="severity">
A severity level of the event.
The level is used for event consumer (e.g., ETW provider, backend reporting) to organize data easier.
</param>
<param name="startEventProperties">
Event properties for the start event of this scope. They are also copied to end event.
</param>
<param name="correlations">Events with which this scope can correlate.</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartUserTask(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings)">
<summary>
Start tracking user task by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> with specified properties at the beginning of user task work,
and then return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="settings">A <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings" /> object to control the TelemetryScope behavior.</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String)">
<summary>
Start tracking operation by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> at the begining of operation work, and return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity)">
<summary>
Start tracking operation by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> at the begining of operation work, and return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="severity">
A severity level of the event.
The level is used for event consumer (e.g., ETW provider, backend reporting) to organize data easier.
</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity,System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Start tracking operation by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> with specified properties at the begining of operation work,
and return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="severity">
A severity level of the event.
The level is used for event consumer (e.g., ETW provider, backend reporting) to organize data easier.
</param>
<param name="startEventProperties">
Event properties for the start event of this scope. They are also copied to end event.
</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetrySeverity,System.Collections.Generic.IDictionary{System.String,System.Object},Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Start tracking operation by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> with specified properties at the begining of operation work,
and return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="severity">
A severity level of the event.
The level is used for event consumer (e.g., ETW provider, backend reporting) to organize data easier.
</param>
<param name="startEventProperties">
Event properties for the start event of this scope. They are also copied to end event.
</param>
<param name="correlations">Events with which this scope can correlate.</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.StartOperation(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings)">
<summary>
Start tracking operation by posting a <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> with specified properties at the begining of operation work,
and return a <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> object.
When the user task finishes, call method <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetryScope`1.End(Microsoft.VisualStudio.Telemetry.TelemetryResult,System.String)" /> to post another <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> for end point.
Because the same event name is used by both start and end events, please don't use Start or End in event name.
</summary>
<param name="session">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="settings">A <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScopeSettings" /> object to control the TelemetryScope behavior.</param>
<returns><see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryScope`1" /> instance.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String)">
<summary>
Post a Fault event. The event will always be sent to AppInsights, but if it passes sampling,
it gets posted to Wason as well.
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description">The desription is not put in a bucket parameter, but it is in the ErrorInformation.txt file in the
Cab file sent to Watson, and in the AI event</param>
<returns>The fault event correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,Microsoft.VisualStudio.Telemetry.FaultSeverity)">
<summary>
Post a Fault event. The event will always be sent to AppInsights, but if it passes sampling,
it gets posted to Wason as well.
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description">The desription is not put in a bucket parameter, but it is in the ErrorInformation.txt file in the
Cab file sent to Watson, and in the AI event</param>
<param name="faultSeverity">The severity of the fault, used to identify actionable or important faults in divisional tools and reporting.</param>
<returns>The fault event correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,System.Exception)">
<summary>
Post a Fault Event with a managed Exception object. The bucket parameters are created from the exception object.
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="exceptionObject"></param>
<returns>The fault event correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,Microsoft.VisualStudio.Telemetry.FaultSeverity,System.Exception)">
<summary>
Post a Fault Event with a managed Exception object. The bucket parameters are created from the exception object.
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="faultSeverity">The severity of the fault, used to identify actionable or important faults in divisional tools and reporting.</param>
<param name="exceptionObject"></param>
<returns>The fault event correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,System.Exception,System.Func{Microsoft.VisualStudio.Telemetry.IFaultUtility,System.Int32})">
<summary>
Post a fault event with an exception object and a callback. The callback can be used to calculate expensive data to be sent
to the Watson back end, such as JScript callstacks, etc
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="exceptionObject">can be null</param>
<param name="gatherEventDetails">Allows the user to provide code to execute synchronously to gather computationally expensive info about the event</param>
<returns>The fault correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,Microsoft.VisualStudio.Telemetry.FaultSeverity,System.Exception,System.Func{Microsoft.VisualStudio.Telemetry.IFaultUtility,System.Int32})">
<summary>
Post a fault event with an exception object and a callback. The callback can be used to calculate expensive data to be sent
to the Watson back end, such as JScript callstacks, etc
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="faultSeverity">The severity of the fault, used to identify actionable or important faults in divisional tools and reporting.</param>
<param name="exceptionObject">can be null</param>
<param name="gatherEventDetails">Allows the user to provide code to execute synchronously to gather computationally expensive info about the event</param>
<returns>The fault correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,System.Exception,System.Func{Microsoft.VisualStudio.Telemetry.IFaultUtility,System.Int32},Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Post a fault event with an exception object and a callback. The callback can be used to calculate expensive data to be sent
to the Watson back end, such as JScript callstacks, etc
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="exceptionObject">can be null</param>
<param name="gatherEventDetails">Allows the user to provide code to execute synchronously to gather computationally expensive info about the event</param>
<param name="correlatedWith">
Specify which events to correlate by using property <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" />
Good candidates to correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" /> are,
<see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" />
<see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />
</param>
<returns>The fault correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostFault(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,Microsoft.VisualStudio.Telemetry.FaultSeverity,System.Exception,System.Func{Microsoft.VisualStudio.Telemetry.IFaultUtility,System.Int32},Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Post a fault event with an exception object and a callback. The callback can be used to calculate expensive data to be sent
to the Watson back end, such as JScript callstacks, etc
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="telemetrySession"></param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="faultSeverity">The severity of the fault, used to identify actionable or important faults in divisional tools and reporting.</param>
<param name="exceptionObject">can be null</param>
<param name="gatherEventDetails">Allows the user to provide code to execute synchronously to gather computationally expensive info about the event</param>
<param name="correlatedWith">
Specify which events to correlate by using property <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" />
Good candidates to correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.FaultEvent" /> are,
<see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" />
<see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" />
</param>
<returns>The fault correlation.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionExtensions.PostAsset(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.String,System.String,System.Int32,System.Collections.Generic.IDictionary{System.String,System.Object},Microsoft.VisualStudio.Telemetry.TelemetryEventCorrelation[])">
<summary>
Post an Asset event.
Asset is the target of user task or operation, e.g., Solution, Project, File, Extension, License, Designer.
</summary>
<param name="telemetrySession">Telemetry Session</param>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="assetId">
Used to identify the asset. The id should be immutable in the asset life cycle, even if the status or content changes over time.
E.g., project guid is generated during project creation and will never change. This makes it a good candidate for asset id of Project asset.
</param>
<param name="assetEventVersion">
Used for customized properties versioning.
E.g., project asset posts event with name "vs/platform/project".
If the event is updated, uses this parameter to increment the version.
</param>
<param name="properties">customized properties for this asset event.</param>
<param name="correlatedWith">
Specify which events to correlate by using property <see cref="P:Microsoft.VisualStudio.Telemetry.TelemetryEvent.Correlation" />
Good candidates to correlate with <see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" /> are,
<see cref="T:Microsoft.VisualStudio.Telemetry.AssetEvent" /> (to build up asset hierarchy/extension.)
</param>
<returns>The asset event correlation.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer">
<summary>
Initial telemetry session configuration
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer.Default">
<summary>
Gets default session initializer
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer.FromSessionSettings(Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings)">
<summary>
Build default session initializer, but modify components according to session settings.
</summary>
<param name="telemetrySessionSettings"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer.CreateSessionChannels(Microsoft.VisualStudio.Telemetry.TelemetrySession,System.Boolean)">
<summary>
Create default session channels and return IEnumerable list of them.
In the case when checkPendingAsimovEvents == true call method on Vortex and Collector channel
to check whether pending telemetry is exists and in case existing Start this channel
immediately.
</summary>
<param name="telemetrySession"></param>
<param name="checkPendingAsimovEvents"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer.Validate">
<summary>
Validate initializer for the TelemetrySession
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal">
<summary>
Internal only interface that supports different types of telemetry sessions. Should not be made public as the current
TelemetrySession uses this interface to determine what platform the service is running on.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.AddCommonProperties(System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Add properties that may be common to all events for the session, but should not have the Default.Context prefix.
Common properties are not persisted between sessions.
To add a single property see <see cref="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.TryAddCommonProperty(System.String,System.Object)" />
</summary>
<param name="properties"></param>
<exception cref="T:System.ArgumentNullException">When <paramref name="properties" /> is null.</exception>
<exception cref="T:System.ArgumentException">If the properties passed in has a duplicate key, an ArgumentException is thrown.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.TryAddCommonProperty(System.String,System.Object)">
<summary>
Attempts to add a single property key and value that may be common to all events
for the session but should not have the Context prefix. Properties are not persisted
between sessions.
To add multiple properties see <see cref="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.AddCommonProperties(System.Collections.Generic.IDictionary{System.String,System.Object})" />.
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
<returns>true if the key/value pair was added, false if the key already existed.</returns>
<exception cref="T:System.ArgumentNullException">Thrown when <paramref name="propertyName" /> or <paramref name="propertyValue" /> is null or empty.</exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.LoadCommonProperties">
<summary>
Loads properties common to all events.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.TryGetCommonPropertyValue(System.String,System.Object@)">
<summary>
Gets the value associated with the specified propertyname that will be common
to all events for the session, but should not have the context or reserved prefix.
Properties are not persisted between sessions.
To add multiple properties see <see cref="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.AddCommonProperties(System.Collections.Generic.IDictionary{System.String,System.Object})" />.
</summary>
<param name="propertyName"></param>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ITelemetrySessionInternal.GetCommonPropertyDictionary">
<summary>
Gets an IDictionary containing a copy of the CommonProperty keys and values
currently in the session.
</summary>
<returns>IDictionary of keys and values if CommonProperty keys and values exist, null if no keys exist.</returns>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.UseCollectorRegKeyName">
<summary>
Registry Key to hold default channel
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.useCollectorRegKeyPath">
<summary>
Registry path to the cached UseCollector value
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.CommonPropertyBagPathEnvironmentVariableName">
<summary>
Environment var that is populated with the file path to the common props json file
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.ValueNotAvailable">
<summary>
Constant for value which is not available
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.DefaultContextName">
<summary>
Default context name
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.WaitForPendingPostingTimeout">
<summary>
Timeout for the acquire "write" permission for the block
posting custom events during disposing contexts from the
multiple threads
1 second should be enough to finish all pending telemetry
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.customEventPostProtection">
<summary>
Protects from posting custom events when default context is about being disposed
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.isInitialized">
<summary>
Until initialized, events are buffered
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.SessionId">
<summary>
Gets the session Id.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.ProductScenario">
<summary>
Gets or sets the target product this session exists in.
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.TelemetryLevel">
<summary>
Gets the Configured VS Code Telemetry Level.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.HostProduct">
<summary>
Gets the product hosting the current session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.IsOptedIn">
<summary>
Gets or sets a value indicating whether user is opted in.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.BucketFiltersToEnableWatsonForFaults">
<summary>
Gets or sets a value indicating for which buckets Watson reporting should be enabled for fault events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.BucketFiltersToAddDumpsToFaults">
<summary>
Gets or sets a value indicating for which buckets process dumps should be added for fault events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.HostName">
<summary>
Gets or sets telemetry host name, it affects on manifest file location
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.CancellationToken">
<summary>
Gets the Telemetry Session's CancellationToken
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.AppId">
<summary>
Gets or sets application id for SQM
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.CanCollectPrivateInformation">
<summary>
Gets a value indicating whether current session can collect PII information based on the answer
from the User Information Manager
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.IsUserMicrosoftInternal">
<summary>
Gets a value indicating whether current session belongs to internal user thus can collect information based on the answer
from the User Information Manager
</summary>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.IsUserMicrosoftInternalInternal">
<summary>
Gets a value indicating whether the user should be treated as an internal Microsoft user.
This is the internal implementation of IsUserMicrosoftInternal.
Allows overriding the calculation depending on the type of session that is being used.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.CalculatedSamplings">
<summary>
Gets/Sets calculated sampling from the manifest file
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.MachineId">
<summary>
Gets machine id (SQM Machine Id)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.UserId">
<summary>
Gets user id (SQM User Id)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.MacAddressHash">
<summary>
Gets the MAC address hash. If the hash is not found in
local storage, a 0 hash will be returned and the hashing
process will be invoked
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.InitializedAction">
<summary>
Sets the action that is fired after initial events have made it through to
channels.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.RawTelemetryEventReceived">
<summary>
Gets or Sets the event handler for TelemetryNotificationService.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings,System.Boolean,Microsoft.VisualStudio.Telemetry.TelemetrySessionInitializer,Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Set up telemetry session properties
</summary>
<param name="settings"></param>
<param name="initializerObject"></param>
<param name="session"></param>
<param name="isCloned"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.UseVsIsOptedIn(System.String)">
<summary>
Reads and set VS OptIn status.
</summary>
<param name="productVersion">VS product version so it is possible to build settings path</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.UseVsIsOptedIn">
<summary>
Reads and set VS OptIn status.
Calculate IsOptedIn status based on OptedIn status from all installed versions of VS.
If all found OptedIn statuses are true we return true, otherwise we return false.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.CreateContext(System.String)">
<summary>
Create context with the specific name.
</summary>
<param name="contextName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetContext(System.String)">
<summary>
Gets a context by the given name.
</summary>
<param name="contextName"></param>
<returns>null if no context with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.PostEvent(System.String)">
<summary>
Queues a telemetry event to be posted to a server.
Choose this method for simplicity if the name is the only event property.
You should consider choosing PostUserTask, PostOperation, PostFault or PostAsset.
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If your data point doesn't align with any VS Data Model entity, please don't force any association and continue to use this method.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="eventName">Event name that is unique,
not null and not empty.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.PostEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Queues a telemetry event to be posted to a server.
Choose this method for flexibility.
You should consider choosing PostUserTask, PostOperation, PostFault or PostAsset.
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If your data point doesn't align with any VS Data Model entity, please don't force any association and continue to use this method.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="telemetryEvent">A telemetry event that is ready to be posted.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.PostMetricEvent(Microsoft.VisualStudio.Telemetry.Metrics.Events.TelemetryMetricEvent)">
<summary>
Prepares the metric event by populating metric properties, then posts the event.
</summary>
<param name="metricEvent">A telemetry metric event ready to be posted.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.PostProperty(System.String,System.Object)">
<summary>
Queues an update to for a session-wide property.
You may want to consider <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty" />
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="propertyName">Session property name that is unique,
not null and not empty.</param>
<param name="propertyValue"> Any object that represents a property value.
Telemetry channels must use value.ToString(CultureInfo.InvariantCulture)
to send the value to a server as a string.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.PostRecurringProperty(System.String,System.Object)">
<summary>
Adds a property to be included on the regularly recurring VS/TelemetryApi/RecurringProperties
event. Unlike PostProperty or TelemetryContext.PostProperty, PostRecurringProperty does not add
the given property to every event. PostRecurringProperty is most useful for values that are
constant for the lifetime of a TelemetrySession.
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.AddSessionChannel(Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel)">
<summary>
Add new session channel to the list of active channels.
</summary>
<param name="sessionChannel"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.SerializeSettings">
<summary>
Serializes the TelemetrySessionSettings object.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.SetSharedProperty(System.String,System.Object)">
<summary>
Set shared property for the session means set shared property for the default context
You may want to consider <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetrySettingProperty" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.TelemetryMetricProperty" />
These will enable a richer telemetry experience with additional insights provided by Visual Studio Data Model.
If you have any questions regarding VS Data Model, please email VS Data Model Crew (vsdmcrew@microsoft.com).
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.RemoveSharedProperty(System.String)">
<summary>
Remove shared property for the session means remove shared property from the default context
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetSharedProperty(System.String)">
<summary>
Get shared property by name.
</summary>
<param name="propertyName"></param>
<returns>null if no shared property with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetSharedPropertyAsObject(System.String)">
<summary>
Get value of shared property by name as an object.
</summary>
<param name="propertyName">Name of shared property.</param>
<returns>null if no shared property with such name.</returns>
<remarks>
This method behaves identically to <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetSharedProperty(System.String)" />. The difference is that this
method won't incur the performance penalties brought on by being the first user of dynamic in an
application's lifetime.
</remarks>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.RemovePersistedSharedProperty(System.String)">
<summary>
Remove persisted shared property for all sessions means remove shared property from this default context,
and for any future sessions on the machine.
</summary>
<param name="propertyName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetPersistedSharedProperty(System.String)">
<summary>
Get persisted shared property by name.
</summary>
<param name="propertyName"></param>
<returns>null if no shared property with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.RegisterPropertyBag(System.String,Microsoft.VisualStudio.Telemetry.TelemetryPropertyBag)">
<summary>
Register the given property bag.
</summary>
<param name="name"></param>
<param name="propertyBag"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.UnregisterPropertyBag(System.String)">
<summary>
Unregister a property bag with the given name.
</summary>
<param name="name"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetPropertyBag(System.String)">
<summary>
Gets a property bag by the given name.
</summary>
<param name="name"></param>
<returns>null if no property bag with such name.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.DisposeToNetworkAsync(System.Threading.CancellationToken)">
<summary>
Asynchronously dispose and try to send all telemetry over the network.
</summary>
<returns>Task to wait on</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetUseCollectorRegKeyPath">
<summary>
Gets the registry location for the UseCollector registry key.
</summary>
<returns>Registry path for the UseCollector registry key.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.RegisterForReliabilityEvent">
<summary>
Writes process and session information to the registry which is used by any host VS IDE to track and
report the final shutdown status of this process.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetExeName">
<summary>
Attempt to get the exeName via the winapi call. If that fails, use the one on the sessioninitializer's HostInformationProvider, ensuring it has a '.exe' file extension for Windows
</summary>
<returns>Process Name</returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.ProcessStartTime">
<summary>
Gets the process start time for this session
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.ProcessPid">
<summary>
Gets the process id for this session.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.Start(System.Boolean)">
<summary>
Start session means create default context for the session and
add private information properties if it is allowed.
</summary>
<param name="checkPendingAsimovEvents">Do we need to check whether
pending events exists and explicitly start Vortex channel</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.AddContext(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Add context to the contexts list.
Context list is necessary to add shared properties to each event.
</summary>
<param name="telemetryContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.RemoveContext(Microsoft.VisualStudio.Telemetry.TelemetryContext)">
<summary>
Remove context from the contexts list.
</summary>
<param name="telemetryContext"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.AddSessionChannels(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Telemetry.SessionChannel.ISessionChannel})">
<summary>
Add new session channels for the current session
</summary>
<param name="channels"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.DisposeManagedResources">
<summary>
Protected implementation of Dispose pattern.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.DisposeStart">
<summary>
Start synchronous dispose
</summary>
<returns>can we continue with dispose or not</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.DisposeEnd">
<summary>
End synchronous dispose
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.PostProcessedEvent(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Flush processed event.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetCachedUseCollectorFromRegistry">
<summary>
Checks Registry located at Software\Microsoft\VisualStudio\Telemetry
for default channel set by VSDYNTEL manifest v2
RegKey name = VS.Core.Telemetry.OverrideVortex
Default value set in Constants. For VS Code this always returns true.
</summary>
<returns>Whether telemetry should be sent to collector that's set in Registry, if no value in registry, then defaults to value in Constants</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.SetUseCollectorToRegistry(System.Nullable{System.Boolean})">
<summary>
Updates Registry located at Software\Microsoft\VisualStudio\Telemetry
for UseCollector's cached value
RegKey name = VS.Core.Telemetry.UseCollector
Default value = true
</summary>
<returns>True if diverting to Collector, or false to send to Vortex</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.CreateDefaultContext">
<summary>
Create a default context with PII properties set if we can collect it.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.InitializeWithDefaultChannels(System.Boolean)">
<summary>
Passes default construction of channels and UserInformationManager to Initialize method
</summary>
<param name="checkPendingAsimovEvents">Do we need to check whether
pending events exists and explicitly start Vortex channel</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.SetInternalInformationProperties(Microsoft.VisualStudio.Telemetry.TelemetryManifest)">
<summary>
Add 3 internal datapoints in case we are allowed to do it.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.AddContextProperties(Microsoft.VisualStudio.Telemetry.TelemetryEvent)">
<summary>
Add context properties to the event.
</summary>
<param name="telemetryEvent"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.SetPersistedSharedProperty(System.String,System.String)">
<summary>
Set persisted shared property for the session means set shared property for the default context for
this session and any future sessions on the machine.
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.SetPersistedSharedProperty(System.String,System.Double)">
<summary>
Set persisted shared property for the session means set shared property for the default context for
this session and any future sessions on the machine.
</summary>
<param name="propertyName"></param>
<param name="propertyValue"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.TelemetryManifestUpdateStatus(System.Object,Microsoft.VisualStudio.Telemetry.TelemetryManifestEventArgs)">
<summary>
Handles the TelemetryManifestUpdateStatus event from the downloader by giving the
loaded TelemetryManifest to the EventProcessor in case of the success.
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.ProcessManifestUseCollectorProperty(Microsoft.VisualStudio.Telemetry.TelemetryManifest)">
<summary>
Updates the telemetry collection endpoint based on manifest and available keys
1. If the collectorKey is VS then use manifest UseCollector value, and fill in missing
Asimov or AppInsight keys
2. If a non VS CollectorKey is set, then UseCollector is true regardless of manifest
3. if no collectorkey has been set, and there exists Asimov and AppInsights keys, then
UseCollector is false to allow redirection to Vortex.
4. If no collector, AI and asimov keys are available, throw exception
</summary>
<param name="manifest">TelemetryManifest from CDN</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.MACAddressHashCalculationCompleted(System.Object,System.EventArgs)">
<summary>
Handles the MACAddressHashCalculationCompleted event from the MACInformationProvider
</summary>
<param name="sender"></param>
<param name="e"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.IndicateNormalShutdown">
<summary>
Writes a value to the registry indicating that this process is exiting normally.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.StartReliabilityHeartbeatAsync">
<summary>
Updates the StillAlive registry timer every 5 minutes until this TelemetrySession is disposed
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.AddCommonProperties(System.Collections.Generic.IDictionary{System.String,System.Object})">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.TryAddCommonProperty(System.String,System.Object)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.TryGetCommonPropertyValue(System.String,System.Object@)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.GetCommonPropertyDictionary">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.LoadCommonProperties">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalVSCode.IsUserMicrosoftInternalInternal">
<summary>
Gets a value indicating whether the user should be treated as an internal Microsoft user.
This is the internal implementation of IsUserMicrosoftInternal.
Allows overriding the calculation depending on the type of session that is being used.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings">
<summary>
Represents settings that are specific to a TelemetrySession.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings.IsInitialSession">
<summary>
Gets or sets a value indicating whether
this is the Initial Session from which all
other sessions downstream will be cloned from.
This property will dictate the Starting
SessionID. This value is only deserialized
and is never serialized to send downstream.
To use this, you would need to implement a
serialized session settings string in code
and call <see cref="M:Microsoft.VisualStudio.Telemetry.TelemetrySession.#ctor(System.String)" />.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings.#ctor(System.String,Microsoft.VisualStudio.Telemetry.IInternalSettings,System.String,System.String,System.String,Microsoft.VisualStudio.Telemetry.IProcessCreationTime)">
<summary>
creates Session Settings that are used to create a "clone" of this
Telemetry Session based on it's SessionID.
</summary>
<param name="id"></param>
<param name="internalSettings"></param>
<param name="appInsightsIKey"></param>
<param name="asimovIKey"></param>
<param name="collectorApiKey"></param>
<param name="processCreation"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings.IsSessionIdValid(System.String)">
<summary>
Validate session id
</summary>
<param name="sessionID"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings.ToString">
<summary>
Serialize settings to json string. Use manual serialization
to fix bug https://devdiv.visualstudio.com/DevDiv/VS%20IDE%20Telemetry/_workitems/edit/634853
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings.Deserialize(System.String)">
<summary>
Deserializes the passed in string into a TelemetrySessionSettings object.
This method can throw an exception if the string is not in a format the serializer expects
or the string does not represent a proper TelemetrySessionSettings object.
</summary>
<param name="settings"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings.IsSerializedSessionValid(System.String)">
<summary>
Validate serialized session
</summary>
<param name="serializedSession"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryTaskTimer">
<summary>
Helper class to start Async job with a delay.
Using Start() on already planned task cause cancel current timer and start new one.
Borrowed from Application Insights Microsoft.VisualStudio.ApplicationInsights.Implementation.TaskTimer class
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryTestChannelEventArgs">
<summary>
Test channel arguments
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.TelemetryTestChannelEventArgs.Event">
<summary>
Gets or sets event which was posted
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryTestChannelEventArgs.ToString">
<summary>
tostring
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TelemetryVsOptinStatusReader">
<summary>
Read and set OptedIn value for the VS.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryVsOptinStatusReader.ReadIsOptedInStatus(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Calculate IsOptedIn status based on OptedIn status from all installed versions of VS.
If all found OptedIn statuses are true we return true, otherwise we return false.
</summary>
<param name="session">Host telemetry session</param>
<returns>OptedIn status</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TelemetryVsOptinStatusReader.KeyMatchesSqmFormat(System.String)">
<summary>
Check whether subkey matches format XX.X, where X - is a digit.
</summary>
<param name="key"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ArchitectureTools">
<summary>
Class that provides the logic to grab both the processor and machine architecture values
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ArchitectureTools.GetImageFileMachineArchitectures(System.String@,System.String@)">
<summary>
Retrieves architectures for process and the native machine. Defaults to using IsWow64Process2 as its most accurate and will fallback to other methods if that api isn't available.
</summary>
<param name="processArch">ImageFileMachine friendly name value for process architecture</param>
<param name="nativeMachineArch">ImageFileMachine friendly name value for native machine architecture</param>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.ArchitectureTools.PROCESS_INFORMATION_CLASS_22000_ProcessMachineTypeInfo">
<summary>
Const for PROCESS_INFORMATION_CLASS enum change in Windows 10 v22000. https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/ne-processthreadsapi-process_information_class
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.ArchitectureTools.GetImageFileMachineArchitectures(Microsoft.VisualStudio.Telemetry.ArchitectureTools.ProcessorArchitectureType@,Microsoft.VisualStudio.Telemetry.ArchitectureTools.ProcessorArchitectureType@)">
<summary>
Retrieves architectures for process and the native machine. Defaults to using IsWow64Process2 as its most accurate and will fallback to other methods if that api isn't available.
</summary>
<param name="processArch">ImageFileMachine value for process architecture</param>
<param name="nativeMachineArch">ImageFileMachine value for native machine architecture</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.ArchitectureTools.ProcessorArchitectureType">
<summary>
Processors architecture list copied from winnt.h
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.BiosFirmwareTableParser">
<summary>
Class that provides the logic to parse Bios firmware table
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.BiosFirmwareTableParser.ParseBiosFirmwareTable(System.Memory{System.Byte})">
<summary>
Parses the supplied BIOS Firmware Table byte array
</summary>
<param name="biosFirmwareTable">The BIOS firmware table</param>
<returns>a BiosInformation object</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.BiosFirmwareTableParser.ParseBiosFirmwareTable(System.IO.Stream)">
<summary>
Parses the supplied BIOS Firmware Table stream
</summary>
<param name="biosFirmwareTable"></param>
<returns>a BiosInformation object</returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.EnvironmentTools.Version">
<summary>
Gets the current CLR version
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.EnvironmentTools.GetEnvironmentVariable(System.String)">
<summary>
Gets the string value of the environment variable
</summary>
<param name="key"></param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.IEnvironmentTools.Version">
<summary>
Gets current CLR version
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IEnvironmentTools.GetEnvironmentVariable(System.String)">
<summary>
Gets the string value of the environment variable
</summary>
<param name="key"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IProcessCreationTime">
<summary>
Gets the process creation time
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Tools.IRegistryToolsHelper.TelemetryRegistryPathBase">
<summary>
Gets the Telemetry key path for the target product
VS and legacy - @"Software\Microsoft\VisualStudio\Telemetry"
VS Code - @"Software\Microsoft\VSCode\Telemetry"
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Tools.IRegistryToolsHelper.GlobalPolicyRegistryPathBase">
<summary>
Gets the SQM Policy key path for the target product
VS and legacy - Software\Policies\Microsoft\VisualStudio\SQM
VS Code - Software\Policies\Microsoft\VSCode\SQM
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.IRegistryToolsHelper.SetRegistryFromCurrentUserRoot(System.String,System.Object)">
<summary>
Sets a value in the Registry from the HKCU root Registry at the
proper Product registry keypath which can be found by calling <see cref="P:Microsoft.VisualStudio.Telemetry.Tools.IRegistryToolsHelper.TelemetryRegistryPathBase" />
</summary>
<param name="regKeyName"></param>
<param name="value"></param>
<returns>true if set, false if error</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.IRegistryToolsHelper.SetRegistryFromCurrentUserRoot(System.String,System.Object,Microsoft.Win32.RegistryValueKind)">
<summary>
Sets a value in the Registry from the HKCU root Registry at the
proper Product registry keypath which can be found by calling <see cref="P:Microsoft.VisualStudio.Telemetry.Tools.IRegistryToolsHelper.TelemetryRegistryPathBase" />
</summary>
<param name="regKeyName">name for registry key</param>
<param name="value">value for registry key</param>
<param name="valueKind">supported RegistryValueKind's are bool, int, long</param>
<returns>true if set, false if error</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.IRegistryToolsHelper.GetRegistryValueFromCurrentUserRoot(System.String,System.Object)">
<summary>
Gets registry key value from the product registry path.
</summary>
<param name="regKeyName"></param>
<param name="defaultOnError"></param>
<returns>Current value or null if does not exist.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.Tools.ProductTarget">
<summary>
This enum is used to explicitly state this session's target product.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Tools.ProductTarget.VSCode">
<summary>
VS Code
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.Tools.ProductTarget.Other">
<summary>
Default VS scenario to support preexisting workflows such as VS For Mac, MACSON, and Storage Explorer.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.ProductDetectionTools.GetProduct(Microsoft.VisualStudio.Telemetry.TelemetrySessionSettings)">
<summary>
Utility function to detect if session is running in VS Code or another product.
</summary>
<param name="settings"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.ProductDetectionTools.GetProduct(System.String)">
<summary>
Utility function to detect if session is running in VS Code or another product.
Defaults to return ProductTarget.Other if the collectorApiKey is null or empty.
</summary>
<param name="collectorApiKey"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.ProductDetectionTools.GetProduct(System.String,System.String)">
<summary>
Utility function to detect if session is running in VS Code or another product.
</summary>
<param name="asimovIKey"></param>
<param name="collectorApiKey"></param>
<returns>VSCode if running in VSCode, else Other</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.Initialize(Microsoft.VisualStudio.Telemetry.Tools.ProductTarget)">
<summary>
Initializes RegistryToolsHelper instance based on product
target passed in. If Initialize is called multiple times
for different products, only the first product target is used.
</summary>
<param name="productTarget"></param>
<exception cref="T:System.InvalidOperationException">when Instance is already initialized with a different <see cref="P:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.ProductTarget" /></exception>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.#ctor">
<summary>
Used for tests only.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.TelemetryRegistryPathBase">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.GlobalPolicyRegistryPathBase">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.SetRegistryFromCurrentUserRoot(System.String,System.Object)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.SetRegistryFromCurrentUserRoot(System.String,System.Object,Microsoft.Win32.RegistryValueKind)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.Tools.RegistryToolsHelper.GetRegistryValueFromCurrentUserRoot(System.String,System.Object)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.MonoFileTimeProcessCreationTime">
<summary>
Used by VS Code's Reliability workflow to match Reliability configs in
the Registry to watsons or crash reports. MonoFileTimeProcessCreationTime
returns FileTimeUTC. MonoProcessCreationTime is used by VS for Mac's Reliability.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.TypeTools">
<summary>
TypeTools class is a helper to work with types of the C# objects
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TypeTools.TryConvertToUInt(System.Object,System.UInt32@)">
<summary>
Try convert to UInt. In case of fail return false and init result by default.
</summary>
<param name="o"></param>
<param name="result"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TypeTools.TryConvertToInt(System.Object,System.Int32@)">
<summary>
Try convert to Int. In case of fail return false and init result by default.
</summary>
<param name="o"></param>
<param name="result"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.TypeTools.ConvertToString(System.Object)">
<summary>
Convert to String. Never fails.
</summary>
<param name="o"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel">
<summary>
Tracks the configured VS Code telemetry level and provides utilities to align and enforce telemetry levels.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.TelemetryLevel">
<summary>
The configured VS Code telemetry level.
See documentation for details: https://code.visualstudio.com/docs/getstarted/telemetry.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.TelemetryLevel.Unknown">
<summary>
The configured telemetry level is unknown.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.TelemetryLevel.All">
<summary>
The configured telemetry level is set to "All".
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.TelemetryLevel.Error">
<summary>
The configured telemetry level is set to "Error".
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.TelemetryLevel.Crash">
<summary>
The configured telemetry level is set to "Crash".
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.TelemetryLevel.Off">
<summary>
The configured telemetry level is set to "Off". No telemetry should be sent.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.ConfiguredLevel">
<summary>
The configured telemetry level.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel" /> class.
Maps the raw value of the telemetry level to the internal value.
This constructor signature is required to ensure we can parse items passed from the command line.
</summary>
<param name="telemetryLevelRaw">The raw vs code telemetry level, as reported by the TelemetryReporter in VS Code.</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.IsTelemetryDataPermitted(System.String,System.String)">
<summary>
Validates if the configured telemetry level represented by this object permits telemetry associated with the specified level.
</summary>
<param name="configuredTelemetryLevel">The telemetry level configured for the app.</param>
<param name="eventTelemetryLevel">The event's required telemetry level.</param>
<returns>True if the configured level is equally permissive or more permissive than required. Otherwise, false.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.IsTelemetryDataPermitted(Microsoft.VisualStudio.Telemetry.VsCodeExt.VisualStudioCodeTelemetryLevel.TelemetryLevel)">
<summary>
Validates if the configured telemetry level represented by this object permits telemetry associated with the specified level.
</summary>
<param name="minimumRequiredTelemetryLevel">The minimum telemetry level needed to send a certain type of data.</param>
<returns>True if the configured level is equally permissive or more permissive than required. Otherwise, false.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WatsonSessionChannelBuilder">
<summary>
WatsonSessionChannelBuilder can build a WatsonSessionChannel.
There is 2 stages of the creation. 1 stage is to create Builder itself with all necessary
parameters to build a WatsonSessionChannel. Second stage is to Build a WatsonSessionChannel when TelemetrySession
object is known.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WatsonSessionChannelBuilder.Build(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Build WatsonChannelBuilder and all its dependencies
</summary>
<param name="hostSession"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.BucketFilter">
<summary>
Used to affect the behavior of one or more fault events based on matching bucketer paremeter filters.
For example, a fault event whose buckete parameters match the filter values can have its report to
Watson disabled, or can have a process dump added.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.BucketFilter.IndexOfBucketParameter(System.String)">
<summary>
Gets the index of the specified bucket parameter name (ex. the index of "P1" would be 0).
</summary>
<param name="bucketParameterName">The name of the bucket parameter whose index is to be returned.</param>
<returns>The index of the bucket parameter if the name is valid, or -1 if not.</returns>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.BucketFilter.Id">
<summary>
Gets or sets the ID of the bucket filter.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.BucketFilter.WatsonEventType">
<summary>
Gets or sets the Watson event type associated with the bucket filter (ex. VisualStudioNonFatalErrors2).
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.BucketFilter.BucketParameterFilters">
<summary>
Gets or sets the bucket parameter filters used to match against a fault event's bucket parameters.
The filter values are treated as regular expressions.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.BucketFilter.AdditionalProperties">
<summary>
Gets or sets additional properties associated with a bucket filter. For example, a bucket filter used
to add a process dump to a particular fault event can also specify the type of dump as an additional property.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.BucketFilter.#ctor(System.Guid,System.String)">
<summary>
Constructs a BucketFilter object.
</summary>
<param name="id">The ID (a guid) of the bucket filter.</param>
<param name="watsonEventType">The Watson event type of the bucket filter. Ex. VisualStudioNonFatalErrors2.</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.DefaultWerReportImplementation">
<summary>
Wrapper class for the Windows Error Reporting functions (not the Mock)
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.NoPumpSyncContext">
<summary>
A SynchronizationContext whose synchronously blocking Wait method does not allow
any reentrancy via the message pump.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.NoPumpSyncContext.DefaultInstance">
<summary>
A shared singleton.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.NoPumpSyncContext.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.NoPumpSyncContext" /> class.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.NoPumpSyncContext.Default">
<summary>
Gets a shared instance of this class.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.NoPumpSyncContext.Wait(System.IntPtr[],System.Boolean,System.Int32)">
<summary>
Synchronously blocks without a message pump.
</summary>
<param name="waitHandles">An array of type <see cref="T:System.IntPtr" /> that contains the native operating system handles.</param>
<param name="waitAll">true to wait for all handles; false to wait for any handle.</param>
<param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite" /> (-1) to wait indefinitely.</param>
<returns>
The array index of the object that satisfied the wait.
</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.SafeWerDumpCustomOptionsHandle.#ctor(Windows.Win32.System.ErrorReporting.WER_DUMP_CUSTOM_OPTIONS_V3@)">
<summary>
Creates handle to WER_DUMP_CUSTOM_OPTIONS_V3 struct containing the given process snapshot handle.
</summary>
<param name="options"></param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport">
<summary>
Watson Report handling
</summary>
<summary>
partial class FaultEvent, processing Exceptions and bucket information
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.DefaultWatsonSamplePercent">
<summary>
Default sample rate for sending FaultEvents to Watson
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.DefaultMaximumWatsonReportsPerSession">
<summary>
The default # of maximum Watson reports generated per telemetry session
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.DefaultMinimumSecondsBetweenWatsonReports">
<summary>
The default # of minimum seconds between Watson reports (1 hour).
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.SBuilderErrorInfo">
<summary>
Gets A stringbuilder that contains any information about this error report that we want to add to WER as a file
e.g. the entire nested chain of exceptions
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.bucketNames">
<summary>
registered at the Watson back end for our event "VisualStudioNonFatalErrors2"
Internally, buckets range P0-P9. Externally, P1-P10
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.#ctor(Microsoft.VisualStudio.Telemetry.FaultEvent,Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Given a FaultEvent, see if it's sampled. If so, call user provided callback and then process to Watson back end
</summary>
<param name="faultEvent"></param>
<param name="telemetrySession"></param>
<returns>true to post to AI back end</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.PostWatsonReport(System.Int32,System.Int32)">
<summary>
Submit the report to Watson back end on Windows
Execute the user provided delegate (if any) to provide more information.
it's invoked from native code slightly differently: see vscommon/testtools/VSTelemetry/VSTelemetryPackage/VSFaultEvent.cs
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.FillReportUploadInfo(Windows.Win32.System.ErrorReporting.WER_SUBMIT_RESULT,System.DateTime,System.DateTime)">
<summary>
Get the Report ID, if it is present and a report was actually submitted
</summary>
<param name="submitResult">WER report result returned by WerReportSubmit</param>
<param name="startTime">WER report start time</param>
<param name="endTime">WER report end time</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.ShouldSendSubmitArchiveParamsOnly(System.Boolean,System.Boolean)">
<summary>
If this Watson report is not sampled (!fullCab) but the user opted in to sending data like params to Watson (sendParams), then we want to send just the bucket params.
</summary>
<param name="fullCab">True if Watson report is sampled</param>
<param name="sendParams">True if user opted in to sending parameter data to Watson</param>
<returns>bool indicating if we should only send bucket parameters to Watson</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.SendWatsonReport(System.Boolean,System.Boolean,System.DateTime@,System.DateTime@)">
<summary>
Synchronously capture dumps and upload report to Watson.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.BeginSendWatsonReport(System.Boolean,System.Boolean)">
<summary>
Begins sending the Watson report.
This method returns before the Watson report is sent, so some data like reportId will not be available at the time this method returns. This data is
later added to the FaultEvent from <see cref="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.FillReportUploadInfo(Windows.Win32.System.ErrorReporting.WER_SUBMIT_RESULT,System.DateTime,System.DateTime)" />.
</summary>
<param name="fullCab">Set to true to capture heap dumps.</param>
<param name="sendParams">Only bucket params will be included in Watson report if this value is true and fullCab is false</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.AddFilesToReport(Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportBuilder)">
<summary>
Adds all the necessary files to the report.
</summary>
<param name="reportBuilder"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.SubmitReport(Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportBuilder,Windows.Win32.System.ErrorReporting.WER_SUBMIT_FLAGS,System.DateTime@,System.DateTime@)">
<summary>
Submits the WER report
</summary>
<param name="reportBuilder"></param>
<param name="watsonFlags"></param>
<param name="startTime"></param>
<param name="endTime"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.SetReportParameters(Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportBuilder)">
<summary>
Sets the WER report's bucket parameters.
</summary>
<param name="reportBuilder"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.AddDumpsToReport(Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportBuilder,System.Boolean)">
<summary>
Uses the <see cref="P:Microsoft.VisualStudio.Telemetry.FaultEvent.ListProcessIdsToDump" /> property to add dumps for the specified processes to the WER report.
Sets the related telemetry properties in the <see cref="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.FaultEvent" />.
</summary>
<param name="reportBuilder"></param>
<param name="useSnapshot">True if dump should be captured via a snapshot</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.AddErrorInfoFile(Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportBuilder)">
<summary>
Adds a file to the report containing the text contained in the <see cref="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.SBuilderErrorInfo" /> StringBuilder.
</summary>
<param name="reportBuilder"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.SetDumpTypeFaultEventProperties">
<summary>
Sets the telemetry properties indicating what type of dump will be collected
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.SendSupplementalInfoEvent(System.Guid)">
<summary>
Sends a telemetry event with properties that may not get set on original FaultEvent if dump is captured asynchronously.
</summary>
<param name="correlationId">A GUID to correlate this event with the corresponding FaultEvent</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetFaultEventDumpModeRemoteSettingValue">
<summary>
Returns an int representing the FaultEvent dump mode, with the following definitions:
0: use original FaultEvent dump implementation
1: capture dump asynchronously
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.TrySetBucketParameter(System.Int32,System.String)">
<summary>
if the user creates a FaultEvent and sets bucketparameters already, we won't override them
</summary>
<param name="bucketNum"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.RemoveFrames(System.Diagnostics.StackFrame[])">
<summary>
Removes telemetry frames from the top of a runtime stack trace
</summary>
<param name="frames">the runtime stack trace</param>
<returns>the same stacktrace without the telemetry frames included</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.FormatException(System.Exception)">
<summary>
A culture agnostic replacement for Exception.ToString()
</summary>
<param name="ex">The exception to be converted to a string</param>
<returns>the string representation of the exception</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.FormatExceptionStack(System.Exception,System.Boolean)">
<summary>
Creates a culture agnostic string represenatation of just an exception stack trace
</summary>
<param name="ex">the exception</param>
<param name="shorten">defaults to false, attempts to shorten the stack to mitigate length issues</param>
<returns>a culture agnostic string represenatation of the exception stack trace</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.FormatStackTrace(System.Collections.Generic.IEnumerable{System.Diagnostics.StackFrame},System.Int32,System.Boolean)">
<summary>
Takes any collection of StackFrame objects (from an exception or the runtime stack, typically) and converts it to a culture agnostic string representation.
</summary>
<param name="stackFrames">The input stack frames</param>
<param name="maxLength">the maximum length. If it is longer, it will be truncated.</param>
<param name="shorten">defaults to false, attempts to shorten the stack to mitigate length issues</param>
<returns>a culture agnostic string representation of the stack trace</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.AddExceptionInfoToIncludedFile(System.Exception)">
<summary>
Include a file for the exception and any inner exceptions
Todo: privacy review.
</summary>
<param name="exceptionObject"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetInnerMostException(System.Exception,System.Func{System.Exception,System.Boolean})">
<summary>
get inner most exception, perhaps with a constraint
first get outermost to innermost in a list, then reverse the list and apply constraint
</summary>
<param name="exceptionObject"></param>
<param name="exceptionChainRestraint"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportBuilder.Create(System.String,Windows.Win32.System.ErrorReporting.WER_REPORT_TYPE)">
<summary>
Creates a new WatsonReportBuilder instance with the specified report and event type.
</summary>
<param name="watsonEventType"></param>
<param name="reportType"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportShim">
<summary>
Class to allow mocking of pinvoke WER functions
Defaults to DefaultImplementation, which actually calls the WER API
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerReportShim.SetImplementation(Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.IWerReport)">
<summary>
called from tests to override implementation
</summary>
<param name="implementation">if null, restores to default</param>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi">
<summary>
Managed wrappers around wer APIs added in Windows 10 RS2 that allow access to queued or archived wer reports
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.WER_REPORT_PARAMETER">
<summary>
Represents a single Watson bucket parameter.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.WER_REPORT_PARAMETER.Name">
<summary>
The bucket parameter name
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.WER_REPORT_PARAMETER.Value">
<summary>
The bucket Parameter value
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.REPORT_STORE_TYPES">
<summary>
Defines the types of Wer report store that can be opened.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.REPORT_STORE_TYPES.MACHINE_ARCHIVE">
<summary>
Machine wide store of archived reports. You cannot depend on how long reports will be here.
older reports are better obtained through the event log.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.REPORT_STORE_TYPES.MACHINE_QUEUE">
<summary>
Machine wide store of queued reports.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IsStoreInterfacePresent">
<summary>
Gets a value indicating whether the API is present. Should be present on RS2+.
If it is not, opening a store will return null.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerStore">
<summary>
Allows you to iterate the available wer reports on the computer.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerStore.GetReports">
<summary>
Gets an enumeration of the reports this store contains
</summary>
<returns>An enumeration of the reports in this store.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.GetStore(Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.REPORT_STORE_TYPES)">
<summary>
Opens a wer report store and allows you to enumerate the reports it contains.
If called on an earlier operating system where the relevant APIs do not exist,
it will return an empty enumerable.
</summary>
<param name="type"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerReportData">
<summary>
Exposes information about a wer report.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerReportData.ReportId">
<summary>
Gets the locally unique report ID. Should be present for all reports.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerReportData.EventType">
<summary>
Gets the event Type the report was sent to.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerReportData.Parameters">
<summary>
Gets an array of length 10 with the bucket parameters for this report
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerReportData.CabID">
<summary>
Gets the cab ID, if present. This will be empty for reports that are not uploaded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerReportData.BucketId">
<summary>
Gets the bucket ID. This will be empty for reports that are not uploaded.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WerStoreApi.IWerReportData.TimeStamp">
<summary>
Gets the Timestamp of this report's creation
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.FaultEvent">
<summary>
A telemetry event representing a Fault, such as an exception
We have 2 back ends to send data: the Telemetry back end and the Watson (back end).
Cross platform, (as on Mac, Linux), we can use the same architecture.
For example, on Mac, there's Merp, the Max implementation of Windows Error Reporting.
FaultEvent inherits from TelemetryEvent
User can create an instance of this class directly and can add custom properties directly on the class without using call back.
After creating one of these, call Session.PostFault(faultEvent) which will call the callback, post the event to Watson (if sampled) and Post as a normal telemetry event
Or you can use TelemetrySession.PostFault() rather than this class directly.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultEvent.InternalFaultEventName">
<summary>
used for real faults (not tests) that occur within the telemetry assembly itself
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.WatsonSamplePercent">
<summary>
Gets or sets the sample rate used to calculate whether or not a qualifying fault event will be reported to Watson.
A fault event qualifies for reporting to Watson if it is modified in at least one of the following methods is called on it:
1) AddErrorInformation
2) AddFile
3) AddProcessDump
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.MaximumWatsonReportsPerSession">
<summary>
Gets or sets the maximum number of fault events that will be reported to Watson during the telemetry session.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.MinimumSecondsBetweenWatsonReports">
<summary>
Gets or sets the minimum number of seconds that must elapse after a Watson report is sent for a fault event before another report can be sent.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultEvent.BucketFiltersToDisableWatsonReport">
<summary>
This property is obsolete. Use TelemetrySession.BucketFiltersToEnableWatsonForFaults to enable Watson reports for faults. They are now disabled by default instead of enabled by default.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultEvent.BucketFiltersToAddProcessDump">
<summary>
This property is obsolete. Use TelemetrySession.BucketFiltersToAddDumpsToFaults to add process dumps to fault events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.IsIncludedInWatsonSample">
<summary>
Gets or sets a value indicating whether we sample this event locally. Affects Watson only.
If false, will not send to Watson: only sends the telemetry event to AI and doesn't call callback.
Changing this will force the event to send to Watson. Be careful because it can have big perf impact.
If unchanged, it will be set according to the default sample rate. See <see cref="F:Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.DefaultWatsonSamplePercent" />
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.DumpCollectionType">
<summary>
Gets or sets the type of dump that's created for AddProcessDump and sent to Watson
AddProcessDump indicates which processes to dump, and DumpCollectionType determines the kind of dump
To get a full heap dump, set this value to WER_DUMP_TYPE.WerDumpTypeHeapDump.
e.g. (ev as FaultEvent).DumpCollectionType = WER_DUMP_TYPE.WerDumpTypeHeapDump;
Another way to set this property is to add a normal Telemetry Property into the TelemetryEvent Property Bag
e.g. faultEvent.Properties["DUMPCOLLECTIONTYPE"] = "werdumptypeheapdump"; //works from native code, uses Enum.Parse case insensitive.
The property bag setting (usable from native code) will override the Property setting (which is much more discoverable in intellisense)
When calling TelemetrySession.PostEvent(faultEvent), WerReportAddDump is called for each process in AddProcesDump with the DumpCollectionType specified.
All processes dumped will have the same DumpCollectionType
You can control the type of dump (and even whether to send a dump) via remote settings in your GatherEventDetails callback
Very useful for collecting heap dumps for those rare cases that are very difficult to debug.
Once the issue is fixed, Remote settings can turn this off.
Defaults to WER_DUMP_TYPE.WerDumpTypeMiniDump
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.WatsonEventType">
<summary>
Gets or sets This must be an event type registered on the Watson back end like "VisualStudioNonFatalErrors2".
All "normal" FaultEvents should go to VisualStudioNonFatalErrors2
Various Watson event types behave differently. For example the # and retention policy of collected cabs, the routing of cabs.
e.g. "VisualStudioMemWatson" is used to collect a stream of cabs to be processed by the PerfWatson backend.
These events can be queried from http://Watson .
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.SynchronousDumpCollection">
<summary>
Gets or sets a value indicating whether we capture the dump file synchronously or on the threadpool.
If we're collecting a dump due to ThreadPool starvation, we don't want to use the ThreadPool to collect the dump
(the Threadpool is starved and by the time the dump code is run, the pool is drained)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.PostThisEventToTelemetry">
<summary>
Gets or sets a value indicating whether this faultevent should be posted to AI. (telemetry internal failures can cause infinite recursion)
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.SBuilderAdditionalUserErrorInfo">
<summary>
Gets A stringbuilder that contains any information about this error report that we want to add to WER as a file
callback users can add strings
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultEvent.UserOptInToWatson">
<summary>
This keeps track of whether and how the consumer of this API opted into sending data to Watson.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Telemetry.FaultEvent.AddedErrorInformation">
<summary>
Gets or sets a value indicating whether or not the FaultEvent owner has modified the event in a way that would make it eligible for reporting to Watson.
We don't want to report default FaultEvents to Watson because it can have performance impact, and all default properties are posted by VS Telemetry.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.#ctor(System.String,System.String,System.Exception,System.Func{Microsoft.VisualStudio.Telemetry.IFaultUtility,System.Int32})">
<summary>
Create an uncategorized severity FaultEvent.
The pattern:
1. FEvent = new FaultEvent(...)
2. tsession.PostEvent(FEvent) //posts the event to Watson and AI
External users should call the TelemetrySession extension methods "PostFault" (which calls PostEvent)
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="exceptionObject"></param>
<param name="gatherEventDetails">This delegate is called to gather expensive details (like jscript call stacks) only when not sampled.
The callback parameter can be cast to to a FaultEvent or (IVsFaultEvent in native) which inherits from TelemetryEvent (IVsTelemetryEvent in native)
<see cref="T:Microsoft.VisualStudio.Telemetry.IFaultUtility" />
</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.#ctor(System.String,System.String,Microsoft.VisualStudio.Telemetry.FaultSeverity,System.Exception,System.Func{Microsoft.VisualStudio.Telemetry.IFaultUtility,System.Int32})">
<summary>
Create a FaultEvent.
The pattern:
1. FEvent = new FaultEvent(...)
2. tsession.PostEvent(FEvent) //posts the event to Watson and AI
External users should call the TelemetrySession extension methods "PostFault" (which calls PostEvent)
It becomes more useful when correlated with <see cref="T:Microsoft.VisualStudio.Telemetry.UserTaskEvent" /> or <see cref="T:Microsoft.VisualStudio.Telemetry.OperationEvent" /> which may have led to the fault occurence.
</summary>
<param name="eventName">
An event name following data model schema.
It requires that event name is a unique, not null or empty string.
It consists of 3 parts and must follows pattern [product]/[featureName]/[entityName]. FeatureName could be a one-level feature or feature hierarchy delimited by "/".
For examples,
vs/platform/opensolution;
vs/platform/editor/lightbulb/fixerror;
</param>
<param name="description"></param>
<param name="faultSeverity">The severity of the fault, used to identify actionable or important faults in divisional tools and reporting.</param>
<param name="exceptionObject"></param>
<param name="gatherEventDetails">This delegate is called to gather expensive details (like jscript call stacks) only when not sampled.
The callback parameter can be cast to to a FaultEvent or (IVsFaultEvent in native) which inherits from TelemetryEvent (IVsTelemetryEvent in native)
<see cref="T:Microsoft.VisualStudio.Telemetry.IFaultUtility" />
</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.AddErrorInformation(System.String)">
<summary>
Each Watson cab includes a text file (ErrrorInformation.txt) with basic information such as Error.ToString,
telemetry properties, etc.
Call this to add information to the file
This does the work of creating a unique temp file name per instance and adding standard information
NOTE: Calling this will result in the ErrorInformation.txt being marked for PII, and therefore block
the CAB upload unless the users' telemetry settings are Full.
</summary>
<param name="information"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.AddProcessDump(System.Int32)">
<summary>
NOTE: When using FaultEvent from VisualStudio, you are strongly encouraged to not directly call AddProcessDump for the current process,
but instead remotely trigger it with a targeted notification. Search for "APPLYING BUCKET FILTERS TO FAULT EVENTS" in the VS repo for details.
Add the process id of a process for which to collect a dump
Dump collection doese not occur unless the Watson back end requests a dump
You can request a heap dump for a particular bucket from the Watson portal: https://watsonportal.microsoft.com/.
Dump collection is out of process, to reduce chance of deadlock
</summary>
<param name="pid"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.SetBucketParameter(System.Int32,System.String)">
<summary>
Set the bucket parameter for a Watson issue
Should not contain any full file paths or PII
A unique set of 10 bucket parameters constitues a BucketId, which is considered the same failure.
When passing in an Exception Object, the bucket parameters are set by the IClrErrorReportingManager::GetBucketParametersForCurrentException
</summary>
<param name="bucketNumber">int 0-9</param>
<param name="newBucketValue">max len 255. Can be queried at http://Watson </param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.SetAppName(System.String)">
<summary>
Set the bucket parameter attributed to the fault's reported app name as processed in Watson and elsewhere. This is automatically set in most instances.
You should only change the reported app name in very special circumstances where the app reporting telemetry isn't also the app experiencing the fault.
</summary>
<param name="appName">The name of the app</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.SetAppVersion(System.String)">
<summary>
Set the bucket parameter attributed to the fault's reported app version as processed in Watson and elsewhere. This is automatically set in most instances.
You should only change the reported app version in very special circumstances where the app reporting telemetry isn't also the app experiencing the fault.
</summary>
<param name="appVersion">The version of the application</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.SetFailureParameters(System.String,System.String,System.String,System.String,System.String)">
<summary>
Set the bucket parameters which compose the unique Failure ID for the reported fault as processed in Watson and elsewhere. Failure parameters which are left unspecified or passed a null value will retain their original value set by default.
See the DevDiv wiki for additional documentation. This is the recommended API to use for customizing the unique failure identification process for your team's faults.
</summary>
<param name="failureParameter0">The parameter value for Failure Parameter 0</param>
<param name="failureParameter1">The parameter value for Failure Parameter 1</param>
<param name="failureParameter2">The parameter value for Failure Parameter 2</param>
<param name="failureParameter3">The parameter value for Failure Parameter 3</param>
<param name="failureParameter4">The parameter value for Failure Parameter 4</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.SetNonFailureParameters(System.String,System.String)">
<summary>
Set the bucket parameters which compose the non-failure parameters as processed in Watson and elsewhere. Parameters which are left unspecified or passed a null value will retain their original value set by default.
</summary>
<param name="nonFailureParameter0">The parameter value for Non-Failure Parameter 0</param>
<param name="nonFailureParameter1">The parameter value for Non-Failure Parameter 1</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.GetBucketParameter(System.Int32)">
<summary>
Get the value of a bucket parameter
</summary>
<param name="bucketNumber">int 0-9</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.AddFile(System.String)">
<summary>
add a file to the report sent back to Microsoft
</summary>
<param name="fullPathFileName"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.FaultEvent.ToString">
<summary>
ToString to make debugging easier: show in debug watch window
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.WER_DUMP_TYPE">
<summary>
Dump type https://msdn.microsoft.com/en-us/library/windows/desktop/bb513622(v=vs.85).aspx
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WER_DUMP_TYPE.WerDumpTypeMicroDump">
<summary>
A limited minidump that contains only a stack trace.
This type is equivalent to creating a minidump with the following options:
•MiniDumpWithDataSegs
•MiniDumpWithUnloadedModules
•MiniDumpWithProcessThreadData
•MiniDumpWithoutOptionalData
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WER_DUMP_TYPE.WerDumpTypeMiniDump">
<summary>
A minidump.
This type is equivalent to creating a minidump with the following options:
•MiniDumpWithDataSegs
•MiniDumpWithUnloadedModules
•MiniDumpWithProcessThreadData
•MiniDumpWithTokenInformation (Windows 7 and later)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WER_DUMP_TYPE.WerDumpTypeHeapDump">
<summary>
An extended minidump that contains additional data such as the process memory.
This type is equivalent to creating a minidump with the following options:
•MiniDumpWithDataSegs
•MiniDumpWithProcessThreadData
•MiniDumpWithHandleData
•MiniDumpWithPrivateReadWriteMemory
•MiniDumpWithUnloadedModules
•MiniDumpWithFullMemoryInfo
•MiniDumpWithThreadInfo (Windows 7 and later)
•MiniDumpWithTokenInformation (Windows 7 and later)
•MiniDumpWithPrivateWriteCopyMemory (Windows 7 and later)
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WER_DUMP_TYPE.WerDumpTypeTriageDump">
<summary>
not in MSDN yet
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.WER_DUMP_TYPE.WerDumpTypeMax">
<summary>
Max
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.FaultSeverity">
<summary>
An indicator of the severity of a given fault based on anticipated importance or impact.
More severe faults will be promoted higher in reports, and less severe faults will be de-emphasized.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultSeverity.Uncategorized">
<summary>
Uncategorized faults have no severity assigned by the developer. Developers should NOT use this severity in any new instrumentation.
The majority of uncategorized faults are being assigned the uncategorized value by default in legacy code.
Teams with high volumes of uncategorized fault data may be asked to make changes to add real severity to their faults.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultSeverity.Diagnostic">
<summary>
Diagnostics faults represent faults which are likely informational in nature. The fault may have no clear tangible impact, it may
be considered "by design" but still undesirable, or the fault only matters in relation to other faults. The fault information is
nonetheless useful to investigate or root-cause an issue, or to inform future investments or changes to design, but the fault
is not itself an indicator of an issue warranting attention.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultSeverity.General">
<summary>
General faults are the most common type of fault - the impact or significance of the fault may not be known during instrumentation.
Further investigation may be required to understand the nature of the fault and, if possible, assign a more useful severity.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultSeverity.Critical">
<summary>
Critical faults are faults which represent likely bugs or notable user impact. If this kind of fault is seen, there is a high
likelihood that there is some kind of bug ultimately causing the issue.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Telemetry.FaultSeverity.Crash">
<summary>
Crash faults are faults which definitively represent a bug or notable user impact because they represent a fatal crash. While
Watson or other systems may collect a crash dump, crash faults are likely to include other contextual diagnostic information.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Telemetry.IFaultUtility">
<summary>
Interface for FaultCallback
used for native code callers too
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IFaultUtility.AddErrorInformation(System.String)">
<summary>
Each Watson dump includes a text file (ErrrorInformation.txt) with basic information such as Error.ToString,
telemtry properties, etc.
Call this to add information to the file
</summary>
<param name="information"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IFaultUtility.AddProcessDump(System.Int32)">
<summary>
Creates a process dump. The dump type (Full/Mini) is controlled by the Watson back end
</summary>
<param name="pid">The processid</param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IFaultUtility.AddFile(System.String)">
<summary>
Include a file in the report
</summary>
<param name="fullpathname"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IFaultUtility.SetBucketParameter(System.Int32,System.String)">
<summary>
Set the bucket parameter
</summary>
<param name="bucketNumber">Parameter number. 0 based: internally 0-9. Externally (in event log) the 1st param is P1)</param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.IFaultUtility.GetBucketParameter(System.Int32)">
<summary>
Get the value for a particular bucket. Useful to get the values in the callback to see what they were set to
</summary>
<param name="bucketNumber"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsInternalSettings.FaultEventWatsonSamplePercent">
<summary>
Get the sample rate for Fault Events from registry
useful for testing
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventWatsonSampleRate /t REG_DWORD /d 100 /f
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsInternalSettings.FaultEventMaximumWatsonReportsPerSession">
<summary>
Get the default # of Watson reports per session from registry
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventMaximumWatsonReportsPerSession /t REG_DWORD /d 100 /f
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsInternalSettings.FaultEventMinimumSecondsBetweenWatsonReports">
<summary>
Get the default # of seconds between Watson reports from registry
Reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v FaultEventMinimumSecondsBetweenWatsonReports /t REG_DWORD /d 3600 /f
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Telemetry.WindowsInternalSettings.GetUserEventTag">
<summary>
The registry can have an EventTag, such as "PerfLab":
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\Telemetry /v EventTag /t reg_sz /d PerfLab
this will be added to the Vs/TelemetryApi/Session/Initialized event with a property name "VS.TelemetryApi.RegistrySettings.EventTag", value "PerfLab"
This tag can be changed without binary rebuild/re-release: the user can be instructed to set the value in the registry
This EventTag can be used to group users, e.g. a select group of internal dogfood users, compare lab data to real world.
</summary>
<returns>a string. If empty, returns "null"</returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.DefaultExperimentationFilterProvider">
<summary>
This filter provider provides information about some properties.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.DefaultExperimentationFilterProvider.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Provider is required TelemetrySession to get information from
</summary>
<param name="telemetrySession"></param>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.DefaultExperimentationFilterProvider.GetFilterValue(Microsoft.VisualStudio.Experimentation.Filters)">
<summary>
Gets filters value based on the passed enum.
</summary>
<param name="filter"></param>
<returns>Formatted string to attach to the headers</returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.ExperimentationService">
<summary>
Experimentation service to provide functionality of A/B experiments:
- reading flights;
- caching current set of flights;
- get answer on if flights are enabled.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationService.Default">
<summary>
Gets default experimentation service
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationService.DefaultSetter">
<summary>
Gets default setter experimentation service
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationService.DefaultStatus">
<summary>
Gets default status experimentation service
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.CreateDefaultExperimentationService(Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer)">
<summary>
Construct an experimentation service object using an initializer obect and set it as the default
</summary>
<param name="initializer"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.#ctor(Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer)">
<summary>
Construct experimentation service object using initializer object.
</summary>
<param name="initializer"></param>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.QueryCachedFlightStatus(System.String)">
<summary>
Get status of the requested flight, if it is enabled for the user + filters. Fast and cheap method.
Does not send a telemetry event to indicate a triggered experimental scenario.
Read information from the local storage. Can be used on a startup.
IsCachedFlightEnabled should be called at a later point when the experimental scenario will be triggered.
</summary>
<param name="flight">flight name is a string no more than 16 characters (case-insensitive)</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.IsCachedFlightEnabled(System.String)">
<summary>
Get status of the requested flight, if it is enabled for the user + filters. Fast and cheap method.
Read information from the local storage. Can be used on a startup.
Sends telemetry event to indicate the triggered experimental scenario.
</summary>
<param name="flight">flight name is a string no more than 16 characters (case-insensitive)</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.QueryFlightStatusAsync(System.String,System.Threading.CancellationToken)">
<summary>
Get actual flight status without sending a telemetry event to indicate a triggered experimental scenario.
If requests in the progress waits on them.
IsFlightEnabledAsync should be called at a later point when the experimental scenario will be triggered.
</summary>
<param name="flight">Flight name (case-insensitive)</param>
<param name="token">cancellation token to interrupt process</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.IsFlightEnabledAsync(System.String,System.Threading.CancellationToken)">
<summary>
Get actual flight status. If requests in the progress waits on them.
Sends telemetry event to indicate the triggered experimental scenario.
</summary>
<param name="flight">Flight name (case-insensitive)</param>
<param name="token">cancellation token to interrupt process</param>
<returns></returns>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationService.AllEnabledCachedFlights">
<summary>
Gets list of the enabled cached flights.
</summary>
<returns>List of enabled cached flights</returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.Start">
<summary>
Start the service. Ask all flights providers to start polling there endpoints to get actual flight set.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.SetFlight(System.String,System.Int32)">
<summary>
Set flight for this machine using flightName as a flight and timeoutInMinutes as an expiration timeout.
</summary>
<param name="flightName"></param>
<param name="timeoutInMinutes"></param>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.DisposeManagedResources">
<summary>
End of work with experimentation service. Release all resources.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.GetCachedTreatmentVariables(System.String)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.GetTreatmentVariablesAsync(System.String,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.GetStringTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.GetIntTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.GetBoolTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationService.GetDoubleTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer">
<summary>
Initializer class, which contains all settings necessary for ExperimentationService functionality.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer.ExperimentationTelemetry">
<summary>
Gets or sets telemetry service, which is used to send and set flights telemetry.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer.ExperimentationFilterProvider">
<summary>
Gets or sets filter provider, which provides filters necessary to build correct query to remote service.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer.KeyValueStorage">
<summary>
Gets or sets key-value storage necessary to keep local data, like cached flights.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer.ExperimentationOptinStatusReader">
<summary>
Gets or sets experimentation optin status reader to understand whether we can start/work with remote services.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer.BuildDefault">
<summary>
Create default instance of the initializer with default settings.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.ExperimentationServiceInitializer.FillWithDefaults">
<summary>
Fill empty properties with default values without overriding initialized fields.
</summary>
<returns>Instance of the experimentation initializer</returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.AFDFlightsProvider">
<summary>
Provides flights from the AFD (Azure Front Door):
- build and send request to the AFD every 30 minutes;
- parse response and update flights if necessary;
- use local storage to keep flights from the previous session.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.AFDFlightsProvider.RegExpression">
<summary>
Edge Endpoint only allows alphanumeric and dashes. We will use this regular
expression to replace all non allowed characters with dashes.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.AFDFlightsProvider.BuildFlightsKey">
<summary>
Build cach path key with filters. Key should look like:
%BASE_PATH%\%ApplicationName%\%ApplicationVesion%\%Branch%\%flightsKey%
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.CachedRemotePollerFlightsProviderBase`1">
<summary>
Base class for the following functionality:
- poll remote flight source with specific interval;
- get current flights;
- set current flights;
- cache new flights/send signals;
- cancel requests on dispose;
- start polling.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.CachedRemotePollerFlightsProviderBase`1.BuildFlightsKey">
<summary>
Build cach path key.
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.DisabledFlightsRemoteFileReaderFactory">
<summary>
Implementation of the IRemoteFileReaderFactory which create preset IRemoteFileReader
which uses RemoteControl to download shipping flights from the Azure account.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.ActiveFlightsData">
<summary>
Data Class to be used to deserialize response from Edge endpoint
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.ConfigData">
<summary>
Data Class to be used to deserialize response from Remote Control
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ConfigData.Id">
<summary>
Gets or sets identifier for a set of Treatment variables
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.ConfigData.Parameters">
<summary>
Gets or sets treatment Variable dictionary string -&gt; object
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.DisabledFlightsData">
<summary>
Data Class to be used to deserialize response from Remote Control
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.FlightAllocation">
<summary>
FlightAllocation holds a single FlightName and AllocationId
for a full AssignmentContext enabled flight from Control Tower.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.FlightAllocation.FlightName">
<summary>
Gets the name of flight being allocated.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.FlightAllocation.AllocationId">
<summary>
Gets an Id that disambiguates when the flight was allocated.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.FlightAllocationExtensions.UnionWithFlights(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Experimentation.FlightAllocation},System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Experimentation.FlightAllocation},System.StringComparer)">
<summary>
Merge otherFlights into flights and returns the new Enumerable.
For collisions, non-null AllocationIds are preserved over null
AllocationIds and valid AllocationIds on newly unioned otherFlights
will overwrite any previously existing valid AllocationId.
</summary>
<param name="flights"></param>
<param name="otherFlights"></param>
<param name="comparer"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.FlightAllocationExtensions.ExceptWithFlights(System.Collections.Generic.HashSet{Microsoft.VisualStudio.Experimentation.FlightAllocation},System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Experimentation.FlightAllocation},System.StringComparer)">
<summary>
Removes all excludedFlights from flights, matching on FlightName
and disregarding AllocationId differences.
</summary>
<param name="flights"></param>
<param name="excludedFlights"></param>
<param name="comparer"></param>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.ShippedFlightsData">
<summary>
Data Class to be used to deserialize response from Remote Control
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.FlightsRemoteFileReader">
<summary>
Implementation of the IRemoteFileReader interface to read remote file using preset remote control instance.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.FlightsRemoteFileReaderFactoryBase">
<summary>
Implementation of the IRemoteFileReaderFactory which create preset IRemoteFileReader
which uses RemoteControl to download shipping flights from the Azure account.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.LocalFlightsProvider">
<summary>
Provides flight configurations from the local machine's registry.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.MasterFlightsProvider.inclusiveFlightsProviders">
<summary>
List of real flight providers
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.MasterFlightsProvider.ForAllProviders(System.Action{Microsoft.VisualStudio.Experimentation.IFlightsProvider})">
<summary>
Perform action for all available providers
</summary>
<param name="action"></param>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.SetFlightsProvider.Flights">
<summary>
Gets active flights set by the setter API. We get all information from the local storage.
Flight list immutable once it is requested until the end of the process.
That means if flight was set in this instance and flight list was requested before this call
the flight will not be active until the next instance.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.SetFlightsProvider.SetFlight(System.String,System.Int32)">
<summary>
Set new flight.
</summary>
<param name="flightName"></param>
<param name="timeoutInMinutes"></param>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.SetFlightsProvider.ConvertRawDataToPlainFlights(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.Experimentation.FlightAllocation})">
<summary>
Raw flight data are in the format: "flight_name#yyyy-MM-dd HH:mm:ssZ".
First part (before '#') is the flight name and second part (after '#') is the expiration date of the flight.
Return clean set of the flight (without expired flights).
</summary>
<param name="rawFlights"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.SetFlightsProvider.FlightInformation.Parse(System.String)">
<summary>
Parse raw flight to the structure. Raw value is in format: flight#2017-12-12 03:24:59Z
</summary>
<param name="rawValue"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.ShippedFlightsRemoteFileReaderFactory">
<summary>
Implementation of the IRemoteFileReaderFactory which create preset IRemoteFileReader
which uses RemoteControl to download shipping flights from the Azure account.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.Filters">
<summary>
All available filters, can be updated.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.Filters.UserId">
<summary>
UserId which is used as primary unit for the experimentation.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.Filters.ApplicationName">
<summary>
Name of the application which uses experimentation service.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.Filters.ApplicationVersion">
<summary>
Version of the application which uses experimentation service.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.Filters.ApplicationSku">
<summary>
Sku of the application (VS specific - empty string if not applicable).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.Filters.BranchBuildFrom">
<summary>
branch of the application (VS specific - empty string if not applicable).
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.Filters.IsInternal">
<summary>
Is user is Microsoft internal.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.Experimentation.Filters.ChannelId">
<summary>
Installation channel id.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationFilterProvider">
<summary>
IExperimentationFilterProvider provides filter`s values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationFilterProvider.GetFilterValue(Microsoft.VisualStudio.Experimentation.Filters)">
<summary>
Get filter value by enum
</summary>
<param name="filter"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationOptinStatusReader">
<summary>
Provides current optedin status for the user to experimentation service.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.IExperimentationOptinStatusReader.IsOptedIn">
<summary>
Gets a value indicating whether user is optedin to the experimentation service.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationService">
<summary>
Experimentation service provides A/B experimentation functionality.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService.IsCachedFlightEnabled(System.String)">
<summary>
Get status of the requested flight, if it is enabled for the user + filters. Fast and cheap method.
Read information from the local storage. Can be used on a startup.
</summary>
<param name="flight">flight name is a string no more than 16 characters (case-insensitive)</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService.IsFlightEnabledAsync(System.String,System.Threading.CancellationToken)">
<summary>
Get actual flight status. If requests in the progress waits on them.
</summary>
<param name="flight">Interesting flight name (case-insensitive)</param>
<param name="token">cancellation token to interrupt process</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService.Start">
<summary>
Start the service. Ask all flights providers to start polling there endpoints to get actual flight set.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationService2">
<summary>
IExperimentationService2 provides information about all cached flights.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.IExperimentationService2.AllEnabledCachedFlights">
<summary>
Gets all enabled cached flights
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationService3">
<summary>
IExperimentationService3 provides information about Treatment Variables
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService3.GetCachedTreatmentVariables(System.String)">
<summary>
Get config data for experiments. Fast and cheap method.
Read information from the local storage. Can be used on a startup.
</summary>
<param name="configId">Configuration Id (case sensitive) for a set of Treatment Variables</param>
<returns>Dictionary of treatment variables.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService3.GetTreatmentVariablesAsync(System.String,System.Threading.CancellationToken)">
<summary>
Get config data for experiments. If request is in the progress wait.
</summary>
<param name="configId">Interesting configutation Id (case sensitive)</param>
<param name="token">cancellation token to interrupt process</param>
<returns>Dictionary of treatment variables.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService3.GetStringTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<summary>
Returns the string value of the Treatment Variable or null if not found or wrong type.
Example: TV: VisualStudio.stringTreatmentVariable: "foo"
</summary>
<param name="configId">ConfigId. This is the intial part of the Treatment variable name. (e.g. VisualStudio)</param>
<param name="varName">Treatment variable name. (e.g. stringTreatmentVariable)</param>
<param name="token">Cancellation token</param>
<returns>string <see cref="T:System.Threading.Tasks.Task`1" />Value of Treatment Variable, null is returned if the treatment variable requested is not present or of a differnt type.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService3.GetIntTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<summary>
Returns the int value of the Treatment Variable or null if not found or wrong type.
Example: TV: VisualStudio.intTreatmentVariable: 42
</summary>
<param name="configId">ConfigId. This is the intial part of the Treatment variable name. (e.g. VisualStudio)</param>
<param name="varName">Treatment variable name. (e.g. intTreatmentVariable)</param>
<param name="token">Cancellation token</param>
<returns>int? <see cref="T:System.Threading.Tasks.Task`1" />Value of Treatment Variable, null is returned if the treatment variable requested is not present or of a differnt type.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService3.GetBoolTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<summary>
Returns the value of the Treatment Variable or null if not found.
Example: TV: VisualStudio.boolTreatmentVariable: true
</summary>
<param name="configId">ConfigId. This is the intial part of the Treatment variable name. (e.g. VisualStudio)</param>
<param name="varName">Treatment variable name. (e.g. boolTreatmentVariable)</param>
<param name="token">Cancellation token</param>
<returns>bool? <see cref="T:System.Threading.Tasks.Task`1" />Value of Treatment Variable, null is returned if the treatment variable requested is not present or of a differnt type.</returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationService3.GetDoubleTreatmentVariableAsync(System.String,System.String,System.Threading.CancellationToken)">
<summary>
Returns the value of the Treatment Variable or null if not found.
Example: TV: VisualStudio.numTreatmentVariable: 4.3
</summary>
<param name="configId">ConfigId. This is the intial part of the Treatment variable name. (e.g. VisualStudio)</param>
<param name="varName">Treatment variable name. (e.g. numTreatmentVariable)</param>
<param name="token">Cancellation token</param>
<returns>double? <see cref="T:System.Threading.Tasks.Task`1" />Value of Treatment Variable, null is returned if the treatment variable requested is not present or of a differnt type.</returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationSetterService">
<summary>
IExperimentationSetterService provides functionality to set particular flight with expiration date.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationSetterService.SetFlight(System.String,System.Int32)">
<summary>
Set flight for this machine using flightName as a flight and timeoutInMinutes as an expiration timeout.
</summary>
<param name="flightName"></param>
<param name="timeoutInMinutes"></param>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationStatusService">
<summary>
IExperimentationStatusService provides methods to query status of a flight without triggering the experimental scenario.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationStatusService.QueryCachedFlightStatus(System.String)">
<summary>
Get status of the requested flight, if it is enabled for the user + filters. Fast and cheap method.
Does not send a telemetry event to indicate a triggered experimental scenario.
Read information from the local storage. Can be used on a startup.
IsCachedFlightEnabled should be called at a later point when the experimental scenario will be triggered.
</summary>
<param name="flight">flight name is a string no more than 16 characters (case-insensitive)</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationStatusService.QueryFlightStatusAsync(System.String,System.Threading.CancellationToken)">
<summary>
Get actual flight status without sending a telemetry event to indicate a triggered experimental scenario.
If requests in the progress waits on them.
IsFlightEnabledAsync should be called at a later point when the experimental scenario will be triggered.
</summary>
<param name="flight">Interesting flight name (case-insensitive)</param>
<param name="token">cancellation token to interrupt process</param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry">
<summary>
Telemetry for the experimentation service.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry.SetSharedProperty(System.String,System.String)">
<summary>
Set shared property for all events.
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry.PostEvent(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
<summary>
Opst one event with specified namd and property bag.
</summary>
<param name="name"></param>
<param name="properties"></param>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry2">
<summary>
Extended Telemetry for the experimentation service.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry2.PostFault(System.String,System.String)">
<summary>
Post a fault event with name and description
</summary>
<param name="eventName"></param>
<param name="description"></param>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry3">
<summary>
Extended Telemetry for the experimentation service.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry3.SetSharedProperty(System.String,System.Object)">
<summary>
Set shared property for all events.
</summary>
<param name="name"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IExperimentationTelemetry3.PostEvent(System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Opst one event with specified namd and property bag.
</summary>
<param name="name"></param>
<param name="properties"></param>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.IFlightsProvider.Flights">
<summary>
Gets list of <see cref="T:Microsoft.VisualStudio.Experimentation.FlightAllocation" /> known so far
</summary>
</member>
<member name="P:Microsoft.VisualStudio.Experimentation.IFlightsProvider.Configs">
<summary>
Gets list of the Configs containing Treatment Variables
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IFlightsProvider.WaitForReadyAsync(System.Threading.CancellationToken)">
<summary>
Wait for all asynchronous operations are ready (like reading from file, network, etc)
When operation completes Flights will be up to dated with actual value
</summary>
<param name="token"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IFlightsProvider.Start">
<summary>
Start working expensive operations (like network calls)
</summary>
</member>
<member name="T:Microsoft.VisualStudio.Experimentation.IKeyValueStorage">
<summary>
Storage which provides key-value pairs.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IKeyValueStorage.GetValue``1(System.String,``0)">
<summary>
Gets current value from the storage
</summary>
<typeparam name="T"></typeparam>
<param name="key"></param>
<param name="defaultValue"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.Experimentation.IKeyValueStorage.SetValue``1(System.String,``0)">
<summary>
Sets value to the storage.
</summary>
<typeparam name="T"></typeparam>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="T:Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity">
<summary>
Severity of the message
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity.Info">
<summary>
Just informational message.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity.Warning">
<summary>
Warning.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity.Error">
<summary>
Error.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity.Critical">
<summary>
Critical error, can't continue.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.LocalLogger.ILocalFileLogger">
<summary>
Logger interface
</summary>
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.ILocalFileLogger.Enabled">
<summary>
Gets or sets a value indicating whether logger enabled or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.ILocalFileLogger.FullLogPath">
<summary>
Gets full logger file path
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.ILocalFileLogger.Log(Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity,System.String,System.String)">
<summary>
Log current string with severity
</summary>
<param name="severity">Severity</param>
<param name="componentId">Component id, so it would be easy to filter later, might be null or empty</param>
<param name="text">Required free form logger text</param>
</member>
<member name="T:Microsoft.VisualStudio.LocalLogger.LocalFileLogger">
<summary>
Local file logger writes one line per event.
File path specified once per creation and can't be changed during lifetime.
It is possible to Enable/Disable logger during the object lifetime. By default logger is created disabled.
Once logger enabled log file is either created or opened for appending.
Flush on disk happens after every record to be sure that data will persist even in the case of abnormal program termination.
Use soft dispose method. No exceptions after dispose, just no-op. That would help for centralized logger, when logger is disposed and some
stale component trying to use it. We don't want to fail the whole application in this case.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.disposeCount">
<summary>
The number of times this object was disposed.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.#ctor(System.String)">
<summary>
Constructor with specified logger file name
</summary>
<param name="logFilePath"></param>
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.#ctor(Microsoft.VisualStudio.LocalLogger.ITextWriterFactory,System.String)">
<summary>
Internal constructor for unit testing
</summary>
<param name="textWriterFactory"></param>
<param name="logFilePath"></param>
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.Enabled">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.FullLogPath">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.Log(Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity,System.String,System.String)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.Dispose">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.LocalFileLogger.GenerateLogFileName">
<summary>
Generate unique file name. Unique name guaranteed by process name, process id, datatime, incremental sequence number per process.
</summary>
<returns>Generated full path name</returns>
</member>
<member name="T:Microsoft.VisualStudio.LocalLogger.LocalFileLoggerService">
<summary>
Controls default logger lifetime
</summary>
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.LocalFileLoggerService.DefaultLogger">
<summary>
Gets or sets default logger instance
</summary>
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.LocalFileLoggerService.Default">
<summary>
Gets or create and gets default logger instance
</summary>
</member>
<member name="T:Microsoft.VisualStudio.LocalLogger.NullLocalFileLogger">
<summary>
Null Local file logger placeholder for non-Windows platforms.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.NullLocalFileLogger.#ctor">
<summary>
Default constructor
</summary>
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.NullLocalFileLogger.Enabled">
<inheritdoc />
</member>
<member name="P:Microsoft.VisualStudio.LocalLogger.NullLocalFileLogger.FullLogPath">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.NullLocalFileLogger.Log(Microsoft.VisualStudio.LocalLogger.LocalLoggerSeverity,System.String,System.String)">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.LocalLogger.NullLocalFileLogger.Dispose">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider">
<summary>
Implementation of some default remote settings filters that all apps should be able to take advantage of.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.#ctor(Microsoft.VisualStudio.Telemetry.TelemetrySession)">
<summary>
Construct a default Remote Settings filter provider from the passed in TelemetrySession
</summary>
<param name="telemetrySession"></param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetMachineId">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetUserId">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetCulture">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetApplicationName">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetApplicationVersion">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetMacAddressHash">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetOsType">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetOsVersion">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetIsUserInternal">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetSessionRole">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetClrVersion">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetProcessArchitecture">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetClientSourceType">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.InitializePartnerId">
<summary>
Determines if we are running in a cloud instance and the particular partner ID.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetGroupPolicy">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetCurrentPolicy">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetLimitDumpCollection">
<inheritdoc />
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.GetMSPFlags">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.TelemetryPolicyLevels">
<summary>
Container for the telemetry policy values
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.TelemetryPolicyLevels.GroupPolicy">
<summary>
AllowTelemetry value for the Windows group data collection policy.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.TelemetryPolicyLevels.CurrentPolicy">
<summary>
AllowTelemetry value for the current Windows data collection policy.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.TelemetryPolicyLevels.LimitDumpCollection">
<summary>
LimitDumpCollection value for the Windows group data collection policy.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.DefaultRemoteSettingsFilterProvider.TelemetryPolicyLevels.MSPFlags">
<summary>
This QWORD value indicates whether a device is opted into various Microsoft
Special Programs (MSP). Among other things, these identify whether the device
is opted into the Data Processing Service for Windows (DPSW, aka Windows as
a Processor) or not. DPSW devices will not route any data to Client Watson,
regardless of the above AllowTelemetry values. Instead, Watson reports will
be routed to the Enterprise Data Platform (EDP).
MSP Bit flags documentation:
https://1dsdocs.azurewebsites.net/schema/Types/MspType.html
DPSW/EDP docs:
https://aka.ms/dpsw
https://msazure.visualstudio.com/One/_wiki/wikis/One.wiki/24344/Enterprise-Data-Platform
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.DeserializedRemoteSettings">
<summary>
Represents a Json file that has been copied down from Azure.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.DeserializedRemoteSettings.Scopes">
<summary>
Gets the collection of scopes that were deserialized from the remote settings json file or null if there
was an error parsing the json file.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.DeserializedRemoteSettings.Settings">
<summary>
Gets the collection of settings that were deserialized from the remote settings json file or null if there
was an error parsing the json file.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.DeserializedRemoteSettings.Error">
<summary>
Gets the error message that occurred while parsing the json file. If the json file was
parsed successfully this will be null.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.DeserializedRemoteSettings.Successful">
<summary>
Gets a value indicating whether the json file was parsed correctly.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.GroupedRemoteSettings.Merge(Microsoft.VisualStudio.RemoteSettings.GroupedRemoteSettings,Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsLogger)">
<summary>
Merges the passed in GroupedRemoteSettings from buckets into this instance.
Identical settings in this instance will be overwritten by those in buckets.
</summary>
<param name="buckets"></param>
<param name="logger"></param>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ValueKind">
<summary>
Kind of a value in the collection.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.ValueKind.Unknown">
<summary>
Value kind is unknown or the value doesn't exist
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.ValueKind.String">
<summary>
A string value
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.ValueKind.MultiString">
<summary>
Multiple strings value
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.ValueKind.DWord">
<summary>
A 32 bit value such as an int or bool.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.ValueKind.QWord">
<summary>
A 64 bit value such as a long.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage">
<summary>
Storage which provides key-value pairs, along with collections of key-value pairs.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.GetValue``1(System.String,System.String,``0)">
<summary>
Gets current value from the storage
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath"></param>
<param name="key"></param>
<param name="defaultValue"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.TryGetValue``1(System.String,System.String,``0@)">
<summary>
Gets current value from storage and indicates if key was found in storage.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath"></param>
<param name="key"></param>
<param name="value"></param>
<returns>true if value in storage, default(T) if not in storage</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.TryGetValueKind(System.String,System.String,Microsoft.VisualStudio.RemoteSettings.ValueKind@)">
<summary>
Gets kind of value from storage.
</summary>
<param name="collectionPath"></param>
<param name="key"></param>
<param name="kind"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.SetValue``1(System.String,System.String,``0)">
<summary>
Sets value to the storage.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath"></param>
<param name="key"></param>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.GetPropertyNames(System.String)">
<summary>
Gets all the property names under a specific collection.
</summary>
<param name="collectionPath"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.GetSubCollectionNames(System.String)">
<summary>
Gets all the sub-collection names under a specific collection.
</summary>
<param name="collectionPath"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.CollectionExists(System.String)">
<summary>
Determines if the collection exists.
</summary>
<param name="collectionPath"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.PropertyExists(System.String,System.String)">
<summary>
Determines if the collection exists.
</summary>
<param name="collectionPath"></param>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.DeleteCollection(System.String)">
<summary>
Deletes an entire collection, it's properties, and all sub-collections.
</summary>
<param name="collectionPath"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ICollectionKeyValueStorage.DeleteProperty(System.String,System.String)">
<summary>
Deletes a property under a collection.
</summary>
<param name="collectionPath"></param>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings">
<summary>
Remote settings provide configurable settings without code changes.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.SettingsUpdated">
<summary>
Subscribe to this event to be notified when Remote Settings have been updated.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.GetValue``1(System.String,System.String,``0)">
<summary>
Gets a remote setting value that is updated with both Targeted Notifications backend and RemoteControl file.
This does not return the most up-to-date setting, but the value
of whatever RemoteSettings has processed so far.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the remote setting</param>
<param name="defaultValue">Value to return if remote setting does not exist</param>
<returns>Remote setting value if it exists, otherwise defaultValue</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.TryGetValue``1(System.String,System.String,``0@)">
<summary>
Gets remote setting value if one exists.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the Remote Setting</param>
<param name="value">The value if it exists or default(T)</param>
<returns>True if value exists, false if it does not</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.GetValueAsync``1(System.String,System.String,``0)">
<summary>
Gets a remote setting value, that is updated with both Targeted Notifications backend and RemoteControl
file. Must be called after Start.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the remote setting</param>
<param name="defaultValue">Value to return if remote setting does not exist</param>
<returns>Remote setting value if it exists, otherwise defaultValue</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.GetValueKind(System.String,System.String)">
<summary>
Gets kind of a remote setting value.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the remote setting</param>
<returns>Kind of the value or unknown if it does not exist or error.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.GetActionsAsync``1(System.String)">
<summary>
Gets all remote actions of type T, wrapped in ActionWrapper. Waits for the call to Targeted Notifications backend
to complete. Must be called after Start.
</summary>
<typeparam name="T"></typeparam>
<param name="actionPath">Unique path to identify the actions to retrieve</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.Start">
<summary>
Starts a background operation to check for new Remote Settings on both Targeted Notifictions and Remote Control
backend and apply them.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.RegisterFilterProvider(Microsoft.VisualStudio.RemoteSettings.IScopeFilterProvider)">
<summary>
Add a scope filter provider. Not implemented yet.
</summary>
<param name="scopeFilterProvider">A filter provider</param>
<returns>IRemoteSettings interface for chaining</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.GetPropertyNames(System.String)">
<summary>
Gets all the property names under a specific collection.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<returns>IEnumerable of all properties under the specified collection. Empty if no properties exist.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.GetSubCollectionNames(System.String)">
<summary>
Gets all the sub-collection names under a specific collection.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<returns>IEnumerable of the names of the sub collections. Empty if it does not exist.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.CollectionExists(System.String)">
<summary>
Determines if the collection exists.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<returns>True if the colleciton exists, otherwise false</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings.PropertyExists(System.String,System.String)">
<summary>
Determines if the property exists.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the Remote Setting</param>
<returns>True if the property exists, otherwise false</returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings2">
<summary>
IRemoteSettings2 provides subscribable settings without code changes
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings2.SubscribeActions``1(System.String,System.Action{Microsoft.VisualStudio.RemoteSettings.ActionWrapper{``0}})">
<summary>
Subscribes to triggered remote actions of type T on the given action path.
</summary>
<typeparam name="T"></typeparam>
<param name="actionPath">Unique path to identify the actions to subscribe</param>
<param name="callback">Callback to be invoked with each individual action when it becomes available</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettings2.UnsubscribeActions(System.String)">
<summary>
Unsubscribes from triggered remote actions on the given action path
</summary>
<param name="actionPath">Unique path to identify the actions to unsubscribe</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsProvider.TryGetValue``1(System.String,System.String,``0@)">
<summary>
Gets current value from storage and indicates if key was found in storage.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath"></param>
<param name="key"></param>
<param name="value"></param>
<returns>true if value in storage, default(T) if not in storage</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsStorageHandler.TryGetValueAsync``1(System.String,System.String)">
<summary>
Gets current value from storage and indicates if key was found in storage.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath"></param>
<param name="key"></param>
<returns>true if value in storage, default(T) if not in storage</returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsTelemetry">
<summary>
Interface that describes the Telemetry operations Remote Settings will use.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsTelemetry.PostEvent(System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Posts the named event and properties to Telemetry.
</summary>
<param name="name">name of the event</param>
<param name="properties">dictionary of properties</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsTelemetry.CreateActivity(System.String)">
<summary>
Creates a Telemetry Activity with the specified name.
</summary>
<param name="name">The name of the activity.</param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsTelemetryActivity">
<summary>
Interface for telemetry activity.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsTelemetryActivity.Start">
<summary>
Starts the Telemetry Activity
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsTelemetryActivity.End">
<summary>
Ends the Telemetry Activity
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IRemoteSettingsTelemetryActivity.Post(System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary>
Posts the Telemetry Activity
</summary>
<param name="properties"></param>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.IScopeFilterProvider">
<summary>
Provides a scope filter.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.IScopeFilterProvider.Name">
<summary>
Gets name of the filter provider
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ISettingsCollection.TryGetValueKind(System.String,System.String,Microsoft.VisualStudio.RemoteSettings.ValueKind@)">
<summary>
Gets kind of value from storage.
</summary>
<param name="collectionPath"></param>
<param name="key"></param>
<param name="kind"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ISettingsCollection.GetPropertyNames(System.String)">
<summary>
Gets all the property names under a specific collection.
</summary>
<param name="collectionPath"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ISettingsCollection.GetSubCollectionNames(System.String)">
<summary>
Gets all the sub-collection names under a specific collection.
</summary>
<param name="collectionPath"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ISettingsCollection.CollectionExists(System.String)">
<summary>
Determines if the collection exists.
</summary>
<param name="collectionPath"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ISettingsCollection.PropertyExists(System.String,System.String)">
<summary>
Determines if the property exists.
</summary>
<param name="collectionPath"></param>
<param name="propertyName"></param>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsTelemetry">
<summary>
Interface that describes the Telemetry operations Remote Settings will use.
Adding a second instance to avoid breaking external consumers.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsTelemetry.SessionId">
<summary>
Gets the ID of the telemetry session.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsTelemetry.PostSuccessfulOperation(System.String,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
Posts a successful operation to telemetry.
</summary>
<param name="eventName">The name of the operation event.</param>
<param name="additionalProperties">Any additional properties to add to the telemetry event.</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsTelemetry.PostDiagnosticFault(System.String,System.String,System.Exception,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
Posts a fault event to telemetry with diagnostic severity.
</summary>
<param name="eventName">The name of the fault event.</param>
<param name="description">The human-readable description of the fault event.</param>
<param name="exception">The exception attributed to the fault, if applicable.</param>
<param name="additionalProperties">Any additional properties to add to the telemetry event.</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsTelemetry.PostGeneralFault(System.String,System.String,System.Exception,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
Posts a fault event to telemetry with general severity.
</summary>
<param name="eventName">The name of the fault event.</param>
<param name="description">The human-readable description of the fault event.</param>
<param name="exception">The exception attributed to the fault, if applicable.</param>
<param name="additionalProperties">Any additional properties to add to the telemetry event.</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsTelemetry.PostCriticalFault(System.String,System.String,System.Exception,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
Posts a fault event to telemetry with critical severity.
</summary>
<param name="eventName">The name of the fault event.</param>
<param name="description">The human-readable description of the fault event.</param>
<param name="exception">The exception attributed to the fault, if applicable.</param>
<param name="additionalProperties">Any additional properties to add to the telemetry event.</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteControlRemoteSettingsProvider.StartAsync">
<summary>
Starts a background operation to check for new Remote Settings and apply them.
</summary>
<returns>Remote settings from file</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteControlRemoteSettingsProvider.DisposeManagedResources">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsRemoteFileReader">
<summary>
Implementation of the IRemoteFileReader interface to read remote file using preset remote control instance.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsRemoteFileReaderFactory">
<summary>
Implementation of the IRemoteFileReaderFactory which create preset IRemoteFileReader
which uses RemoteControl to download shipping flights from the Azure account.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.RemoteSetting">
<summary>
Represents a single setting.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSetting.Path">
<summary>
Gets the path of the setting.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSetting.Name">
<summary>
Gets the name of the setting.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSetting.ScopeString">
<summary>
Gets or sets the ScopeString associated with this setting, or Null.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSetting.Value">
<summary>
Gets the value of the setting.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.SettingsType">
<summary>
Data types of the Remote Settings
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.SettingsType.Invalid">
<summary>
Invalid data type.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.SettingsType.Int32">
<summary>
4 byte setting
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.SettingsType.Int64">
<summary>
8 byte setting
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.SettingsType.String">
<summary>
Data type used to store string.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.RemoteSettings">
<summary>
Remote settings provide configurable settings without code changes.
</summary>
</member>
<member name="E:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.SettingsUpdated">
<summary>
Subscribe to this event to be notified when Remote Settings have been updated.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.#ctor(Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer)">
<summary>
Construct a new Remote Setting instance with values taken from the initializer.
</summary>
<param name="initializer">Values with which to initialize</param>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.Default">
<summary>
Gets a default remote settings instance that uses a "Default.json" file.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.GetValue``1(System.String,System.String,``0)">
<summary>
Gets a remote setting value that is updated with both Targeted Notifications backend and RemoteControl file.
This does not return the most up-to-date setting, but the value
of whatever RemoteSettings has processed so far.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the remote setting</param>
<param name="defaultValue">Value to return if remote setting does not exist</param>
<returns>Remote setting value if it exists, otherwise defaultValue</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.TryGetValue``1(System.String,System.String,``0@)">
<summary>
Gets remote setting value if one exists.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the Remote Setting</param>
<param name="value">The value or default(T)</param>
<returns>True if value exists, false if it does not</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.GetValueKind(System.String,System.String)">
<summary>
Gets kind of a remote setting value.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the remote setting</param>
<returns>Kind of the value or unknown if it does not exist or error.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.GetValueAsync``1(System.String,System.String,``0)">
<summary>
Gets a remote setting value, that is updated with both Targeted Notifications backend and RemoteControl
file. Must be called after Start.
</summary>
<typeparam name="T"></typeparam>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the remote setting</param>
<param name="defaultValue">Value to return if remote setting does not exist</param>
<returns>Remote setting value if it exists, otherwise defaultValue</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.GetActionsAsync``1(System.String)">
<summary>
Gets all remote actions of type T, wrapped in ActionWrapper. Waits for the call to Targeted Notifications backend
to complete. Must be called after Start.
</summary>
<typeparam name="T"></typeparam>
<param name="actionPath">Unique path to identify the actions to retrieve</param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.SubscribeActions``1(System.String,System.Action{Microsoft.VisualStudio.RemoteSettings.ActionWrapper{``0}})">
<summary>
Subscribes to triggered remote actions of type T on the given action path.
</summary>
<typeparam name="T"></typeparam>
<param name="actionPath">Unique path to identify the actions to subscribe</param>
<param name="callback">Callback to be invoked with each individual action when it becomes available</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.UnsubscribeActions(System.String)">
<summary>
Unsubscribes to triggered remote actions on the given action path
</summary>
<param name="actionPath">Unique path to identify the actions to unsubscribe</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.Start">
<summary>
Starts a background operation to check for new Remote Settings and apply them.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.RegisterFilterProvider(Microsoft.VisualStudio.RemoteSettings.IScopeFilterProvider)">
<summary>
Add a scope filter provider.
</summary>
<param name="scopeFilterProvider">A filter provider</param>
<returns>IRemoteSettings interface for chaining</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.GetPropertyNames(System.String)">
<summary>
Gets all the property names under a specific collection.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<returns>IEnumerable of all properties under the specified collection. Empty if no properties exist.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.GetSubCollectionNames(System.String)">
<summary>
Gets all the sub-collection names under a specific collection.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<returns>IEnumerable of the names of the sub collections. Empty if it does not exist.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.CollectionExists(System.String)">
<summary>
Determines if the collection exists.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<returns>True if the colleciton exists, otherwise false</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.PropertyExists(System.String,System.String)">
<summary>
Determines if the property exists.
</summary>
<param name="collectionPath">Path to the remote setting collection in the form My\Custom\Path</param>
<param name="key">Key of the Remote Setting</param>
<returns>True if the property exists, otherwise false</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettings.DisposeManagedResources">
<inheritdoc />
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider">
<summary>
RemoteSettingsFilterProvider provides filter`s values.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetMachineId">
<summary>
MachineId
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetUserId">
<summary>
UserId
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetVsIdAsync">
<summary>
VSid of the signed-in user (VS specific - empty Guid if not applicable).
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetCulture">
<summary>
Culture string of the application.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetBranchBuildFrom">
<summary>
Branch of the application (VS specific - empty string if not applicable).
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetApplicationName">
<summary>
Name of the application which uses remote settings service.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetApplicationVersion">
<summary>
Version of the application which uses remote settings service.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetVsSku">
<summary>
Sku of the application (VS specific - empty string if not applicable).
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetNotificationsCount">
<summary>
Number of notifications that have been sent
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetAppIdPackageGuid">
<summary>
Guid of the AppId package (VS specific - empty string if not available).
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetMacAddressHash">
<summary>
MacAddressHash
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetChannelId">
<summary>
Installation channel id.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetChannelManifestId">
<summary>
Installation channel manifest id.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetManifestId">
<summary>
Installation manifest id.
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetOsType">
<summary>
OS type. Currently only "Windows"
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetOsVersion">
<summary>
Current OS Version
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetIsUserInternal">
<summary>
Whether or not user is Microsoft internal
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetSessionRole">
<summary>
Session Role, client or server
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetClrVersion">
<summary>
Version of the CLR being used
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetProcessArchitecture">
<summary>
Process architecture value
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetClientSourceType">
<summary>
The product the client is being used in
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetGroupPolicy">
<summary>
The Group Policy for telemetry
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetCurrentPolicy">
<summary>
The Local Policy for telemetry
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetLimitDumpCollection">
<summary>
The dump collection policy
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsFilterProvider.GetMSPFlags">
<summary>
Get the current MSP flag settings
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer">
<summary>
Initializer for Remote Settings
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.UsePathPrefix">
<summary>
Gets or sets whether to use default prefix for collection names in Key-Value storage.
Like "Software\Microsoft\VisualStudio\RemoteSetting"
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.ScopeFilterProviders">
<summary>
Gets or sets the collection of ScopeFilterProviders that are registered to provide scopes.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.RemoteSettingsFileName">
<summary>
Gets or sets the remote settings file name.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.KeyValueStorage">
<summary>
Gets or sets the CollectionKeyValueStorage that will be used for the Remote Settings.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.ExperimentationService">
<summary>
Gets or sets the IExperimentationService that will be used to provide Flight scopes.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.TelemetryNotificationService">
<summary>
Gets or sets the ITelemetryNotificationProvider that will be used to subscribe to telemetry events.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.Telemetry">
<summary>
Gets or sets the telemetry implementation that will be used to log telemetry about Remote Settings operations.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.TargetedNotificationsTelemetry">
<summary>
Gets or sets the implementation utilized for core Targeted Notifications telemetry.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.TargetedNotificationsCacheStorage">
<summary>
Gets or sets the storage mechanism utilitized for Targeted Notifications client side caching.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.FilterProvider">
<summary>
Gets or sets the filter provider that will be used to provide values for the Targeted Notifications request plus Scope Providers.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.NonScopedSettingsKeyValueStorage">
<summary>
Gets or sets the key value storage that will be used for non scoped settings, as a way for consumers to access RemoteSettings directly without
having to go through this library.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsInitializer.StableSettingRootSubCollections">
<summary>
Gets or sets the names of root subcollections that will hold stable settings.
The first time a setting under one of these subcollections gets requested, the value is cached,
and RemoteSettings will continue to return this value for the rest of the process lifetime.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsParser">
<summary>
Helper class used for parsing a settings file that was copied down from Azure.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsParser.TryParseVersionedStream(System.IO.Stream)">
<summary>
Deserializes the contents of a remote settings file.
</summary>
<remarks>
This never throws an exception. If an error occurs while parsing the Error property will be set with an error message.
</remarks>
<param name="stream">The stream of json to parse.</param>
<returns>An object representing the json.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.RemoteSettingsStorageHandler.SplitKey.CreateFromStorageName(System.String,System.String)">
<summary>
Returns a SplitKey or null if storageName not in correct format.
</summary>
<param name="collectionPath"></param>
<param name="storageName"></param>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.FlightScopeFilterProvider.Provide(System.String)">
<summary>
Handles requests for Flight.NameOfFlight
</summary>
<param name="key">Name of the flight</param>
<returns>A True <see cref="T:Microsoft.VisualStudio.RemoteSettings.BoolScopeValue" /> if flight is enabled.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.FlightScopeFilterProvider.ProvideAsync(System.String)">
<summary>
Handles async requests for Flight.NameOfFlight
</summary>
<param name="key">Name of the flight</param>
<returns>A True <see cref="T:Microsoft.VisualStudio.RemoteSettings.BoolScopeValue" /> if flight is enabled.</returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.IMultiValueScopeFilterAsyncProvider`1">
<summary>
Provides a multi-value scope filter in an async way that maps a key to a specific <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IMultiValueScopeFilterAsyncProvider`1.ProvideAsync(System.String)">
<summary>
Provides a ScopeValue for the specified key.
</summary>
<param name="key"></param>
<returns>The <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" /> for the passed in key.</returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.IMultiValueScopeFilterProvider`1">
<summary>
Provides a multi-value scope filter that maps a key to a specific <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.IMultiValueScopeFilterProvider`1.Provide(System.String)">
<summary>
Provides a ScopeValue for the specified key.
</summary>
<param name="key"></param>
<returns>The <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" /> for the passed in key.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.InternalScopeFilterProvider.Provide">
<summary>
Handles requests for IsInternal
</summary>
<returns>A True <see cref="T:Microsoft.VisualStudio.RemoteSettings.BoolScopeValue" /> if user is internal</returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ISingleValueScopeFilterAsyncProvider`1">
<summary>
Provides a single <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" /> in an async way.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ISingleValueScopeFilterAsyncProvider`1.ProvideAsync">
<summary>
Provides a <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />
</summary>
<returns></returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ISingleValueScopeFilterProvider`1">
<summary>
Provides a single <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ISingleValueScopeFilterProvider`1.Provide">
<summary>
Provides a <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ScopeScopeFilterProvider.Provide(System.String)">
<summary>
Handles requests for Scope.NameOfScope
</summary>
<param name="key">The name of the Scope to evaluate.</param>
<returns>A True <see cref="T:Microsoft.VisualStudio.RemoteSettings.BoolScopeValue" /> if the Scope evaluates to True.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ScopeScopeFilterProvider.ProvideAsync(System.String)">
<summary>
Handles async requests for Scope.NameOfScope
</summary>
<param name="key">The name of the Scope to evaluate.</param>
<returns>A True <see cref="T:Microsoft.VisualStudio.RemoteSettings.BoolScopeValue" /> if the Scope evaluates to True.</returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.BoolScopeValue">
<summary>
A bool <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.BoolScopeValue.#ctor(System.Boolean)">
<summary>
Constructs a ScopeValue with the passed in bool value.
</summary>
<param name="value"></param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.CycleDetection.Graph.HasCycles">
<summary>
Determines if there is a cycle in the graph.
</summary>
<returns>True if there is a cycle, returns as soon as one is found</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.CycleDetection.Graph.ColorToFindCycles(Microsoft.VisualStudio.RemoteSettings.CycleDetection.Node,System.Collections.Generic.IDictionary{Microsoft.VisualStudio.RemoteSettings.CycleDetection.Node,Microsoft.VisualStudio.RemoteSettings.CycleDetection.Color})">
<summary>
Colors nodes to determine if there is a cycle in the graph.
</summary>
<param name="node"></param>
<param name="colors"></param>
<returns>True if there is a cycle</returns>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.DoubleScopeValue">
<summary>
A double <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.DoubleScopeValue.#ctor(System.Double)">
<summary>
Constructs a ScopeValue with the passed in double value.
</summary>
<param name="value"></param>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ScopeParserException">
<summary>
Scope parser exception class, using in running Scope Strings
to check its correctness.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue">
<summary>
A value that a Scope can have.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.StringScopeValue">
<summary>
A string <see cref="T:Microsoft.VisualStudio.RemoteSettings.ScopeValue" />
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.StringScopeValue.#ctor(System.String)">
<summary>
Constructs a ScopeValue with the passed in string value.
</summary>
<param name="value"></param>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionResponse.TriggerJson">
<summary>
Gets or sets all the telemetry triggers that apply to this
action. And example of a valid json would be:
{
"start": {
"triggerOnSubscribe": true
},
"stop": {
"event": "some/telemetry/event"
},
"customEventName": {
"triggerAlways": true
"and": [
{ "event": "some/other/telemetry/event" },
{ "property": "some.property", "value": { "gt": 100 } }
]
}
}
This entire field will be deserialized into two types:
IDictionary&lt;string, ITelemetryEventMatch$gt;
IDictionary&lt;string, ActionTriggerOptions$gt;
There can be any number of triggers specified in the Json.
"TriggerOnSubscribe" is only valid on the special "start"
trigger. If "start" does not specify "TriggerOnSubscribe"
then it must have a full valid ITelemetryEventMatch set of
telemetry conditions like all other triggers.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails">
<summary>
Provides information about why a remote settings action subscription
callback was invoked
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.StartTrigger">
<summary>
Well known name of the initial start trigger
for triggered Targeted Notifications rules.
</summary>
</member>
<member name="F:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.StopTrigger">
<summary>
Well known name of the final stop trigger
for triggered Targeted Notifications rules.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.TriggerAlways">
<summary>
Gets a value indicating whether the
invoked trigger is set to trigger on
every event match, or just once.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.TriggerOnSubscribe">
<summary>
Gets a value indicating whether the
trigger was invoked directly after subscribing
or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.TelemetryEvent">
<summary>
Gets the telemetry event that matched given
filter conditions, if a telemetry notification
subscription is the reason this callback was invoked
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.RegisteredTriggerNames">
<summary>
Gets the names of all triggers to which this rule is subscribed.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.TriggerName">
<summary>
Gets the trigger name being invoked
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.Unsubscribe">
<summary>
Unsubscribes from the trigger event specified by TriggerName
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ActionSubscriptionDetails.UnsubscribeAll">
<summary>
Unsubscribes from all triggers specified alongside TriggerName
in the Targeted Notifications back-end.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionTriggerOptions.TriggerOnSubscribe">
<summary>
Gets or sets a value indicating whether the
trigger should be invoked directly after
subscribing or not.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionTriggerOptions.TriggerAlways">
<summary>
Gets or sets a value indicating whether the
trigger should be invoked every time the
given conditions are met, or only the first
time.
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1">
<summary>
An action of type T that is defined on the TargetedNotifications backend.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1.ActionPath">
<summary>
Gets the path under which this action lives.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1.Action">
<summary>
Gets the typed action.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1.Precedence">
<summary>
Gets the precedence of actions of within the same ActionPath. Higher indicates higher precedence.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1.RuleId">
<summary>
Gets a unique identifier for the rule.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1.ActionType">
<summary>
Gets a name for the type of action. Useful if consumer wants to handle processing their own actions.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1.FlightName">
<summary>
Gets an experimentation flight that needs to be enabled in order for this action to have been returned.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.ActionWrapper`1.Subscription">
<summary>
Gets any subscription details for this action
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.CachedTargetedNotifications.Categories">
<summary>
Gets or sets a dictionary of CategoryId -&gt; CachedActionCategoryTime
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.CachedTargetedNotifications.Actions">
<summary>
Gets or sets a dictionary of RuleId -&gt; CachedActionResponseTime
</summary>
</member>
<member name="T:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsCacheStorageProvider">
<summary>
Interface that describes a means of locally storing a
CachedTargetedNotifications object representing locally
cached TN rules.
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsCacheStorageProvider.GetLocalCacheCopy">
<summary>
Loads the cache and returns a copy of it
</summary>
<returns></returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsCacheStorageProvider.SetLocalCache(Microsoft.VisualStudio.RemoteSettings.CachedTargetedNotifications)">
<summary>
Saves the cache, overriding any existing cache
</summary>
<param name="newCache"></param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsCacheStorageProvider.Lock(System.Nullable{System.Int32})">
<summary>
Locks all access to cache across all threads
and processes
</summary>
<param name="timeoutMs">Milliseconds to wait for the lock to be acquired before timing out. Leave null for infinite wait.</param>
<returns>True if the lock was acquired. False if it was not (due to timeout)</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsCacheStorageProvider.Unlock">
<summary>
Releases a held Lock
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.ITargetedNotificationsCacheStorageProvider.Reset">
<summary>
Resets the local cache store to its initial/empty state
</summary>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.TargetedNotificationsCacheProvider.MergeNewResponse(Microsoft.VisualStudio.RemoteSettings.ActionResponseBag,System.Collections.Generic.IEnumerable{System.String},System.Nullable{System.Int32})">
<summary>
Called when a new ActionResponseBag is received from the
service. This merges that new data into the existing cache
</summary>
<param name="newResponse">An ActionResponseBag received from the Azure API</param>
<param name="previouslyCachedRuleIds">Set of rule IDs that were previously read from the cache and should not be written back</param>
<param name="timeoutMs">Maximum time to wait, in milliseconds, for the cache lock. Leave null for infinite.</param>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.TargetedNotificationsCacheProvider.GetAllCachedRuleIds(System.Nullable{System.Int32})">
<summary>
Gets all rule IDs currently stored in the local cache
</summary>
<param name="timeoutMs">Maximum time to wait, in milliseconds, for the cache lock. Leave null for infinite.</param>
<returns>An IEnumerable of the rule IDs as strings. The IEnumerable will be empty of the timeout expires.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.TargetedNotificationsCacheProvider.GetSendableAction(Microsoft.VisualStudio.RemoteSettings.ActionResponse,System.Nullable{System.Int32})">
<summary>
Given an action, determines if that action can be sent now,
meaning it isn't SendOnce and already sent by another instance
and any Category courtesy WaitTimeSpans are expired.
This function updates cache state to indicate any returned action
has been sent before returning it.
</summary>
<param name="action">The single action to check</param>
<param name="timeoutMs">Milliseconds to wait for cache access. Leave null for infinite.</param>
<returns>The action, if it is safe to sent to a feature, or null if it is not or the call timed out.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.TargetedNotificationsCacheProvider.GetSendableActionsFromSet(System.Collections.Generic.IEnumerable{Microsoft.VisualStudio.RemoteSettings.ActionResponse},System.Nullable{System.Int32})">
<summary>
Given a set of actions, determines which of them can be sent now,
meaning they aren't SendOnce and already sent by another instance
and any Category courtesy WaitTimeSpans have expired.
This function updates cache state to indicate any returned actions
have been sent before returning them.
</summary>
<param name="actions">IEnumerable of ActionResponses to check against</param>
<param name="timeoutMs">Milliseconds to wait for cache access. Leave null for infinite.</param>
<returns>A subset of the given actions that are sendable.</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.TargetedNotificationsJsonStorageProvider.Lock(System.Nullable{System.Int32})">
<summary>
Acquires a system-wide lock on the shared cache
</summary>
<param name="timeoutMs">Max milliseconds to wait for lock</param>
<returns>True if the lock was acquired, False if the timeout was reached without acquiring the lock</returns>
</member>
<member name="M:Microsoft.VisualStudio.RemoteSettings.TargetedNotificationsJsonStorageProvider.Unlock">
<summary>
Releases a previously acquired system-wide lock on the shared cache
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.VersionedDeserializedRemoteSettings.FileVersion">
<summary>
Gets file version found in the json file or null of there was an error parsing the josn file.
</summary>
</member>
<member name="P:Microsoft.VisualStudio.RemoteSettings.VersionedDeserializedRemoteSettings.ChangesetId">
<summary>
Gets the changeset Id found in json file or null of there was an error parsing the josn file.
</summary>
</member>
<member name="T:Windows.Win32.PInvoke">
<summary>
CsWin32's generated PssCaptureSnapshot and PssFreeSnapshot use a SafeProcessHandle for the process handle, which is not available in net45.
To get around this, we define our own PInvoke methods that use IntPtr instead of SafeProcessHandle.
</summary>
<content>
Contains extern methods from "AdvApi32.dll".
</content>
<content>
Contains extern methods from "Gdi32.dll".
</content>
<content>
Contains extern methods from "Kernel32.dll".
</content>
<content>
Contains extern methods from "NetApi32.dll".
</content>
<content>
Contains extern methods from "ShlwApi.dll".
</content>
<content>
Contains extern methods from "User32.dll".
</content>
<content>
Contains extern methods from "wer.dll".
</content>
</member>
<member name="M:Windows.Win32.PInvoke.GetTokenInformation(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Security.TOKEN_INFORMATION_CLASS,System.Void*,System.UInt32,System.UInt32@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetTokenInformation(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_INFORMATION_CLASS,System.Void*,System.UInt32,System.UInt32*)" />
</member>
<!-- Badly formed XML comment ignored for member "M:Windows.Win32.PInvoke.GetTokenInformation(Windows.Win32.Foundation.HANDLE,Windows.Win32.Security.TOKEN_INFORMATION_CLASS,System.Void*,System.UInt32,System.UInt32*)" -->
<member name="F:Windows.Win32.PInvoke.IOCTL_STORAGE_QUERY_PROPERTY">
<summary>Windows applications can use this control code to return the properties of a storage device or adapter.</summary>
<remarks>
<para>The optional output buffer returned through the *lpOutBuffer* parameter can be one of several structures depending on the value of the **PropertyId** member of the [STORAGE_PROPERTY_QUERY](ns-winioctl-storage_property_query.md) structure pointed to by the *lpInBuffer* parameter. These values are enumerated by the [STORAGE_PROPERTY_ID](ne-winioctl-storage_property_id.md) enumeration. If the **QueryType** member of the **STORAGE_PROPERTY_QUERY** is set to **PropertyExistsQuery** then no structure is returned.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ni-winioctl-ioctl_storage_query_property#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.PInvoke.IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS">
<summary>Retrieves the physical location of a specified volume on one or more disks.</summary>
<remarks>
<para>In Windows 8 and Windows Server 2012, this code is supported by the following technologies. Technology | Supported -----------|---------- Server Message Block (SMB) 3.0 protocol | No SMB 3.0 Transparent Failover (TFO) | No SMB 3.0 with Scale-out File Shares (SO) | No Cluster Shared Volume File System (CsvFS) | Yes</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ni-winioctl-ioctl_volume_get_volume_disk_extents#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.PInvoke.S_OK">
<summary>Documentation varies per use. Refer to each: <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnradioevents-onsetsoftwareradiostatecomplete">IMbnRadioEvents.OnSetSoftwareRadioStateComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnsmsevents-onsmssendcomplete">IMbnSmsEvents.OnSmsSendComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnpinmanagerevents-ongetpinstatecomplete">IMbnPinManagerEvents.OnGetPinStateComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnpinevents-onchangecomplete">IMbnPinEvents.OnChangeComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnsmsevents-onsetsmsconfigurationcomplete">IMbnSmsEvents.OnSetSmsConfigurationComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnpinevents-onentercomplete">IMbnPinEvents.OnEnterComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnpinevents-onunblockcomplete">IMbnPinEvents.OnUnblockComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnsmsevents-onsmsdeletecomplete">IMbnSmsEvents.OnSmsDeleteComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnsmsevents-onsmsreadcomplete">IMbnSmsEvents.OnSmsReadComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnconnectioncontextevents-onsetprovisionedcontextcomplete">IMbnConnectionContextEvents.OnSetProvisionedContextComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnpinevents-onenablecomplete">IMbnPinEvents.OnEnableComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnconnectionevents-onconnectcomplete">IMbnConnectionEvents.OnConnectComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnpinevents-ondisablecomplete">IMbnPinEvents.OnDisableComplete</see>, <see href="https://docs.microsoft.com/windows/win32/api//mbnapi/nf-mbnapi-imbnserviceactivationevents-onactivationcomplete">IMbnServiceActivationEvents.OnActivationComplete</see>.</summary>
</member>
<member name="M:Windows.Win32.PInvoke.GetDeviceCaps(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Graphics.Gdi.GET_DEVICE_CAPS_INDEX)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetDeviceCaps(Windows.Win32.Graphics.Gdi.HDC,Windows.Win32.Graphics.Gdi.GET_DEVICE_CAPS_INDEX)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetDeviceCaps(Windows.Win32.Graphics.Gdi.HDC,Windows.Win32.Graphics.Gdi.GET_DEVICE_CAPS_INDEX)">
<summary>The GetDeviceCaps function retrieves device-specific information for the specified device.</summary>
<param name="hdc">A handle to the DC.</param>
<param name="index"></param>
<returns>
<para>The return value specifies the value of the desired item. When <i>nIndex</i> is BITSPIXEL and the device has 15bpp or 16bpp, the return value is 16.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wingdi/nf-wingdi-getdevicecaps">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.CloseHandle(Windows.Win32.Foundation.HANDLE)">
<summary>Closes an open object handle.</summary>
<param name="hObject">A valid handle to an open object.</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If the application is running under a debugger, the function will throw an exception if it receives either a handle value that is not valid or a pseudo-handle value. This can happen if you close a handle twice, or if you call <b>CloseHandle</b> on a handle returned by the <a href="/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea">FindFirstFile</a> function instead of calling the <a href="/windows/desktop/api/fileapi/nf-fileapi-findclose">FindClose</a> function.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//handleapi/nf-handleapi-closehandle">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.CreateFile(System.String,Windows.Win32.Storage.FileSystem.FILE_ACCESS_FLAGS,Windows.Win32.Storage.FileSystem.FILE_SHARE_MODE,System.Nullable{Windows.Win32.Security.SECURITY_ATTRIBUTES},Windows.Win32.Storage.FileSystem.FILE_CREATION_DISPOSITION,Windows.Win32.Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES,System.Runtime.InteropServices.SafeHandle)">
<inheritdoc cref="M:Windows.Win32.PInvoke.CreateFile(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Storage.FileSystem.FILE_ACCESS_FLAGS,Windows.Win32.Storage.FileSystem.FILE_SHARE_MODE,Windows.Win32.Security.SECURITY_ATTRIBUTES*,Windows.Win32.Storage.FileSystem.FILE_CREATION_DISPOSITION,Windows.Win32.Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES,Windows.Win32.Foundation.HANDLE)" />
</member>
<member name="M:Windows.Win32.PInvoke.CreateFile(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Storage.FileSystem.FILE_ACCESS_FLAGS,Windows.Win32.Storage.FileSystem.FILE_SHARE_MODE,Windows.Win32.Security.SECURITY_ATTRIBUTES*,Windows.Win32.Storage.FileSystem.FILE_CREATION_DISPOSITION,Windows.Win32.Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES,Windows.Win32.Foundation.HANDLE)">
<summary>Creates or opens a file or I/O device. The most commonly used I/O devices are as follows:\_file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, and pipe.</summary>
<param name="lpFileName">
<para>The name of the file or device to be created or opened. You may use either forward slashes (/) or backslashes (\\) in this name. In the ANSI version of this function, the name is limited to <b>MAX_PATH</b> characters. To extend this limit to 32,767 wide characters, use this Unicode version of the function and prepend "\\\\?\\" to the path. For more information, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/naming-a-file">Naming Files, Paths, and Namespaces</a>. For information on special device names, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/defining-an-ms-dos-device-name">Defining an MS-DOS Device Name</a>. To create a file stream, specify the name of the file, a colon, and then the name of the stream. For more information, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-streams">File Streams</a>. <div class="alert"><b>Tip</b> Starting with Windows 10, version 1607, for the unicode version of this function (<b>CreateFileW</b>), you can opt-in to remove the <b>MAX_PATH</b> limitation without prepending "\\?\". See the "Maximum Path Length Limitation" section of <a href="https://docs.microsoft.com/windows/desktop/FileIO/naming-a-file">Naming Files, Paths, and Namespaces</a> for details.</div> <div> </div></para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwDesiredAccess">
<para>The requested access to the file or device, which can be summarized as read, write, both or neither zero). The most commonly used values are <b>GENERIC_READ</b>, <b>GENERIC_WRITE</b>, or both (<c>GENERIC_READ | GENERIC_WRITE</c>). For more information, see <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/generic-access-rights">Generic Access Rights</a>, <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-security-and-access-rights">File Security and Access Rights</a>, <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-access-rights-constants">File Access Rights Constants</a>, and <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/access-mask">ACCESS_MASK</a>. If this parameter is zero, the application can query certain metadata such as file, directory, or device attributes without accessing that file or device, even if <b>GENERIC_READ</b> access would have been denied. You cannot request an access mode that conflicts with the sharing mode that is specified by the <i>dwShareMode</i> parameter in an open request that already has an open handle. For more information, see the Remarks section of this topic and <a href="https://docs.microsoft.com/windows/desktop/FileIO/creating-and-opening-files">Creating and Opening Files</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwShareMode">
<para>The requested sharing mode of the file or device, which can be read, write, both, delete, all of these, or none (refer to the following table). Access requests to attributes or extended attributes are not affected by this flag. If this parameter is zero and <b>CreateFile</b> succeeds, the file or device cannot be shared and cannot be opened again until the handle to the file or device is closed. For more information, see the Remarks section. You cannot request a sharing mode that conflicts with the access mode that is specified in an existing request that has an open handle. <b>CreateFile</b> would fail and the <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function would return <b>ERROR_SHARING_VIOLATION</b>. To enable a process to share a file or device while another process has the file or device open, use a</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpSecurityAttributes">
<para>A pointer to a <a href="https://docs.microsoft.com/previous-versions/windows/desktop/legacy/aa379560(v=vs.85)">SECURITY_ATTRIBUTES</a> structure that contains two separate but related data members: an optional security descriptor, and a Boolean value that determines whether the returned handle can be inherited by child processes. This parameter can be <b>NULL</b>. If this parameter is <b>NULL</b>, the handle returned by <b>CreateFile</b> cannot be inherited by any child processes the application may create and the file or device associated with the returned handle gets a default security descriptor. The <b>lpSecurityDescriptor</b> member of the structure specifies a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-security_descriptor">SECURITY_DESCRIPTOR</a> for a file or device. If this member is <b>NULL</b>, the file or device associated with the returned handle is assigned a default security descriptor. <b>CreateFile</b> ignores the <b>lpSecurityDescriptor</b> member when opening an existing file or device, but continues to use the <b>bInheritHandle</b> member. The <b>bInheritHandle</b>member of the structure specifies whether the returned handle can be inherited. For more information, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwCreationDisposition">
<para>An action to take on a file or device that exists or does not exist. For devices other than files, this parameter is usually set to <b>OPEN_EXISTING</b>. For more information, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwFlagsAndAttributes">
<para>The file or device attributes and flags, <b>FILE_ATTRIBUTE_NORMAL</b> being the most common default value for files. This parameter can include any combination of the available file attributes (<b>FILE_ATTRIBUTE_*</b>). All other file attributes override <b>FILE_ATTRIBUTE_NORMAL</b>. This parameter can also contain combinations of flags (<b>FILE_FLAG_*</b>) for control of file or device caching behavior, access modes, and other special-purpose flags. These combine with any <b>FILE_ATTRIBUTE_*</b> values. This parameter can also contain Security Quality of Service (SQOS) information by specifying the <b>SECURITY_SQOS_PRESENT</b> flag. Additional SQOS-related flags information is presented in the table following the attributes and flags tables. <div class="alert"><b>Note</b> When <b>CreateFile</b> opens an existing file, it generally combines the file flags with the file attributes of the existing file, and ignores any file attributes supplied as part of <i>dwFlagsAndAttributes</i>. Special cases are detailed in <a href="https://docs.microsoft.com/windows/desktop/FileIO/creating-and-opening-files">Creating and Opening Files</a>.</div> <div> </div> Some of the following file attributes and flags may only apply to files and not necessarily all other types of devices that <b>CreateFile</b> can open. For additional information, see the Remarks section of this topic and <a href="https://docs.microsoft.com/windows/desktop/FileIO/creating-and-opening-files">Creating and Opening Files</a>. For more advanced access to file attributes, see <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileattributesa">SetFileAttributes</a>. For a complete list of all file attributes with their values and descriptions, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-attribute-constants">File Attribute Constants</a>. </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="hTemplateFile">
<para>A valid handle to a template file with the <b>GENERIC_READ</b> access right. The template file supplies file attributes and extended attributes for the file that is being created. This parameter can be <b>NULL</b>. When opening an existing file, <b>CreateFile</b> ignores this parameter. When opening a new encrypted file, the file inherits the discretionary access control list from its parent directory. For additional information, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-encryption">File Encryption</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is an open handle to the specified file, device, named pipe, or mail slot. If the function fails, the return value is <b>INVALID_HANDLE_VALUE</b>. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-createfilew">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.DeviceIoControl(System.Runtime.InteropServices.SafeHandle,System.UInt32,System.Void*,System.UInt32,System.Void*,System.UInt32,System.UInt32*,Windows.Win32.System.IO.OVERLAPPED*)">
<inheritdoc cref="M:Windows.Win32.PInvoke.DeviceIoControl(Windows.Win32.Foundation.HANDLE,System.UInt32,System.Void*,System.UInt32,System.Void*,System.UInt32,System.UInt32*,Windows.Win32.System.IO.OVERLAPPED*)" />
</member>
<member name="M:Windows.Win32.PInvoke.DeviceIoControl(Windows.Win32.Foundation.HANDLE,System.UInt32,System.Void*,System.UInt32,System.Void*,System.UInt32,System.UInt32*,Windows.Win32.System.IO.OVERLAPPED*)">
<summary>Sends a control code directly to a specified device driver, causing the corresponding device to perform the corresponding operation.</summary>
<param name="hDevice">
<para>A handle to the device on which the operation is to be performed. The device is typically a volume, directory, file, or stream. To retrieve a device handle, use the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-createfilea">CreateFile</a> function. For more information, see Remarks.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwIoControlCode">
<para>The control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it. For a list of the control codes, see Remarks. The documentation for each control code provides usage details for the <i>lpInBuffer</i>, <i>nInBufferSize</i>, <i>lpOutBuffer</i>, and <i>nOutBufferSize</i> parameters.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpInBuffer">
<para>A pointer to the input buffer that contains the data required to perform the operation. The format of this data depends on the value of the <i>dwIoControlCode</i> parameter. This parameter can be <b>NULL</b> if <i>dwIoControlCode</i> specifies an operation that does not require input data.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nInBufferSize">The size of the input buffer, in bytes.</param>
<param name="lpOutBuffer">
<para>A pointer to the output buffer that is to receive the data returned by the operation. The format of this data depends on the value of the <i>dwIoControlCode</i> parameter. This parameter can be <b>NULL</b> if <i>dwIoControlCode</i> specifies an operation that does not return data.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nOutBufferSize">The size of the output buffer, in bytes.</param>
<param name="lpBytesReturned">
<para>A pointer to a variable that receives the size of the data stored in the output buffer, in bytes. If the output buffer is too small to receive any data, the call fails, <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> returns <b>ERROR_INSUFFICIENT_BUFFER</b>, and <i>lpBytesReturned</i> is zero. If the output buffer is too small to hold all of the data but can hold some entries, some drivers will return as much data as fits. In this case, the call fails, <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> returns <b>ERROR_MORE_DATA</b>, and <i>lpBytesReturned</i> indicates the amount of data received. Your application should call <b>DeviceIoControl</b> again with the same operation, specifying a new starting point. If <i>lpOverlapped</i> is <b>NULL</b>, <i>lpBytesReturned</i> cannot be <b>NULL</b>. Even when an operation returns no output data and <i>lpOutBuffer</i> is <b>NULL</b>, <b>DeviceIoControl</b> makes use of <i>lpBytesReturned</i>. After such an operation, the value of <i>lpBytesReturned</i> is meaningless. If <i>lpOverlapped</i> is not <b>NULL</b>, <i>lpBytesReturned</i> can be <b>NULL</b>. If this parameter is not <b>NULL</b> and the operation returns data, <i>lpBytesReturned</i> is meaningless until the overlapped operation has completed. To retrieve the number of bytes returned, call <a href="https://docs.microsoft.com/windows/desktop/api/ioapiset/nf-ioapiset-getoverlappedresult">GetOverlappedResult</a>. If <i>hDevice</i> is associated with an I/O completion port, you can retrieve the number of bytes returned by calling <a href="https://docs.microsoft.com/windows/desktop/api/ioapiset/nf-ioapiset-getqueuedcompletionstatus">GetQueuedCompletionStatus</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpOverlapped">
<para>A pointer to an <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-overlapped">OVERLAPPED</a> structure. If <i>hDevice</i> was opened without specifying <b>FILE_FLAG_OVERLAPPED</b>, <i>lpOverlapped</i> is ignored. If <i>hDevice</i> was opened with the <b>FILE_FLAG_OVERLAPPED</b> flag, the operation is performed as an overlapped (asynchronous) operation. In this case, <i>lpOverlapped</i> must point to a valid <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-overlapped">OVERLAPPED</a> structure that contains a handle to an event object. Otherwise, the function fails in unpredictable ways. For overlapped operations, <b>DeviceIoControl</b> returns immediately, and the event object is signaled when the operation has been completed. Otherwise, the function does not return until the operation has been completed or an error occurs.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the operation completes successfully, the return value is nonzero. If the operation fails or is pending, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//ioapiset/nf-ioapiset-deviceiocontrol">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.EnumSystemFirmwareTables(Windows.Win32.System.SystemInformation.FIRMWARE_TABLE_PROVIDER,Windows.Win32.System.SystemInformation.FIRMWARE_TABLE_ID*,System.UInt32)">
<summary>Enumerates all system firmware tables of the specified type.</summary>
<param name="FirmwareTableProviderSignature"></param>
<param name="pFirmwareTableEnumBuffer">
<para>A pointer to a buffer that receives the list of firmware tables. If this parameter is <b>NULL</b>, the return value is the required buffer size. For more information on the contents of this buffer, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-enumsystemfirmwaretables#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="BufferSize">The size of the <i>pFirmwareTableBuffer</i> buffer, in bytes.</param>
<returns>
<para>If the function succeeds, the return value is the number of bytes written to the buffer. This value will always be less than or equal to <i>BufferSize</i>. If the function fails because the buffer is not large enough, the return value is the required buffer size, in bytes. This value is always greater than <i>BufferSize</i>. If the function fails for any other reason, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-enumsystemfirmwaretables">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetCommandLine">
<summary>Retrieves the command-line string for the current process.</summary>
<returns>The return value is a pointer to the command-line string for the current process.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processenv/nf-processenv-getcommandlinew">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetCurrentProcess_SafeHandle">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetCurrentProcess" />
</member>
<member name="M:Windows.Win32.PInvoke.GetCurrentProcess">
<summary>Retrieves a pseudo handle for the current process.</summary>
<returns>The return value is a pseudo handle to the current process.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getcurrentprocess">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetCurrentProcessId">
<summary>Retrieves the process identifier of the calling process.</summary>
<returns>The return value is the process identifier of the calling process.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getcurrentprocessid">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetCurrentThreadId">
<summary>Retrieves the thread identifier of the calling thread.</summary>
<returns>The return value is the thread identifier of the calling thread.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getcurrentthreadid">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetFileInformationByHandle(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetFileInformationByHandle(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetFileInformationByHandle(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION*)">
<summary>Retrieves file information for the specified file.</summary>
<param name="hFile">
<para>A handle to the file that contains the information to be retrieved. This handle should not be a pipe handle.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getfileinformationbyhandle#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpFileInformation">
<para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/ns-fileapi-by_handle_file_information">BY_HANDLE_FILE_INFORMATION</a> structure that receives the file information.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getfileinformationbyhandle#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is nonzero and file information data is contained in the buffer pointed to by the <i>lpFileInformation</i> parameter. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getfileinformationbyhandle">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetFinalPathNameByHandle(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Storage.FileSystem.FILE_NAME)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetFinalPathNameByHandle(Windows.Win32.Foundation.HANDLE,Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Storage.FileSystem.FILE_NAME)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetFinalPathNameByHandle(Windows.Win32.Foundation.HANDLE,Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Storage.FileSystem.FILE_NAME)">
<summary>Retrieves the final path for the specified file.</summary>
<param name="hFile">A handle to a file or directory.</param>
<param name="lpszFilePath">A pointer to a buffer that receives the path of <i>hFile</i>.</param>
<param name="cchFilePath">The size of <i>lpszFilePath</i>, in <b>TCHAR</b>s. This value must include a <b>NULL</b> termination character.</param>
<param name="dwFlags"></param>
<returns>
<para>If the function succeeds, the return value is the length of the string received by <i>lpszFilePath</i>, in <b>TCHAR</b>s. This value does not include the size of the terminating null character. <b>Windows Server 2008 and Windows Vista:  </b>For the ANSI version of this function, <b>GetFinalPathNameByHandleA</b>, the return value includes the size of the terminating null character. If the function fails because <i>lpszFilePath</i> is too small to hold the string plus the terminating null character, the return value is the required buffer size, in <b>TCHAR</b>s. This value includes the size of the terminating null character. If the function fails for any other reason, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-getfinalpathnamebyhandlew">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.FreeLibrary(Windows.Win32.Foundation.HINSTANCE)">
<summary>Frees the loaded dynamic-link library (DLL) module and, if necessary, decrements its reference count.</summary>
<param name="hLibModule">
<para>A handle to the loaded library module. The <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibrarya">LoadLibrary</a>, <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea">GetModuleHandle</a>, or <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa">GetModuleHandleEx</a> function returns this handle.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//libloaderapi/nf-libloaderapi-freelibrary#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call the <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//libloaderapi/nf-libloaderapi-freelibrary">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetModuleFileName(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Foundation.PWSTR,System.UInt32)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetModuleFileName(Windows.Win32.Foundation.HINSTANCE,Windows.Win32.Foundation.PWSTR,System.UInt32)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetModuleFileName(Windows.Win32.Foundation.HINSTANCE,Windows.Win32.Foundation.PWSTR,System.UInt32)">
<summary>Retrieves the fully qualified path for the file that contains the specified module. The module must have been loaded by the current process.</summary>
<param name="hModule">
<para>A handle to the loaded module whose path is being requested. If this parameter is <b>NULL</b>, <b>GetModuleFileName</b> retrieves the path of the executable file of the current process. The <b>GetModuleFileName</b> function does not retrieve the path for modules that were loaded using the <b>LOAD_LIBRARY_AS_DATAFILE</b> flag. For more information, see <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//libloaderapi/nf-libloaderapi-getmodulefilenamew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpFilename">
<para>A pointer to a buffer that receives the fully qualified path of the module. If the length of the path is less than the size that the <i>nSize</i> parameter specifies, the function succeeds and the path is returned as a null-terminated string. If the length of the path exceeds the size that the <i>nSize</i> parameter specifies, the function succeeds and the string is truncated to <i>nSize</i> characters including the terminating null character. <b>Windows XP:  </b>The string is truncated to <i>nSize</i> characters and is not null-terminated. The string returned will use the same format that was specified when the module was loaded. Therefore, the path can be a long or short file name, and can use the prefix "\\?\". For more information, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/naming-a-file">Naming a File</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//libloaderapi/nf-libloaderapi-getmodulefilenamew#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="nSize">The size of the <i>lpFilename</i> buffer, in <b>TCHARs</b>.</param>
<returns>
<para>If the function succeeds, the return value is the length of the string that is copied to the buffer, in characters, not including the terminating null character. If the buffer is too small to hold the module name, the string is truncated to <i>nSize</i> characters including the terminating null character, the function returns <i>nSize</i>, and the function sets the last error to <b>ERROR_INSUFFICIENT_BUFFER</b>. <b>Windows XP:  </b>If the buffer is too small to hold the module name, the function returns <i>nSize</i>. The last error code remains <b>ERROR_SUCCESS</b>. If <i>nSize</i> is zero, the return value is zero and the last error code is <b>ERROR_SUCCESS</b>. If the function fails, the return value is 0 (zero). To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//libloaderapi/nf-libloaderapi-getmodulefilenamew">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetNativeSystemInfo(Windows.Win32.System.SystemInformation.SYSTEM_INFO@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetNativeSystemInfo(Windows.Win32.System.SystemInformation.SYSTEM_INFO*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetNativeSystemInfo(Windows.Win32.System.SystemInformation.SYSTEM_INFO*)">
<summary>Retrieves information about the current system to an application running under WOW64.</summary>
<param name="lpSystemInfo">
<para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/sysinfoapi/ns-sysinfoapi-system_info">SYSTEM_INFO</a> structure that receives the information.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-getnativesysteminfo#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<remarks>
<para>To determine whether a Win32-based application is running under WOW64, call the <a href="https://docs.microsoft.com/windows/desktop/api/wow64apiset/nf-wow64apiset-iswow64process2">IsWow64Process2</a> function. To compile an application that uses this function, define _WIN32_WINNT as 0x0501 or later. For more information, see <a href="https://docs.microsoft.com/windows/desktop/WinProg/using-the-windows-headers">Using the Windows Headers</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-getnativesysteminfo#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetProcessInformation(System.Runtime.InteropServices.SafeHandle,Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS,System.Void*,System.UInt32)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetProcessInformation(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS,System.Void*,System.UInt32)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetProcessInformation(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS,System.Void*,System.UInt32)">
<summary>Retrieves information about the specified process.</summary>
<param name="hProcess">
<para>A handle to the process. This handle must have the <b>PROCESS_SET_INFORMATION</b> access right. For more information, see <a href="https://docs.microsoft.com/windows/desktop/ProcThread/process-security-and-access-rights">Process Security and Access Rights</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocessinformation#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="ProcessInformationClass">A member of the [PROCESS_INFORMATION_CLASS](./ne-processthreadsapi-process_information_class.md) enumeration specifying the kind of information to retrieve.</param>
<param name="ProcessInformation">
<para>Pointer to an object to receive the type of information specified by the <i>ProcessInformationClass</i> parameter. If the <i>ProcessInformationClass</i> parameter is <b>ProcessMemoryPriority</b>, this parameter must point to a <a href="https://docs.microsoft.com/windows/win32/api/processthreadsapi/ns-processthreadsapi-memory_priority_information">MEMORY_PRIORITY_INFORMATION</a> structure. If the <i>ProcessInformationClass</i> parameter is <b>ProcessPowerThrottling</b>, this parameter must point to a <a href="https://docs.microsoft.com/windows/win32/api/processthreadsapi/ns-processthreadsapi-process_power_throttling_state">PROCESS_POWER_THROTTLING_STATE</a> structure. If the <i>ProcessInformationClass</i> parameter is <b>ProcessProtectionLevelInfo</b>, this parameter must point to a <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/ns-processthreadsapi-process_protection_level_information">PROCESS_PROTECTION_LEVEL_INFORMATION</a> structure. If the <i>ProcessInformationClass</i> parameter is <b>ProcessLeapSecondInfo</b>, this parameter must point to a <a href="../processthreadsapi/ns-processthreadsapi-process_leap_second_info.md">PROCESS_LEAP_SECOND_INFO</a> structure. If the <i>ProcessInformationClass</i> parameter is <b>ProcessAppMemoryInfo</b>, this parameter must point to a <a href="https://docs.microsoft.com/windows/win32/api/processthreadsapi/ns-processthreadsapi-app_memory_information">APP_MEMORY_INFORMATION</a> structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocessinformation#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="ProcessInformationSize">
<para>The size in bytes of the structure specified by the <i>ProcessInformation</i> parameter. If the <i>ProcessInformationClass</i> parameter is <b>ProcessMemoryPriority</b>, this parameter must be <c>sizeof(MEMORY_PRIORITY_INFORMATION)</c>. If the <i>ProcessInformationClass</i> parameter is <b>ProcessPowerThrottling</b>, this parameter must be <c>sizeof(PROCESS_POWER_THROTTLING_STATE)</c>. If the <i>ProcessInformationClass</i> parameter is <b>ProcessProtectionLevelInfo</b>, this parameter must be <c>sizeof(PROCESS_PROTECTION_LEVEL_INFORMATION)</c>. If the <i>ProcessInformationClass</i> parameter is <b>ProcessLeapSecondInfo</b>, this parameter must be <c>sizeof(PROCESS_LEAP_SECOND_INFO)</c>. If the <i>ProcessInformationClass</i> parameter is <b>ProcessAppMemoryInfo</b>, this parameter must be <c>sizeof(APP_MEMORY_INFORMATION)</c>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocessinformation#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocessinformation">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetProcessTimes(System.Runtime.InteropServices.SafeHandle,System.Runtime.InteropServices.ComTypes.FILETIME@,System.Runtime.InteropServices.ComTypes.FILETIME@,System.Runtime.InteropServices.ComTypes.FILETIME@,System.Runtime.InteropServices.ComTypes.FILETIME@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetProcessTimes(Windows.Win32.Foundation.HANDLE,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetProcessTimes(Windows.Win32.Foundation.HANDLE,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*,System.Runtime.InteropServices.ComTypes.FILETIME*)">
<summary>Retrieves timing information for the specified process.</summary>
<param name="hProcess">
<para>A handle to the process whose timing information is sought. The handle must have the <b>PROCESS_QUERY_INFORMATION</b> or <b>PROCESS_QUERY_LIMITED_INFORMATION</b> access right. For more information, see <a href="https://docs.microsoft.com/windows/desktop/ProcThread/process-security-and-access-rights">Process Security and Access Rights</a>. <b>Windows Server 2003 and Windows XP:  </b>The handle must have the <b>PROCESS_QUERY_INFORMATION</b> access right.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocesstimes#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpCreationTime">
<para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> structure that receives the creation time of the process.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocesstimes#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpExitTime">A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> structure that receives the exit time of the process. If the process has not exited, the content of this structure is undefined.</param>
<param name="lpKernelTime">
<para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> structure that receives the amount of time that the process has executed in kernel mode. The time that each of the threads of the process has executed in kernel mode is determined, and then all of those times are summed together to obtain this value.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocesstimes#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpUserTime">A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> structure that receives the amount of time that the process has executed in user mode. The time that each of the threads of the process has executed in user mode is determined, and then all of those times are summed together to obtain this value. Note that this value can exceed the amount of real time elapsed (between <i>lpCreationTime</i> and <i>lpExitTime</i>) if the process executes across multiple CPU cores.</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-getprocesstimes">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetSystemFirmwareTable(Windows.Win32.System.SystemInformation.FIRMWARE_TABLE_PROVIDER,Windows.Win32.System.SystemInformation.FIRMWARE_TABLE_ID,System.Void*,System.UInt32)">
<summary>Retrieves the specified firmware table from the firmware table provider.</summary>
<param name="FirmwareTableProviderSignature"></param>
<param name="FirmwareTableID">
<para>The identifier of the firmware table. This identifier is little endian, you must reverse the characters in the string. For example, FACP is an ACPI provider, as described in the Signature field of the DESCRIPTION_HEADER structure in the ACPI specification (see <a href="http://www.acpi.info/">http://www.acpi.info</a>). Therefore, use 'PCAF' to specify the FACP table, as shown in the following example: <c>retVal = GetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);</c> For more information, see the Remarks section of the <a href="https://docs.microsoft.com/windows/desktop/api/sysinfoapi/nf-sysinfoapi-enumsystemfirmwaretables">EnumSystemFirmwareTables</a> function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-getsystemfirmwaretable#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="pFirmwareTableBuffer">
<para>A pointer to a buffer that receives the requested firmware table. If this parameter is <b>NULL</b>, the return value is the required buffer size. For more information on the contents of this buffer, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-getsystemfirmwaretable#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="BufferSize">The size of the <i>pFirmwareTableBuffer</i> buffer, in bytes.</param>
<returns>
<para>If the function succeeds, the return value is the number of bytes written to the buffer. This value will always be less than or equal to <i>BufferSize</i>. If the function fails because the buffer is not large enough, the return value is the required buffer size, in bytes. This value is always greater than <i>BufferSize</i>. If the function fails for any other reason, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-getsystemfirmwaretable">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetVersionEx(Windows.Win32.System.SystemInformation.OSVERSIONINFOW@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GetVersionEx(Windows.Win32.System.SystemInformation.OSVERSIONINFOW*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GetVersionEx(Windows.Win32.System.SystemInformation.OSVERSIONINFOW*)">
<summary>With the release of Windows 8.1, the behavior of the GetVersionEx API has changed in the value it will return for the operating system version. The value returned by the GetVersionEx function now depends on how the application is manifested.</summary>
<param name="lpVersionInformation">
<para>An <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-osversioninfoa">OSVERSIONINFO</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-osversioninfoexa">OSVERSIONINFOEX</a> structure that receives the operating system information.</para>
<para>Before calling the <b>GetVersionEx</b> function, set the <b>dwOSVersionInfoSize</b> member of the structure as appropriate to indicate which data structure is being passed to this function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-getversionexw#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. The function fails if you specify an invalid value for the <b>dwOSVersionInfoSize</b> member of the <a href="/windows/desktop/api/winnt/ns-winnt-osversioninfoa">OSVERSIONINFO</a> or <a href="/windows/desktop/api/winnt/ns-winnt-osversioninfoexa">OSVERSIONINFOEX</a> structure.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-getversionexw">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GlobalMemoryStatusEx(Windows.Win32.System.SystemInformation.MEMORYSTATUSEX@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.GlobalMemoryStatusEx(Windows.Win32.System.SystemInformation.MEMORYSTATUSEX*)" />
</member>
<member name="M:Windows.Win32.PInvoke.GlobalMemoryStatusEx(Windows.Win32.System.SystemInformation.MEMORYSTATUSEX*)">
<summary>Retrieves information about the system's current usage of both physical and virtual memory.</summary>
<param name="lpBuffer">
<para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/sysinfoapi/ns-sysinfoapi-memorystatusex">MEMORYSTATUSEX</a> structure that receives information about current memory availability.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-globalmemorystatusex#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/nf-sysinfoapi-globalmemorystatusex">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.IsDebuggerPresent">
<summary>Determines whether the calling process is being debugged by a user-mode debugger.</summary>
<returns>
<para>If the current process is running in the context of a debugger, the return value is nonzero. If the current process is not running in the context of a debugger, the return value is zero.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//debugapi/nf-debugapi-isdebuggerpresent">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.IsWow64Process2(System.Runtime.InteropServices.SafeHandle,System.UInt16@,System.UInt16*)">
<inheritdoc cref="M:Windows.Win32.PInvoke.IsWow64Process2(Windows.Win32.Foundation.HANDLE,System.UInt16*,System.UInt16*)" />
</member>
<member name="M:Windows.Win32.PInvoke.IsWow64Process2(Windows.Win32.Foundation.HANDLE,System.UInt16*,System.UInt16*)">
<summary>Determines whether the specified process is running under WOW64; also returns additional machine process and architecture information.</summary>
<param name="hProcess">A handle to the process. The handle must have the <b>PROCESS_QUERY_INFORMATION</b> or <b>PROCESS_QUERY_LIMITED_INFORMATION</b> access right. For more information, see <a href="https://docs.microsoft.com/windows/desktop/ProcThread/process-security-and-access-rights">Process Security and Access Rights</a>.</param>
<param name="pProcessMachine">On success, returns a pointer to an <a href="https://docs.microsoft.com/windows/desktop/SysInfo/image-file-machine-constants">IMAGE_FILE_MACHINE_*</a> value. The value will be <b>IMAGE_FILE_MACHINE_UNKNOWN</b> if the target process is not a <a href="https://docs.microsoft.com/windows/desktop/WinProg64/running-32-bit-applications">WOW64</a> process; otherwise, it will identify the type of WoW process.</param>
<param name="pNativeMachine">On success, returns a pointer to a possible <a href="https://docs.microsoft.com/windows/desktop/SysInfo/image-file-machine-constants">IMAGE_FILE_MACHINE_*</a> value identifying the native architecture of host system.</param>
<returns>
<para>If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wow64apiset/nf-wow64apiset-iswow64process2">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.ProcessIdToSessionId(System.UInt32,System.UInt32@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.ProcessIdToSessionId(System.UInt32,System.UInt32*)" />
</member>
<member name="M:Windows.Win32.PInvoke.ProcessIdToSessionId(System.UInt32,System.UInt32*)">
<summary>Retrieves the Remote Desktop Services session associated with a specified process.</summary>
<param name="dwProcessId">
<para>Specifies a process identifier. Use the <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getcurrentprocessid">GetCurrentProcessId</a> function to retrieve the process identifier for the current process.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-processidtosessionid#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="pSessionId">
<para>Pointer to a variable that receives the identifier of the Remote Desktop Services session under which the specified process is running. To retrieve the identifier of the session currently attached to the console, use the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-wtsgetactiveconsolesessionid">WTSGetActiveConsoleSessionId</a> function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-processidtosessionid#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/nf-processthreadsapi-processidtosessionid">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.PssCaptureSnapshot(System.Runtime.InteropServices.SafeHandle,Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS,System.UInt32,Windows.Win32.System.Diagnostics.ProcessSnapshotting.HPSS@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.PssCaptureSnapshot(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS,System.UInt32,Windows.Win32.System.Diagnostics.ProcessSnapshotting.HPSS*)" />
</member>
<member name="M:Windows.Win32.PInvoke.PssCaptureSnapshot(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS,System.UInt32,Windows.Win32.System.Diagnostics.ProcessSnapshotting.HPSS*)">
<summary>Captures a snapshot of a target process.</summary>
<param name="ProcessHandle">A handle to the target process.</param>
<param name="CaptureFlags">Flags that specify what to capture. For more information, see <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/processsnapshot/ne-processsnapshot-pss_capture_flags">PSS_CAPTURE_FLAGS</a>.</param>
<param name="ThreadContextFlags">The <b>CONTEXT</b> record flags to capture if <i>CaptureFlags</i> specifies thread contexts.</param>
<param name="SnapshotHandle">A handle to the snapshot that this function captures.</param>
<returns>
<para>This function returns <b>ERROR_SUCCESS</b> on success. All error codes are defined in winerror.h. Use <a href="/windows/desktop/api/winbase/nf-winbase-formatmessage">FormatMessage</a> with the <b>FORMAT_MESSAGE_FROM_SYSTEM</b> flag to get a message for an error code.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processsnapshot/nf-processsnapshot-psscapturesnapshot">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.PssFreeSnapshot(System.Runtime.InteropServices.SafeHandle,Windows.Win32.System.Diagnostics.ProcessSnapshotting.HPSS)">
<inheritdoc cref="M:Windows.Win32.PInvoke.PssFreeSnapshot(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Diagnostics.ProcessSnapshotting.HPSS)" />
</member>
<member name="M:Windows.Win32.PInvoke.PssFreeSnapshot(Windows.Win32.Foundation.HANDLE,Windows.Win32.System.Diagnostics.ProcessSnapshotting.HPSS)">
<summary>Frees a snapshot.</summary>
<param name="ProcessHandle">A handle to the process that contains the snapshot. The handle must have <b>PROCESS_VM_READ</b>, <b>PROCESS_VM_OPERATION</b>, and <b>PROCESS_DUP_HANDLE</b> rights. If the snapshot was captured from the current process, or duplicated into the current process, then pass in the result of <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess">GetCurrentProcess</a>.</param>
<param name="SnapshotHandle">A handle to the snapshot to free.</param>
<returns>
<para>This function returns <b>ERROR_SUCCESS</b> on success or one of the following error codes. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processsnapshot/nf-processsnapshot-pssfreesnapshot">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.ReOpenFile(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Storage.FileSystem.FILE_ACCESS_FLAGS,Windows.Win32.Storage.FileSystem.FILE_SHARE_MODE,Windows.Win32.Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES)">
<inheritdoc cref="M:Windows.Win32.PInvoke.ReOpenFile(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.FILE_ACCESS_FLAGS,Windows.Win32.Storage.FileSystem.FILE_SHARE_MODE,Windows.Win32.Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES)" />
</member>
<member name="M:Windows.Win32.PInvoke.ReOpenFile(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.FILE_ACCESS_FLAGS,Windows.Win32.Storage.FileSystem.FILE_SHARE_MODE,Windows.Win32.Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES)">
<summary>Reopens the specified file system object with different access rights, sharing mode, and flags.</summary>
<param name="hOriginalFile">
<para>A handle to the object to be reopened. The object must have been created by the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-createfilea">CreateFile</a> function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-reopenfile#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwDesiredAccess">
<para>The required access to the object. For a list of values, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-security-and-access-rights">File Security and Access Rights</a>. You cannot request an access mode that conflicts with the sharing mode specified in a previous open request whose handle is still open. If this parameter is zero (0), the application can query device attributes without accessing the device. This is useful if an application wants to determine the size of a floppy disk drive and the formats it supports without requiring a floppy in the drive.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-reopenfile#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwShareMode">
<para>The sharing mode of the object. You cannot request a sharing mode that conflicts with the access mode specified in a previous open request whose handle is still open. If this parameter is zero (0) and <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-createfilea">CreateFile</a> succeeds, the object cannot be shared and cannot be opened again until the handle is closed. To enable other processes to share the object while your process has it open, use a combination of one or</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-reopenfile#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwFlagsAndAttributes"></param>
<returns>
<para>If the function succeeds, the return value is an open handle to the specified file. If the function fails, the return value is <b>INVALID_HANDLE_VALUE</b>. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/nf-winbase-reopenfile">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.SetFileInformationByHandle(System.Runtime.InteropServices.SafeHandle,Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS,System.Void*,System.UInt32)">
<inheritdoc cref="M:Windows.Win32.PInvoke.SetFileInformationByHandle(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS,System.Void*,System.UInt32)" />
</member>
<member name="M:Windows.Win32.PInvoke.SetFileInformationByHandle(Windows.Win32.Foundation.HANDLE,Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS,System.Void*,System.UInt32)">
<summary>Sets the file information for the specified file.</summary>
<param name="hFile">
<para>A handle to the file for which to change information. This handle must be opened with the appropriate permissions for the requested change. For more information, see the Remarks and Example Code sections. This handle should not be a pipe handle.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-setfileinformationbyhandle#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="FileInformationClass">
<para>A <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ne-minwinbase-file_info_by_handle_class">FILE_INFO_BY_HANDLE_CLASS</a> enumeration value that specifies the type of information to be changed. For a table of valid values, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-setfileinformationbyhandle#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="lpFileInformation">
<para>A pointer to the buffer that contains the information to change for the specified file information class. The structure that this parameter points to corresponds to the class that is specified by <i>FileInformationClass</i>. For a table of valid structure types, see the Remarks section.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-setfileinformationbyhandle#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="dwBufferSize">The size of <i>lpFileInformation</i>, in bytes.</param>
<returns>
<para>Returns nonzero if successful or zero otherwise. To get extended error information, call <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/nf-fileapi-setfileinformationbyhandle">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WaitForMultipleObjects(System.ReadOnlySpan{Windows.Win32.Foundation.HANDLE},Windows.Win32.Foundation.BOOL,System.UInt32)">
<inheritdoc cref="M:Windows.Win32.PInvoke.WaitForMultipleObjects(System.UInt32,Windows.Win32.Foundation.HANDLE*,Windows.Win32.Foundation.BOOL,System.UInt32)" />
</member>
<member name="M:Windows.Win32.PInvoke.WaitForMultipleObjects(System.UInt32,Windows.Win32.Foundation.HANDLE*,Windows.Win32.Foundation.BOOL,System.UInt32)">
<summary>Waits until one or all of the specified objects are in the signaled state or the time-out interval elapses.</summary>
<param name="nCount">The number of object handles in the array pointed to by <i>lpHandles</i>. The maximum number of object handles is <b>MAXIMUM_WAIT_OBJECTS</b>. This parameter cannot be zero.</param>
<param name="lpHandles">
<para>An array of object handles. For a list of the object types whose handles can be specified, see the following Remarks section. The array can contain handles to objects of different types. It may not contain multiple copies of the same handle. If one of these handles is closed while the wait is still pending, the function's behavior is undefined. The handles must have the <b>SYNCHRONIZE</b> access right. For more information, see <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/standard-access-rights">Standard Access Rights</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//synchapi/nf-synchapi-waitformultipleobjects#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="bWaitAll">If this parameter is <b>TRUE</b>, the function returns when the state of all objects in the <i>lpHandles</i> array is signaled. If <b>FALSE</b>, the function returns when the state of any one of the objects is set to signaled. In the latter case, the return value indicates the object whose state caused the function to return.</param>
<param name="dwMilliseconds">
<para>The time-out interval, in milliseconds. If a nonzero value is specified, the function waits until the specified objects are signaled or the interval elapses. If <i>dwMilliseconds</i> is zero, the function does not enter a wait state if the specified objects are not signaled; it always returns immediately. If <i>dwMilliseconds</i> is <b>INFINITE</b>, the function will return only when the specified objects are signaled. <b>Windows XP, Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 and Windows Server 2008 R2:  </b>The <i>dwMilliseconds</i> value does include time spent in low-power states. For example, the timeout does keep counting down while the computer is asleep. <b>Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10 and Windows Server 2016:  </b>The <i>dwMilliseconds</i> value does not include time spent in low-power states. For example, the timeout does not keep counting down while the computer is asleep.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//synchapi/nf-synchapi-waitformultipleobjects#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>
<para>If the function succeeds, the return value indicates the event that caused the function to return. It can be one of the following values. (Note that <b>WAIT_OBJECT_0</b> is defined as 0 and <b>WAIT_ABANDONED_0</b> is defined as 0x00000080L.) </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//synchapi/nf-synchapi-waitformultipleobjects">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WerRegisterCustomMetadata(System.String,System.String)">
<inheritdoc cref="M:Windows.Win32.PInvoke.WerRegisterCustomMetadata(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)" />
</member>
<member name="M:Windows.Win32.PInvoke.WerRegisterCustomMetadata(Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)">
<summary>Registers app-specific metadata to be collected (in the form of key/value strings) when WER creates an error report.</summary>
<param name="key">The "key" string for the metadata element being registered.</param>
<param name="value">The value string for the metadata element being registered.</param>
<returns>
<para>This function returns <b>S_OK</b> on success or an error code on failure, including the following error codes. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//werapi/nf-werapi-werregistercustommetadata">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.NetFreeAadJoinInformation(System.Nullable{Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO})">
<inheritdoc cref="M:Windows.Win32.PInvoke.NetFreeAadJoinInformation(Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO*)" />
</member>
<member name="M:Windows.Win32.PInvoke.NetFreeAadJoinInformation(Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO*)">
<summary>Frees the memory allocated for the specified DSREG_JOIN_INFO structure, which contains join information for a tenant and which you retrieved by calling the NetGetAadJoinInformation function.</summary>
<param name="pJoinInfo">Pointer to the <a href="https://docs.microsoft.com/windows/desktop/api/lmjoin/ns-lmjoin-dsreg_join_info">DSREG_JOIN_INFO</a> structure for which you want to free the memory.</param>
<returns>This function does not return a value.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//lmjoin/nf-lmjoin-netfreeaadjoininformation">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.NetGetAadJoinInformation(System.String,Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO**)">
<inheritdoc cref="M:Windows.Win32.PInvoke.NetGetAadJoinInformation(Windows.Win32.Foundation.PCWSTR,Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO**)" />
</member>
<member name="M:Windows.Win32.PInvoke.NetGetAadJoinInformation(Windows.Win32.Foundation.PCWSTR,Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO**)">
<summary>Retrieves the join information for the specified tenant. This function examines the join information for Microsoft Azure Active Directory and the work account that the current user added.</summary>
<param name="pcszTenantId">
<para>The tenant identifier for the joined account. If the device is not joined to Azure Active Directory (Azure AD), and the user currently logged into Windows added no Azure AD work accounts for the specified tenant, the buffer that the <i>ppJoinInfo</i> parameter points to is set to NULL. If the specified tenant ID is NULL or empty, <i>ppJoinInfo</i> is set to the default join account information, or NULL if the device is not joined to Azure AD and the current user added no Azure AD work accounts. The default join account is one of the following: </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//lmjoin/nf-lmjoin-netgetaadjoininformation#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<param name="ppJoinInfo">
<para>The join information for the tenant that the <i>pcszTenantId</i> parameter specifies. If this parameter is NULL, the device is not joined to Azure AD and the current user added no Azure AD work accounts. You must call the <a href="https://docs.microsoft.com/windows/desktop/api/lmjoin/nf-lmjoin-netfreeaadjoininformation">NetFreeAadJoinInformation</a> function to free the memory allocated for this structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//lmjoin/nf-lmjoin-netgetaadjoininformation#parameters">Read more on docs.microsoft.com</see>.</para>
</param>
<returns>If this function succeeds, it returns <b xmlns:loc="http://microsoft.com/wdcml/l10n">S_OK</b>. Otherwise, it returns an <b xmlns:loc="http://microsoft.com/wdcml/l10n">HRESULT</b> error code.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//lmjoin/nf-lmjoin-netgetaadjoininformation">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.IsOS(Windows.Win32.UI.Shell.OS)">
<summary>Checks for specified operating systems and operating system features.</summary>
<param name="dwOS">Type: <b>DWORD</b></param>
<returns>
<para>Type: <b>BOOL</b> Returns a nonzero value if the specified operating system or operating system feature is detected, otherwise <b>FALSE</b>.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//shlwapi/nf-shlwapi-isos">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.ReleaseDC(Windows.Win32.Foundation.HWND,Windows.Win32.Graphics.Gdi.HDC)">
<summary>The ReleaseDC function releases a device context (DC), freeing it for use by other applications. The effect of the ReleaseDC function depends on the type of DC. It frees only common and window DCs. It has no effect on class or private DCs.</summary>
<param name="hWnd">A handle to the window whose DC is to be released.</param>
<param name="hDC">A handle to the DC to be released.</param>
<returns>
<para>The return value indicates whether the DC was released. If the DC was released, the return value is 1. If the DC was not released, the return value is zero.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-releasedc">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.GetSystemMetrics(Windows.Win32.UI.WindowsAndMessaging.SYSTEM_METRICS_INDEX)">
<summary>Retrieves the specified system metric or system configuration setting.</summary>
<param name="nIndex">Type: <b>int</b></param>
<returns>
<para>Type: <b>int</b> If the function succeeds, the return value is the requested system metric or configuration setting. If the function fails, the return value is 0. <a href="/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> does not provide extended error information.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winuser/nf-winuser-getsystemmetrics">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WerReportCloseHandle(Windows.Win32.System.ErrorReporting.HREPORT)">
<summary>Closes the specified report.</summary>
<param name="hReportHandle">A handle to the report. This handle is returned by the <a href="https://docs.microsoft.com/windows/desktop/api/werapi/nf-werapi-werreportcreate">WerReportCreate</a> function.</param>
<returns>This function returns <b>S_OK</b> on success or an error code on failure.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//werapi/nf-werapi-werreportclosehandle">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WerReportAddFile(System.Runtime.InteropServices.SafeHandle,System.String,Windows.Win32.System.ErrorReporting.WER_FILE_TYPE,Windows.Win32.System.ErrorReporting.WER_FILE)">
<inheritdoc cref="M:Windows.Win32.PInvoke.WerReportAddFile(Windows.Win32.System.ErrorReporting.HREPORT,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.ErrorReporting.WER_FILE_TYPE,Windows.Win32.System.ErrorReporting.WER_FILE)" />
</member>
<member name="M:Windows.Win32.PInvoke.WerReportAddFile(Windows.Win32.System.ErrorReporting.HREPORT,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.ErrorReporting.WER_FILE_TYPE,Windows.Win32.System.ErrorReporting.WER_FILE)">
<summary>Adds a file to the specified report.</summary>
<param name="hReportHandle">A handle to the report. This handle is returned by the <a href="https://docs.microsoft.com/windows/desktop/api/werapi/nf-werapi-werreportcreate">WerReportCreate</a> function.</param>
<param name="pwzPath">A pointer to a Unicode string that contains the full path to the file to be added. This path can use environment variables. The maximum length of this path is MAX_PATH characters.</param>
<param name="repFileType"></param>
<param name="dwFileFlags"></param>
<returns>
<para>This function returns <b>S_OK</b> on success or an error code on failure, including the following error code. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//werapi/nf-werapi-werreportaddfile">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WerReportCreate(System.String,Windows.Win32.System.ErrorReporting.WER_REPORT_TYPE,System.Nullable{Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION},Windows.Win32.WerReportCloseHandleSafeHandle@)">
<inheritdoc cref="M:Windows.Win32.PInvoke.WerReportCreate(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.ErrorReporting.WER_REPORT_TYPE,Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION*,Windows.Win32.System.ErrorReporting.HREPORT*)" />
</member>
<member name="M:Windows.Win32.PInvoke.WerReportCreate(Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.ErrorReporting.WER_REPORT_TYPE,Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION*,Windows.Win32.System.ErrorReporting.HREPORT*)">
<summary>Creates a problem report that describes an application event.</summary>
<param name="pwzEventType">A pointer to a Unicode string that specifies the name of the event.</param>
<param name="repType"></param>
<param name="pReportInformation">A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/werapi/ns-werapi-wer_report_information">WER_REPORT_INFORMATION</a> structure that specifies information for the report.</param>
<param name="phReportHandle">A handle to the report. If the function fails, this handle is <b>NULL</b>.</param>
<returns>This function returns <b>S_OK</b> on success or an error code on failure.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//werapi/nf-werapi-werreportcreate">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WerReportSetParameter(System.Runtime.InteropServices.SafeHandle,System.UInt32,System.String,System.String)">
<inheritdoc cref="M:Windows.Win32.PInvoke.WerReportSetParameter(Windows.Win32.System.ErrorReporting.HREPORT,System.UInt32,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)" />
</member>
<member name="M:Windows.Win32.PInvoke.WerReportSetParameter(Windows.Win32.System.ErrorReporting.HREPORT,System.UInt32,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR)">
<summary>Sets the parameters that uniquely identify an event for the specified report.</summary>
<param name="hReportHandle">A handle to the report. This handle is returned by the <a href="https://docs.microsoft.com/windows/desktop/api/werapi/nf-werapi-werreportcreate">WerReportCreate</a> function.</param>
<param name="dwparamID"></param>
<param name="pwzName">A pointer to a Unicode string that contains the name of the parameter. If this parameter is <b>NULL</b>, the default name is P<i>x</i>, where <i>x</i> matches the integer portion of the value specified in <i>dwparamID</i>.</param>
<param name="pwzValue">The parameter value.</param>
<returns>
<para>This function returns <b>S_OK</b> on success or an error code on failure, including the following error code. </para>
<para>This doc was truncated.</para>
</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//werapi/nf-werapi-werreportsetparameter">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.PInvoke.WerReportSubmit(System.Runtime.InteropServices.SafeHandle,Windows.Win32.System.ErrorReporting.WER_CONSENT,Windows.Win32.System.ErrorReporting.WER_SUBMIT_FLAGS,Windows.Win32.System.ErrorReporting.WER_SUBMIT_RESULT*)">
<inheritdoc cref="M:Windows.Win32.PInvoke.WerReportSubmit(Windows.Win32.System.ErrorReporting.HREPORT,Windows.Win32.System.ErrorReporting.WER_CONSENT,Windows.Win32.System.ErrorReporting.WER_SUBMIT_FLAGS,Windows.Win32.System.ErrorReporting.WER_SUBMIT_RESULT*)" />
</member>
<member name="M:Windows.Win32.PInvoke.WerReportSubmit(Windows.Win32.System.ErrorReporting.HREPORT,Windows.Win32.System.ErrorReporting.WER_CONSENT,Windows.Win32.System.ErrorReporting.WER_SUBMIT_FLAGS,Windows.Win32.System.ErrorReporting.WER_SUBMIT_RESULT*)">
<summary>Submits the specified report.</summary>
<param name="hReportHandle">A handle to the report. This handle is returned by the <a href="https://docs.microsoft.com/windows/desktop/api/werapi/nf-werapi-werreportcreate">WerReportCreate</a> function.</param>
<param name="consent"></param>
<param name="dwFlags"></param>
<param name="pSubmitResult"></param>
<returns>This function returns <b>S_OK</b> on success or an error code on failure.</returns>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//werapi/nf-werapi-werreportsubmit">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="M:Windows.Win32.Foundation.HRESULT.ThrowOnFailure(System.IntPtr)">
<inheritdoc cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)" />
<param name="errorInfo">
A pointer to the IErrorInfo interface that provides more information about the
error. You can specify <see cref="F:System.IntPtr.Zero" /> to use the current IErrorInfo interface, or
<c>new IntPtr(-1)</c> to ignore the current IErrorInfo interface and construct the exception
just from the error code.
</param>
<returns><see langword="this" /> <see cref="T:Windows.Win32.Foundation.HRESULT" />, if it does not reflect an error.</returns>
<seealso cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)" />
</member>
<member name="T:Windows.Win32.Foundation.PCWSTR">
<summary>
A pointer to a constant character string.
</summary>
</member>
<member name="F:Windows.Win32.Foundation.PCWSTR.Value">
<summary>
A pointer to the first character in the string. The content should be considered readonly, as it was typed as constant in the SDK.
</summary>
</member>
<member name="P:Windows.Win32.Foundation.PCWSTR.Length">
<summary>
Gets the number of characters up to the first null character (exclusive).
</summary>
</member>
<member name="M:Windows.Win32.Foundation.PCWSTR.ToString">
<summary>
Returns a <see langword="string" /> with a copy of this character array.
</summary>
<returns>A <see langword="string" />, or <see langword="null" /> if <see cref="F:Windows.Win32.Foundation.PCWSTR.Value" /> is <see langword="null" />.</returns>
</member>
<member name="M:Windows.Win32.Foundation.PCWSTR.AsSpan">
<summary>
Returns a span of the characters in this string.
</summary>
</member>
<member name="M:Windows.Win32.Foundation.PWSTR.AsSpan">
<summary>
Returns a span of the characters in this string.
</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION">
<summary>Contains information that the GetFileInformationByHandle function retrieves.</summary>
<remarks>
<para>The identifier that is stored in the <b>nFileIndexHigh</b> and <b>nFileIndexLow</b> members is called the file ID. Support for file IDs is file system-specific. File IDs are not guaranteed to be unique over time, because file systems are free to reuse them. In some cases, the file ID for a file can change over time. In the FAT file system, the file ID is generated from the first cluster of the containing directory and the byte offset within the directory of the entry for the file. Some defragmentation products change this byte offset. (Windows in-box defragmentation does not.) Thus, a FAT file ID can change over time. Renaming a file in the FAT file system can also change the file ID, but only if the new file name is longer than the old one. In the NTFS file system, a file keeps the same file ID until it is deleted. You can replace one file with another file without changing the file ID by using the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-replacefilea">ReplaceFile</a> function. However, the file ID of the replacement file, not the replaced file, is retained as the file ID of the resulting file. Not all file systems can record creation and last access time, and not all file systems record them in the same manner. For example, on a Windows FAT file system, create time has a resolution of 10 milliseconds, write time has a resolution of 2 seconds, and access time has a resolution of 1 day (the access date). On the NTFS file system, access time has a resolution of 1 hour. For more information, see <a href="https://docs.microsoft.com/windows/desktop/SysInfo/file-times">File Times</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.dwFileAttributes">
<summary>
<para>The file attributes. For possible values and their descriptions, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-attribute-constants">File Attribute Constants</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.ftCreationTime">
<summary>
<para>A <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> structure that specifies when a file or directory is created. If the underlying file system does not support creation time, this member is zero (0).</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.ftLastAccessTime">
<summary>
<para>A <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> structure. For a file, the structure specifies the last time that a file is read from or written to. For a directory, the structure specifies when the directory is created. For both files and directories, the specified date is correct, but the time of day is always set to midnight. If the underlying file system does not support the last access time, this member is zero (0).</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.ftLastWriteTime">
<summary>
<para>A <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> structure. For a file, the structure specifies the last time that a file is written to. For a directory, the structure specifies when the directory is created. If the underlying file system does not support the last write time, this member is zero (0).</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.dwVolumeSerialNumber">
<summary>The serial number of the volume that contains a file.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.nFileSizeHigh">
<summary>The high-order part of the file size.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.nFileSizeLow">
<summary>The low-order part of the file size.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.nNumberOfLinks">
<summary>
<para>The number of links to this file. For the FAT file system this member is always 1. For the NTFS file system, it can be more than 1.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.nFileIndexHigh">
<summary>
<para>The high-order part of a unique identifier that is associated with a file. For more information, see <b>nFileIndexLow</b>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.BY_HANDLE_FILE_INFORMATION.nFileIndexLow">
<summary>
<para>The low-order part of a unique identifier that is associated with a file. The identifier (low and high parts) and the volume serial number uniquely identify a file on a single computer. To determine whether two open handles represent the same file, combine the identifier and the volume serial number for each file and compare them. The ReFS file system, introduced with Windows Server 2012, includes 128-bit file identifiers. To retrieve the 128-bit file identifier use the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a> function with <b>FileIdInfo</b> to retrieve the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_info">FILE_ID_INFO</a> structure. The 64-bit identifier in this structure is not guaranteed to be unique on ReFS.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//fileapi/ns-fileapi-by_handle_file_information#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.FILE_BASIC_INFO">
<summary>Contains the basic information for a file. Used for file handles.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_basic_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_BASIC_INFO.CreationTime">
<summary>
<para>The time the file was created in <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> format, which is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC).</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_basic_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_BASIC_INFO.LastAccessTime">
<summary>
<para>The time the file was last accessed in <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> format.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_basic_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_BASIC_INFO.LastWriteTime">
<summary>
<para>The time the file was last written to in <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> format.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_basic_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_BASIC_INFO.ChangeTime">
<summary>
<para>The time the file was changed in <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> format.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_basic_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_BASIC_INFO.FileAttributes">
<summary>
<para>The file attributes. For a list of attributes, see <a href="https://docs.microsoft.com/windows/desktop/FileIO/file-attribute-constants">File Attribute Constants</a>. If this is set to 0 in a <b>FILE_BASIC_INFO</b> structure passed to <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a> then none of the attributes are changed.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_basic_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.FILE_DISPOSITION_INFO">
<summary>Indicates whether a file should be deleted. Used for any handles.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_disposition_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS">
<summary>Identifies the type of file information that GetFileInformationByHandleEx should retrieve or SetFileInformationByHandle should set.</summary>
<remarks>
<para>As noted in the preceding section, some file information classes are valid only for use with <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. Others are valid only for use with <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. Where neither function is mentioned, the information class is valid with both functions.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileBasicInfo">
<summary>
<para>Minimal information for the file should be retrieved or set. Used for file handles. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_basic_info">FILE_BASIC_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileStandardInfo">
<summary>
<para>Extended information for the file should be retrieved. Used for file handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_standard_info">FILE_STANDARD_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileNameInfo">
<summary>
<para>The file name should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_name_info">FILE_NAME_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileRenameInfo">
<summary>
<para>The file name should be changed. Used for file handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_rename_info">FILE_RENAME_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileDispositionInfo">
<summary>
<para>The file should be deleted. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_disposition_info">FILE_DISPOSITION_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileAllocationInfo">
<summary>
<para>The file allocation information should be changed. Used for file handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_allocation_info">FILE ALLOCATION INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileEndOfFileInfo">
<summary>
<para>The end of the file should be set. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_end_of_file_info">FILE_END_OF_FILE_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileStreamInfo">
<summary>
<para>File stream information for the specified file should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_stream_info">FILE_STREAM_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileCompressionInfo">
<summary>
<para>File compression information should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_compression_info">FILE_COMPRESSION_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileAttributeTagInfo">
<summary>
<para>File attribute information should be retrieved. Used for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_attribute_tag_info">FILE_ATTRIBUTE_TAG_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryInfo">
<summary>
<para>Files in the specified directory should be retrieved. Used for directory handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. The number of files returned for each call to <b>GetFileInformationByHandleEx</b> depends on the size of the buffer that is passed to the function. Any subsequent calls to <b>GetFileInformationByHandleEx</b> on the same handle will resume the enumeration operation after the last file is returned. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_both_dir_info">FILE_ID_BOTH_DIR_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryRestartInfo">
<summary>
<para>Identical to <b>FileIdBothDirectoryInfo</b>, but forces the enumeration operation to start again from the beginning. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_both_dir_info">FILE_ID_BOTH_DIR_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIoPriorityHintInfo">
<summary>
<para>Priority hint information should be set. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-setfileinformationbyhandle">SetFileInformationByHandle</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_io_priority_hint_info">FILE_IO_PRIORITY_HINT_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileRemoteProtocolInfo">
<summary>
<para>File remote protocol information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_remote_protocol_info">FILE_REMOTE_PROTOCOL_INFO</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryInfo">
<summary>
<para>Files in the specified directory should be retrieved. Used for directory handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_full_dir_info">FILE_FULL_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryRestartInfo">
<summary>
<para>Identical to <b>FileFullDirectoryInfo</b>, but forces the enumeration operation to start again from the beginning. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_full_dir_info">FILE_FULL_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileStorageInfo">
<summary>
<para>File storage information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_storage_info">FILE_STORAGE_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileAlignmentInfo">
<summary>
<para>File alignment information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_alignment_info">FILE_ALIGNMENT_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdInfo">
<summary>
<para>File information should be retrieved. Use for any handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_info">FILE_ID_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryInfo">
<summary>
<para>Files in the specified directory should be retrieved. Used for directory handles. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_extd_dir_info">FILE_ID_EXTD_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryRestartInfo">
<summary>
<para>Identical to <b>FileIdExtdDirectoryInfo</b>, but forces the enumeration operation to start again from the beginning. Use only when calling <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-getfileinformationbyhandleex">GetFileInformationByHandleEx</a>. See <a href="https://docs.microsoft.com/windows/desktop/api/winbase/ns-winbase-file_id_extd_dir_info">FILE_ID_EXTD_DIR_INFO</a>. <b>Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:  </b>This value is not supported before Windows 8 and Windows Server 2012</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//minwinbase/ne-minwinbase-file_info_by_handle_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileDispositionInfoEx">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.FileRenameInfoEx">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_INFO_BY_HANDLE_CLASS.MaximumFileInfoByHandleClass">
<summary>This value is used for validation. Supported values are less than this value.</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO">
<summary>Contains the name to which the file should be renamed.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winbase/ns-winbase-file_rename_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO.RootDirectory">
<summary>A handle to the root directory in which the file to be renamed is located.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO.FileNameLength">
<summary>The size of <b>FileName</b> in bytes.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO.FileName">
<summary>The new file name.</summary>
</member>
<member name="P:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO.__char_1.Length">
<summary>Always <c>1</c>.</summary>
</member>
<member name="M:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO.__char_1.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length" /> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO.__char_1.Length" />.
</exception>
</member>
<member name="M:Windows.Win32.Storage.FileSystem.FILE_RENAME_INFO.__char_1.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="T:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE">
<summary>Specifies the various types of storage buses.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_bus_type">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeUnknown">
<summary>Unknown bus type.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeScsi">
<summary>SCSI bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeAtapi">
<summary>ATAPI bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeAta">
<summary>ATA bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusType1394">
<summary>IEEE-1394 bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeSsa">
<summary>SSA bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeFibre">
<summary>Fibre Channel bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeUsb">
<summary>USB bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeRAID">
<summary>RAID bus.</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeiScsi">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeSas">
<summary>
<para>Serial Attached SCSI (SAS) bus. **Windows Server 2003:**  This is not supported before Windows Server 2003 with SP1.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_bus_type#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeSata">
<summary>
<para>SATA bus. **Windows Server 2003:**  This is not supported before Windows Server 2003 with SP1.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_bus_type#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeSd">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeMmc">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeVirtual">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeFileBackedVirtual">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeSpaces">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeNvme">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeSCM">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeUfs">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeMax">
<summary></summary>
</member>
<member name="F:Windows.Win32.Storage.FileSystem.STORAGE_BUS_TYPE.BusTypeMaxReserved">
<summary></summary>
</member>
<member name="T:Windows.Win32.Security.Cryptography.CERT_CONTEXT">
<summary>Contains both the encoded and decoded representations of a certificate.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_context">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_CONTEXT.dwCertEncodingType">
<summary>
<para>Type of encoding used. It is always acceptable to specify both the certificate and <a href="https://docs.microsoft.com/windows/desktop/SecGloss/m-gly">message encoding types</a> by combining them with a bitwise-<b>OR</b> operation as shown in the following example: X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Currently defined encoding types are: </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_context#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_CONTEXT.pbCertEncoded">
<summary>A pointer to a buffer that contains the encoded certificate.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_CONTEXT.cbCertEncoded">
<summary>The size, in bytes, of the encoded certificate.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_CONTEXT.pCertInfo">
<summary>The address of a <a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/ns-wincrypt-cert_info">CERT_INFO</a> structure that contains the certificate information.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_CONTEXT.hCertStore">
<summary>A handle to the <a href="https://docs.microsoft.com/windows/desktop/SecGloss/c-gly">certificate store</a> that contains the certificate <a href="https://docs.microsoft.com/windows/desktop/SecGloss/c-gly">context</a>.</summary>
</member>
<member name="T:Windows.Win32.Security.Cryptography.CERT_EXTENSION">
<summary>The CERT_EXTENSION structure contains the extension information for a certificate, Certificate Revocation List (CRL) or Certificate Trust List (CTL).</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_extension">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_EXTENSION.pszObjId">
<summary>
<para><a href="https://docs.microsoft.com/windows/desktop/SecGloss/o-gly">Object identifier</a> (OID) that specifies the structure of the extension data contained in the <b>Value</b> member. For specifics on extension OIDs and their related structures, see <a href="https://docs.microsoft.com/windows/desktop/SecCrypto/cryptography-structures">X.509 Certificate Extension Structures</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_extension#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_EXTENSION.fCritical">
<summary>If <b>TRUE</b>, any limitations specified by the extension in the <b>Value</b> member of this structure are imperative. If <b>FALSE</b>, limitations set by this extension can be ignored.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_EXTENSION.Value">
<summary>
<para>A <a href="https://docs.microsoft.com/previous-versions/windows/desktop/legacy/aa381414(v=vs.85)">CRYPT_OBJID_BLOB</a> structure that contains the encoded extension data. The <b>cbData</b> member of <b>Value</b> indicates the length in bytes of the <b>pbData</b> member. The <b>pbData</b> member byte string is the encoded extension.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_extension#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.Security.Cryptography.CERT_INFO">
<summary>Contains the information of a certificate.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.dwVersion">
<summary>
<para>The version number of a certificate. This member can be one of the following version numbers. </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.SerialNumber">
<summary>A <a href="https://docs.microsoft.com/windows/desktop/SecGloss/b-gly">BLOB</a> that contains the serial number of a certificate. The least significant byte is the zero byte of the <b>pbData</b> member of <i>SerialNumber</i>. The index for the last byte of <b>pbData</b>, is one less than the value of the <b>cbData</b> member of <i>SerialNumber</i>. The most significant byte is the last byte of <b>pbData</b>. Leading 0x00 or 0xFF bytes are removed. For more information, see <a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/nf-wincrypt-certcompareintegerblob">CertCompareIntegerBlob</a>.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.SignatureAlgorithm">
<summary>A <a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/ns-wincrypt-crypt_algorithm_identifier">CRYPT_ALGORITHM_IDENTIFIER</a> structure that contains the signature algorithm type and encoded additional encryption parameters.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.Issuer">
<summary>The name, in encoded form, of the issuer of the certificate.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.NotBefore">
<summary>Date and time before which the certificate is not valid. For dates between 1950 and 2049 inclusive, the date and time is encoded Coordinated Universal Time (Greenwich Mean Time) format in the form YYMMDDHHMMSS. This member uses a two-digit year and is precise to seconds. For dates before 1950 or after 2049, encoded generalized time is used. Encoded generalized time is in the form YYYYMMDDHHMMSSMMM, using a four-digit year, and is precise to milliseconds. Even though generalized time supports millisecond resolution, the <b>NotBefore</b> time is only precise to seconds.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.NotAfter">
<summary>Date and time after which the certificate is not valid. For dates between 1950 and 2049 inclusive, the date and time is encoded Coordinated Universal Time format in the form YYMMDDHHMMSS. This member uses a two-digit year and is precise to seconds. For dates before 1950 or after 2049, encoded generalized time is used. Encoded generalized time is in the form YYYYMMDDHHMMSSMMM, using a four-digit year, and is precise to milliseconds. Even though generalized time supports millisecond resolution, the <b>NotAfter</b> time is only precise to seconds.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.Subject">
<summary>The encoded name of the subject of the certificate.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.SubjectPublicKeyInfo">
<summary>A <a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/ns-wincrypt-cert_public_key_info">CERT_PUBLIC_KEY_INFO</a> structure that contains the encoded public key and its algorithm. The <b>PublicKey</b> member of the <b>CERT_PUBLIC_KEY_INFO</b> structure contains the encoded public key as a <a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/ns-wincrypt-crypt_bit_blob">CRYPT_BIT_BLOB</a>, and the <b>Algorithm</b> member contains the encoded algorithm as a <a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/ns-wincrypt-crypt_algorithm_identifier">CRYPT_ALGORITHM_IDENTIFIER</a>.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.IssuerUniqueId">
<summary>A BLOB that contains a unique identifier of the issuer.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.SubjectUniqueId">
<summary>A BLOB that contains a unique identifier of the subject.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.cExtension">
<summary>The number of elements in the <b>rgExtension</b> array.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_INFO.rgExtension">
<summary>
<para>An array of pointers to <a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/ns-wincrypt-cert_extension">CERT_EXTENSION</a> structures, each of which contains extension information about the certificate.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.Security.Cryptography.CERT_PUBLIC_KEY_INFO">
<summary>Contains a public key and its algorithm.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-cert_public_key_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_PUBLIC_KEY_INFO.Algorithm">
<summary><a href="https://docs.microsoft.com/windows/desktop/api/wincrypt/ns-wincrypt-crypt_algorithm_identifier">CRYPT_ALGORITHM_IDENTIFIER</a> structure that contains the public key algorithm type and associated additional parameters.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CERT_PUBLIC_KEY_INFO.PublicKey">
<summary>BLOB containing an encoded public key.</summary>
</member>
<member name="T:Windows.Win32.Security.Cryptography.CRYPT_ALGORITHM_IDENTIFIER">
<summary>Specifies an algorithm used to encrypt a private key.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-crypt_algorithm_identifier">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CRYPT_ALGORITHM_IDENTIFIER.pszObjId">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CRYPT_ALGORITHM_IDENTIFIER.Parameters">
<summary>
<para>A <a href="https://docs.microsoft.com/windows/desktop/SecGloss/b-gly">BLOB</a> that provides encoded algorithm-specific parameters. In many cases, there are no parameters. This is indicated by setting the <b>cbData</b> member of the <b>Parameters</b> BLOB to zero.</para>
<para>The following algorithms have the specified encoded parameters. For more information, see <a href="https://docs.microsoft.com/windows/desktop/SecCrypto/constants-for-cryptencodeobject-and-cryptdecodeobject">Constants for CryptEncodeObject and CryptDecodeObject</a>. </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-crypt_algorithm_identifier#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.Security.Cryptography.CRYPT_BIT_BLOB">
<summary>Contains a set of bits represented by an array of bytes.</summary>
<remarks>
<para>Because the smallest chunk of memory that can normally be allocated is a byte, the <b>CRYPT_BIT_BLOB</b> structure allows the last byte in the array to contain zero to seven unused bits. The number of unused bits in the array is contained in the <b>cUnusedBits</b> member of this structure. The number of meaningful bits in the <b>pbData</b> member is calculated with the formula ((<b>cbData</b> × 8) <b>cUnusedBits</b>). For example, if you need to represent 10 bits, you would allocate an array of 2 bytes and set <b>cUnusedBits</b> to 6. If you view the array as contiguous bits from left to right, the left 10 bits would be meaningful, and the right 6 bits would be unused.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wincrypt/ns-wincrypt-crypt_bit_blob#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CRYPT_BIT_BLOB.cbData">
<summary>The number of bytes in the <b>pbData</b> array.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CRYPT_BIT_BLOB.pbData">
<summary>A pointer to an array of bytes that represents the bits.</summary>
</member>
<member name="F:Windows.Win32.Security.Cryptography.CRYPT_BIT_BLOB.cUnusedBits">
<summary>The number of unused bits in the last byte of the array. The unused bits are always the least significant bits in the last byte of the array.</summary>
</member>
<member name="T:Windows.Win32.Security.SECURITY_ATTRIBUTES">
<summary>The SECURITY_ATTRIBUTES structure contains the security descriptor for an object and specifies whether the handle retrieved by specifying this structure is inheritable.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//wtypesbase/ns-wtypesbase-security_attributes#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.SECURITY_ATTRIBUTES.nLength">
<summary>The size, in bytes, of this structure. Set this value to the size of the **SECURITY\_ATTRIBUTES** structure.</summary>
</member>
<member name="F:Windows.Win32.Security.SECURITY_ATTRIBUTES.lpSecurityDescriptor">
<summary>
<para>A pointer to a [**SECURITY\_DESCRIPTOR**](../winnt/ns-winnt-security_descriptor.md) structure that controls access to the object. If the value of this member is **NULL**, the object is assigned the default security descriptor associated with the [*access token*](/windows/win32/secauthz/access-tokens) of the calling process. This is not the same as granting access to everyone by assigning a **NULL** [*discretionary access control list*](/windows/win32/secauthz/dacls-and-aces) (DACL). By default, the default DACL in the access token of a process allows access only to the user represented by the access token. For information about creating a security descriptor, see [Creating a Security Descriptor](/windows/win32/secauthz/creating-a-security-descriptor-for-a-new-object-in-c--).</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//wtypesbase/ns-wtypesbase-security_attributes#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.SECURITY_ATTRIBUTES.bInheritHandle">
<summary>A Boolean value that specifies whether the returned handle is inherited when a new process is created. If this member is **TRUE**, the new process inherits the handle.</summary>
</member>
<member name="T:Windows.Win32.Security.TOKEN_ELEVATION_TYPE">
<summary>Indicates the elevation type of token being queried by the GetTokenInformation function or set by the SetTokenInformation function.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_elevation_type">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.TOKEN_ELEVATION_TYPE.TokenElevationTypeDefault">
<summary>The token does not have a linked token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_ELEVATION_TYPE.TokenElevationTypeFull">
<summary>The token is an elevated token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_ELEVATION_TYPE.TokenElevationTypeLimited">
<summary>The token is a limited token.</summary>
</member>
<member name="T:Windows.Win32.Security.TOKEN_INFORMATION_CLASS">
<summary>Contains values that specify the type of information being assigned to or retrieved from an access token.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenUser">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_user">TOKEN_USER</a> structure that contains the user account of the token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenGroups">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the group accounts associated with the token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenPrivileges">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_privileges">TOKEN_PRIVILEGES</a> structure that contains the privileges of the token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenOwner">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_owner">TOKEN_OWNER</a> structure that contains the default owner <a href="https://docs.microsoft.com/windows/desktop/SecGloss/s-gly">security identifier</a> (SID) for newly created objects.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenPrimaryGroup">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_primary_group">TOKEN_PRIMARY_GROUP</a> structure that contains the default primary group SID for newly created objects.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenDefaultDacl">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_default_dacl">TOKEN_DEFAULT_DACL</a> structure that contains the default DACL for newly created objects.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSource">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_source">TOKEN_SOURCE</a> structure that contains the source of the token. <b>TOKEN_QUERY_SOURCE</b> access is needed to retrieve this information.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenType">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ne-winnt-token_type">TOKEN_TYPE</a> value that indicates whether the token is a <a href="https://docs.microsoft.com/windows/desktop/SecGloss/p-gly">primary</a> or <a href="https://docs.microsoft.com/windows/desktop/SecGloss/i-gly">impersonation token</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenImpersonationLevel">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ne-winnt-security_impersonation_level">SECURITY_IMPERSONATION_LEVEL</a> value that indicates the impersonation level of the token. If the access token is not an <a href="https://docs.microsoft.com/windows/desktop/SecGloss/i-gly">impersonation token</a>, the function fails.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenStatistics">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_statistics">TOKEN_STATISTICS</a> structure that contains various token statistics.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedSids">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the list of restricting SIDs in a <a href="https://docs.microsoft.com/windows/desktop/SecAuthZ/restricted-tokens">restricted token</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSessionId">
<summary>
<para>The buffer receives a <b>DWORD</b> value that indicates the Terminal Services session identifier that is associated with the token. If the token is associated with the terminal server client session, the session identifier is nonzero. <b>Windows Server 2003 and Windows XP:  </b>If the token is associated with the terminal server console session, the session identifier is zero. In a non-Terminal Services environment, the session identifier is zero. If <b>TokenSessionId</b> is set with <a href="https://docs.microsoft.com/windows/desktop/api/securitybaseapi/nf-securitybaseapi-settokeninformation">SetTokenInformation</a>, the application must have the <b>Act As Part Of the Operating System</b> privilege, and the application must be enabled to set the session ID in a token.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenGroupsAndPrivileges">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups_and_privileges">TOKEN_GROUPS_AND_PRIVILEGES</a> structure that contains the user SID, the group accounts, the restricted SIDs, and the authentication ID associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSessionReference">
<summary>Reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSandBoxInert">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token includes the <b>SANDBOX_INERT</b> flag.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAuditPolicy">
<summary>Reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenOrigin">
<summary>
<para>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_origin">TOKEN_ORIGIN</a> value. If the token resulted from a logon that used explicit credentials, such as passing a name, domain, and password to the <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-logonusera">LogonUser</a> function, then the <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_origin">TOKEN_ORIGIN</a> structure will contain the ID of the <a href="https://docs.microsoft.com/windows/desktop/SecGloss/l-gly">logon session</a> that created it. If the token resulted from network authentication, such as a call to <a href="https://docs.microsoft.com/windows/desktop/api/sspi/nf-sspi-acceptsecuritycontext">AcceptSecurityContext</a> or a call to <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-logonusera">LogonUser</a> with <i>dwLogonType</i> set to <b>LOGON32_LOGON_NETWORK</b> or <b>LOGON32_LOGON_NETWORK_CLEARTEXT</b>, then this value will be zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ne-winnt-token_information_class#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenElevationType">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ne-winnt-token_elevation_type">TOKEN_ELEVATION_TYPE</a> value that specifies the elevation level of the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenLinkedToken">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_linked_token">TOKEN_LINKED_TOKEN</a> structure that contains a handle to another token that is linked to this token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenElevation">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_elevation">TOKEN_ELEVATION</a> structure that specifies whether the token is elevated.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenHasRestrictions">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token has ever been filtered.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAccessInformation">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_access_information">TOKEN_ACCESS_INFORMATION</a> structure that specifies security information contained in the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenVirtualizationAllowed">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if <a href="https://docs.microsoft.com/windows/desktop/SecGloss/v-gly">virtualization</a> is allowed for the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenVirtualizationEnabled">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if <a href="https://docs.microsoft.com/windows/desktop/SecGloss/v-gly">virtualization</a> is enabled for the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIntegrityLevel">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_mandatory_label">TOKEN_MANDATORY_LABEL</a> structure that specifies the token's integrity level.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenUIAccess">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token has the UIAccess flag set.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenMandatoryPolicy">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_mandatory_policy">TOKEN_MANDATORY_POLICY</a> structure that specifies the token's mandatory integrity policy.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenLogonSid">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that specifies the token's logon SID.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIsAppContainer">
<summary>The buffer receives a <b>DWORD</b> value that is nonzero if the token is an app container token. Any callers who check the <b>TokenIsAppContainer</b> and have it return 0 should also verify that the caller token is not an identify level impersonation token. If the current token is not an app container but is an identity level token, you should return <b>AccessDenied</b>.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenCapabilities">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the capabilities associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAppContainerSid">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_appcontainer_information">TOKEN_APPCONTAINER_INFORMATION</a> structure that contains the AppContainerSid associated with the token. If the token is not associated with an app container, the <b>TokenAppContainer</b> member of the <b>TOKEN_APPCONTAINER_INFORMATION</b> structure points to <b>NULL</b>.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenAppContainerNumber">
<summary>The buffer receives a <b>DWORD</b> value that includes the app container number for the token. For tokens that are not app container tokens, this value is zero.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenUserClaimAttributes">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-claim_security_attributes_information">CLAIM_SECURITY_ATTRIBUTES_INFORMATION</a> structure that contains the user claims associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenDeviceClaimAttributes">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-claim_security_attributes_information">CLAIM_SECURITY_ATTRIBUTES_INFORMATION</a> structure that contains the device claims associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedUserClaimAttributes">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedDeviceClaimAttributes">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenDeviceGroups">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the device groups that are associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenRestrictedDeviceGroups">
<summary>The buffer receives a <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-token_groups">TOKEN_GROUPS</a> structure that contains the restricted device groups that are associated with the token.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSecurityAttributes">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIsRestricted">
<summary>This value is reserved.</summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenProcessTrustLevel">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenPrivateNameSpace">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenSingletonAttributes">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenBnoIsolation">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenChildProcessFlags">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.TokenIsLessPrivilegedAppContainer">
<summary></summary>
</member>
<member name="F:Windows.Win32.Security.TOKEN_INFORMATION_CLASS.MaxTokenInfoClass">
<summary>The maximum value for this enumeration.</summary>
</member>
<member name="T:Windows.Win32.System.Ioctl.DISK_EXTENT">
<summary>Represents a disk extent.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-disk_extent">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Ioctl.DISK_EXTENT.DiskNumber">
<summary>
<para>The number of the disk that contains this extent. This is the same number that is used to construct the name of the disk, for example, the *X* in "\\\\?\\PhysicalDrive*X*" or "\\\\?\\\Harddisk*X*".</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-disk_extent#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.DISK_EXTENT.StartingOffset">
<summary>The offset from the beginning of the disk to the extent, in bytes.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.DISK_EXTENT.ExtentLength">
<summary>The number of bytes in this extent.</summary>
</member>
<member name="T:Windows.Win32.System.Ioctl.STORAGE_DESCRIPTOR_HEADER">
<summary>Used in conjunction with the IOCTL_STORAGE_QUERY_PROPERTY control code to retrieve the properties of a storage device or adapter.</summary>
<remarks>
<para>The data retrieved by <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ni-winioctl-ioctl_storage_query_property">IOCTL_STORAGE_QUERY_PROPERTY</a> is reported in the buffer immediately following this structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_descriptor_header#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DESCRIPTOR_HEADER.Version">
<summary>
<para>Contains the size of this structure, in bytes. The value of this member will change as members are added to the structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_descriptor_header#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DESCRIPTOR_HEADER.Size">
<summary>
<para>Specifies the total size of the data returned, in bytes. This may include data that follows this structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_descriptor_header#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR">
<summary>Used in conjunction with the IOCTL_STORAGE_QUERY_PROPERTY control code to retrieve the storage device descriptor data for a device.</summary>
<remarks>
<para>An application can determine the required buffer size by issuing a <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ni-winioctl-ioctl_storage_query_property">IOCTL_STORAGE_QUERY_PROPERTY</a> control code passing a <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ns-winioctl-storage_descriptor_header">STORAGE_DESCRIPTOR_HEADER</a> structure for the output buffer, and then using the returned <b>Size</b> member of the <b>STORAGE_DESCRIPTOR_HEADER</b> structure to allocate a buffer of the proper size.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.Version">
<summary>
<para>Contains the size of this structure, in bytes. The value of this member will change as members are added to the structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.Size">
<summary>
<para>Specifies the total size of the descriptor, in bytes, which may include vendor ID, product ID, product revision, device serial number strings and bus-specific data which are appended to the structure.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.DeviceType">
<summary>Specifies the device type as defined by the Small Computer Systems Interface (SCSI) specification.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.DeviceTypeModifier">
<summary>
<para>Specifies the device type modifier, if any, as defined by the SCSI specification. If no device type modifier exists, this member is zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.RemovableMedia">
<summary>
<para>Indicates when <b>TRUE</b> that the device's media (if any) is removable. If the device has no media, this member should be ignored. When <b>FALSE</b> the device's media is not removable.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.CommandQueueing">
<summary>
<para>Indicates when <b>TRUE</b> that the device supports multiple outstanding commands (SCSI tagged queuing or equivalent). When <b>FALSE</b>, the device does not support SCSI-tagged queuing or the equivalent.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.VendorIdOffset">
<summary>
<para>Specifies the byte offset from the beginning of the structure to a null-terminated ASCII string that contains the device's vendor ID. If the device has no vendor ID, this member is zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.ProductIdOffset">
<summary>
<para>Specifies the byte offset from the beginning of the structure to a null-terminated ASCII string that contains the device's product ID. If the device has no product ID, this member is zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.ProductRevisionOffset">
<summary>
<para>Specifies the byte offset from the beginning of the structure to a null-terminated ASCII string that contains the device's product revision string. If the device has no product revision string, this member is zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.SerialNumberOffset">
<summary>
<para>Specifies the byte offset from the beginning of the structure to a null-terminated ASCII string that contains the device's serial number. If the device has no serial number, this member is zero.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.BusType">
<summary>
<para>Specifies an enumerator value of type <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ne-winioctl-storage_bus_type">STORAGE_BUS_TYPE</a> that indicates the type of bus to which the device is connected. This should be used to interpret the raw device properties at the end of this structure (if any).</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.RawPropertiesLength">
<summary>Indicates the number of bytes of bus-specific data that have been appended to this descriptor.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.RawDeviceProperties">
<summary>
<para>Contains an array of length one that serves as a place holder for the first byte of the bus specific property data.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_device_descriptor#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="P:Windows.Win32.System.Ioctl.STORAGE_DEVICE_DESCRIPTOR.__byte_1.Length">
<summary>Always <c>1</c>.</summary>
</member>
<member name="T:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID">
<summary>Enumerates the possible values of the PropertyId member of the STORAGE_PROPERTY_QUERY structure passed as input to the IOCTL_STORAGE_QUERY_PROPERTY request to retrieve the properties of a storage device or adapter.</summary>
<remarks>
<para>The optional output buffer returned through the *lpOutBuffer* parameter of the [IOCTL_STORAGE_QUERY_PROPERTY](ni-winioctl-ioctl_storage_query_property.md) control code request can be one of several structures depending on the value of the **PropertyId** member of the [STORAGE_PROPERTY_QUERY](ns-winioctl-storage_property_query.md) structure pointed to by the *lpInBuffer* parameter. If the **QueryType** member of the **STORAGE_PROPERTY_QUERY** is set to **PropertyExistsQuery**, then no structure is returned.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceProperty">
<summary>Indicates that the caller is querying for the device descriptor, [STORAGE_DEVICE_DESCRIPTOR](ns-winioctl-storage_device_descriptor.md).</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAdapterProperty">
<summary>Indicates that the caller is querying for the adapter descriptor, [STORAGE_ADAPTER_DESCRIPTOR](ns-winioctl-storage_adapter_descriptor.md).</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceIdProperty">
<summary>Indicates that the caller is querying for the device identifiers provided with the SCSI vital product data pages. Data is returned using the [STORAGE_DEVICE_ID_DESCRIPTOR](ns-winioctl-storage_device_id_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceUniqueIdProperty">
<summary>
<para>**Intended for driver usage.** Indicates that the caller is querying for the unique device identifiers. Data is returned using the **STORAGE_DEVICE_UNIQUE_IDENTIFIER** structure (see the storduid.h header in the DDK). **Windows Server 2003 and Windows XP:**  This value is not supported before Windows Vista and Windows Server 2008.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceWriteCacheProperty">
<summary>
<para>Indicates that the caller is querying for the write cache property. Data is returned using the [STORAGE_WRITE_CACHE_PROPERTY](ns-winioctl-storage_write_cache_property.md) structure. **Windows Server 2003 and Windows XP:**  This value is not supported before Windows Vista and Windows Server 2008.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageMiniportProperty">
<summary>Reserved for system use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAccessAlignmentProperty">
<summary>
<para>Indicates that the caller is querying for the access alignment descriptor, [STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR](ns-winioctl-storage_access_alignment_descriptor.md). **Windows Server 2003 and Windows XP:**  This value is not supported before Windows Vista and Windows Server 2008.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceSeekPenaltyProperty">
<summary>
<para>Indicates that the caller is querying for the seek penalty descriptor, [DEVICE_SEEK_PENALTY_DESCRIPTOR](ns-winioctl-device_seek_penalty_descriptor.md). **Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:**  This value is not supported before Windows 7 and Windows Server 2008 R2.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceTrimProperty">
<summary>
<para>Indicates that the caller is querying for the trim descriptor, [DEVICE_TRIM_DESCRIPTOR](ns-winioctl-device_trim_descriptor.md). **Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:**  This value is not supported before Windows 7 and Windows Server 2008 R2.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceWriteAggregationProperty">
<summary>Reserved for system use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceDeviceTelemetryProperty">
<summary>Reserved for system use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceLBProvisioningProperty">
<summary>
<para>Indicates that the caller is querying for the logical block provisioning property. Data is returned using the [DEVICE_LB_PROVISIONING_DESCRIPTOR](ns-winioctl-device_lb_provisioning_descriptor.md) structure. **Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:**  This value is not supported before Windows 8 and Windows Server 2012.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDevicePowerProperty">
<summary>
<para>Indicates that the caller is querying for the device power descriptor. Data is returned using the [DEVICE_POWER_DESCRIPTOR](ns-winioctl-device_power_descriptor.md) structure. **Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:**  This value is not supported before Windows 8 and Windows Server 2012.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceCopyOffloadProperty">
<summary>
<para>Indicates that the caller is querying for the copy offload parameters property. Data is returned using the [DEVICE_COPY_OFFLOAD_DESCRIPTOR](ns-winioctl-device_copy_offload_descriptor.md) structure. **Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP:**  This value is not supported before Windows 8 and Windows Server 2012.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_property_id#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceResiliencyProperty">
<summary>Reserved for system use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceMediumProductType">
<summary>Indicates that the caller is querying for the medium product type. Data is returned using the [STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR](./ns-winioctl-storage_medium_product_type_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAdapterRpmbProperty">
<summary>Indicates that the caller is querying for RPMB support and properties. Data is returned using the [STORAGE_RPMB_DESCRIPTOR](ns-winioctl-storage_rpmb_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAdapterCryptoProperty">
<summary>Provides info on the storage adapter encryption capabilities. This is currently supported on UFS (Universal Flash Storage) adapters.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceIoCapabilityProperty">
<summary>Indicates that the caller is querying for the device I/O capability property. Data is returned using the [DEVICE_IO_CAPABILITY_DESCRIPTOR](ns-winioctl-storage_device_io_capability_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAdapterProtocolSpecificProperty">
<summary>Indicates that the caller is querying for protocol-specific data from the adapter. Data is returned using the [STORAGE_PROTOCOL_DATA_DESCRIPTOR](ns-winioctl-storage_protocol_data_descriptor.md) structure. See the remarks for more info.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceProtocolSpecificProperty">
<summary>Indicates that the caller is querying for protocol-specific data from the device. Data is returned using the [STORAGE_PROTOCOL_DATA_DESCRIPTOR](ns-winioctl-storage_protocol_data_descriptor.md) structure. See the remarks for more info.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAdapterTemperatureProperty">
<summary>Indicates that the caller is querying temperature data from the adapter. Data is returned using the [STORAGE_TEMPERATURE_DATA_DESCRIPTOR](ns-winioctl-storage_temperature_data_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceTemperatureProperty">
<summary>Indicates that the caller is querying for temperature data from the device. Data is returned using the [STORAGE_TEMPERATURE_DATA_DESCRIPTOR](ns-winioctl-storage_temperature_data_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAdapterPhysicalTopologyProperty">
<summary>Indicates that the caller is querying for topology information from the adapter. Data is returned using the [STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR](ns-winioctl-storage_physical_topology_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDevicePhysicalTopologyProperty">
<summary>Indicates that the caller is querying for topology information from the device. Data is returned using the [STORAGE_PHYSICAL_TOPOLOGY_DESCRIPTOR](ns-winioctl-storage_physical_topology_descriptor.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceAttributesProperty">
<summary>Reserved for future use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceManagementStatus">
<summary>Provides health information about the storage device (specifically for the persistent memory stack).</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageAdapterSerialNumberProperty">
<summary>Indicates that the caller is querying for the adapter serial number. Data is returned using the [STORAGE_ADAPTER_SERIAL_NUMBER](ns-winioctl-storage_adapter_serial_number.md) structure.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceLocationProperty">
<summary>Reserved for system use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceNumaProperty">
<summary>Provides the non-uniform memory access (NUMA) node of the storage device.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceZonedDeviceProperty">
<summary>Reserved for system use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceUnsafeShutdownCount">
<summary>Provides the unsafe shutdown count value used to determine if the device data might have been lost during a power loss event (specifically for the persistent memory stack).</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceEnduranceProperty">
<summary>Provides info on how many bytes have been read/write from a solid-state drive (SSD). This property is supported only for Non-Volatile Memory Express (NVMe) devices that implement a certain NVMe feature.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceLedStateProperty">
<summary>Provides info on the state of the LED associated with a storage device. This is a server-oriented feature.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageDeviceSelfEncryptionProperty">
<summary>Reserved for system use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_ID.StorageFruIdProperty">
<summary>Provides identification info for a storage device that can be physically replaced with a Field Replacement Unit (FRU).</summary>
</member>
<member name="T:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_QUERY">
<summary>Indicates the properties of a storage device or adapter to retrieve as the input buffer passed to the IOCTL_STORAGE_QUERY_PROPERTY control code.</summary>
<remarks>
<para>The optional output buffer returned through the <i>lpOutBuffer</i> parameter of the <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ni-winioctl-ioctl_storage_query_property">IOCTL_STORAGE_QUERY_PROPERTY</a> control code can be one of several structures depending on the value of the <b>PropertyId</b> member. If the <b>QueryType</b> member is set to <b>PropertyExistsQuery</b>, then no structure is returned.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_property_query#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_QUERY.PropertyId">
<summary>
<para>Indicates whether the caller is requesting a device descriptor, an adapter descriptor, a write cache property, a device unique ID (DUID), or the device identifiers provided in the device's SCSI vital product data (VPD) page. For a list of the property IDs that can be assigned to this member, see <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ne-winioctl-storage_property_id">STORAGE_PROPERTY_ID</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_property_query#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_QUERY.QueryType">
<summary>
<para>Contains flags indicating the type of query to be performed as enumerated by the <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ne-winioctl-storage_query_type">STORAGE_QUERY_TYPE</a> enumeration. </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-storage_property_query#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_QUERY.AdditionalParameters">
<summary>Contains an array of bytes that can be used to retrieve additional parameters for specific queries.</summary>
</member>
<member name="P:Windows.Win32.System.Ioctl.STORAGE_PROPERTY_QUERY.__byte_1.Length">
<summary>Always <c>1</c>.</summary>
</member>
<member name="T:Windows.Win32.System.Ioctl.STORAGE_QUERY_TYPE">
<summary>Used by the STORAGE_PROPERTY_QUERY structure passed to the IOCTL_STORAGE_QUERY_PROPERTY control code to indicate what information is returned about a property of a storage device or adapter.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ne-winioctl-storage_query_type">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_QUERY_TYPE.PropertyStandardQuery">
<summary>Instructs the driver to return an appropriate descriptor.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_QUERY_TYPE.PropertyExistsQuery">
<summary>Instructs the driver to report whether the descriptor is supported.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_QUERY_TYPE.PropertyMaskQuery">
<summary>Not currently supported. Do not use.</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.STORAGE_QUERY_TYPE.PropertyQueryMaxDefined">
<summary>Specifies the upper limit of the list of query types. This is used to validate the query type.</summary>
</member>
<member name="T:Windows.Win32.System.Ioctl.VOLUME_DISK_EXTENTS">
<summary>Represents a physical location on a disk.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-volume_disk_extents">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Ioctl.VOLUME_DISK_EXTENTS.NumberOfDiskExtents">
<summary>
<para>The number of disks in the volume (a volume can span multiple disks). An extent is a contiguous run of sectors on one disk. When the number of extents returned is greater than one (1), the error code <b>ERROR_MORE_DATA</b> is returned. You should call <a href="https://docs.microsoft.com/windows/desktop/api/ioapiset/nf-ioapiset-deviceiocontrol">DeviceIoControl</a> again, allocating enough buffer space based on the value of <b>NumberOfDiskExtents</b> after the first <b>DeviceIoControl</b> call.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winioctl/ns-winioctl-volume_disk_extents#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Ioctl.VOLUME_DISK_EXTENTS.Extents">
<summary>An array of <a href="https://docs.microsoft.com/windows/desktop/api/winioctl/ns-winioctl-disk_extent">DISK_EXTENT</a> structures.</summary>
</member>
<member name="P:Windows.Win32.System.Ioctl.VOLUME_DISK_EXTENTS.__winmdroot_System_Ioctl_DISK_EXTENT_1.Length">
<summary>Always <c>1</c>.</summary>
</member>
<member name="T:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX">
<summary>Contains information about the current state of both physical and virtual memory, including extended memory.</summary>
<remarks>
<para><b>MEMORYSTATUSEX</b> reflects the state of memory at the time of the call. It also reflects the size of the paging file at that time. The operating system can enlarge the paging file up to the maximum size set by the administrator. The physical memory sizes returned include the memory from all nodes.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/ns-sysinfoapi-memorystatusex#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.dwLength">
<summary>
<para>The size of the structure, in bytes. You must set this member before calling <a href="https://docs.microsoft.com/windows/desktop/api/sysinfoapi/nf-sysinfoapi-globalmemorystatusex">GlobalMemoryStatusEx</a>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/ns-sysinfoapi-memorystatusex#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.dwMemoryLoad">
<summary>A number between 0 and 100 that specifies the approximate percentage of physical memory that is in use (0 indicates no memory use and 100 indicates full memory use).</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.ullTotalPhys">
<summary>The amount of actual physical memory, in bytes.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.ullAvailPhys">
<summary>The amount of physical memory currently available, in bytes. This is the amount of physical memory that can be immediately reused without having to write its contents to disk first. It is the sum of the size of the standby, free, and zero lists.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.ullTotalPageFile">
<summary>The current committed memory limit for the system or the current process, whichever is smaller, in bytes. To get the system-wide committed memory limit, call <a href="https://docs.microsoft.com/windows/desktop/api/psapi/nf-psapi-getperformanceinfo">GetPerformanceInfo</a>.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.ullAvailPageFile">
<summary>The maximum amount of memory the current process can commit, in bytes. This value is equal to or smaller than the system-wide available commit value. To calculate the system-wide available commit value, call <a href="https://docs.microsoft.com/windows/desktop/api/psapi/nf-psapi-getperformanceinfo">GetPerformanceInfo</a> and subtract the value of <b>CommitTotal</b> from the value of <b>CommitLimit</b>.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.ullTotalVirtual">
<summary>The size of the user-mode portion of the virtual address space of the calling process, in bytes. This value depends on the type of process, the type of processor, and the configuration of the operating system. For example, this value is approximately 2 GB for most 32-bit processes on an x86 processor and approximately 3 GB for 32-bit processes that are large address aware running on a system with <a href="https://docs.microsoft.com/windows/desktop/Memory/4-gigabyte-tuning">4-gigabyte tuning</a> enabled.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.ullAvailVirtual">
<summary>The amount of unreserved and uncommitted memory currently in the user-mode portion of the virtual address space of the calling process, in bytes.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.MEMORYSTATUSEX.ullAvailExtendedVirtual">
<summary>Reserved. This value is always 0.</summary>
</member>
<member name="T:Windows.Win32.System.SystemInformation.OSVERSIONINFOW">
<summary>Contains operating system version information.</summary>
<remarks>
<para>Relying on version information is not the best way to test for a feature. Instead, refer to the documentation for the feature of interest. For more information on common techniques for feature detection, see <a href="https://docs.microsoft.com/windows/desktop/SysInfo/operating-system-version">Operating System Version</a>. If you must require a particular operating system, be sure to use it as a minimum supported version, rather than design the test for the one operating system. This way, your detection code will continue to work on future versions of Windows. The following table summarizes the values returned by supported versions of Windows. Use the information in the column labeled "Other" to distinguish between operating systems with identical version numbers. </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ns-winnt-osversioninfow#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.dwOSVersionInfoSize">
<summary>The size of this data structure, in bytes. Set this member to <c>sizeof(OSVERSIONINFO)</c>.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.dwMajorVersion">
<summary>The major version number of the operating system. For more information, see Remarks.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.dwMinorVersion">
<summary>The minor version number of the operating system. For more information, see Remarks.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.dwBuildNumber">
<summary>The build number of the operating system.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.dwPlatformId">
<summary>
<para>The operating system platform. This member can be the following value.</para>
<para></para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//winnt/ns-winnt-osversioninfow#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.szCSDVersion">
<summary>A null-terminated string, such as "Service Pack 3", that indicates the latest Service Pack installed on the system. If no Service Pack has been installed, the string is empty.</summary>
</member>
<member name="P:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.__char_128.Length">
<summary>Always <c>128</c>.</summary>
</member>
<member name="M:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.__char_128.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length" /> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.__char_128.Length" />.
</exception>
</member>
<member name="M:Windows.Win32.System.SystemInformation.OSVERSIONINFOW.__char_128.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="T:Windows.Win32.System.SystemInformation.SYSTEM_INFO">
<summary>Contains information about the current computer system. This includes the architecture and type of the processor, the number of processors in the system, the page size, and other such information.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/ns-sysinfoapi-system_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.dwPageSize">
<summary>
<para>The page size and the granularity of page protection and commitment. This is the page size used by the <a href="https://docs.microsoft.com/windows/desktop/api/memoryapi/nf-memoryapi-virtualalloc">VirtualAlloc</a> function.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/ns-sysinfoapi-system_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.lpMinimumApplicationAddress">
<summary>A pointer to the lowest memory address accessible to applications and dynamic-link libraries (DLLs).</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.lpMaximumApplicationAddress">
<summary>A pointer to the highest memory address accessible to applications and DLLs.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.dwActiveProcessorMask">
<summary>A mask representing the set of processors configured into the system. Bit 0 is processor 0; bit 31 is processor 31.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.dwNumberOfProcessors">
<summary>
<para>The number of logical processors in the current group. To retrieve this value, use the <a href="https://docs.microsoft.com/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getlogicalprocessorinformation">GetLogicalProcessorInformation</a> function. <div class="alert"><b>Note</b>  For information about the physical processors shared by logical processors, call <a href="https://docs.microsoft.com/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getlogicalprocessorinformationex">GetLogicalProcessorInformationEx</a> with the <i>RelationshipType</i> parameter set to RelationProcessorPackage (3).</div> <div> </div></para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/ns-sysinfoapi-system_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.dwProcessorType">
<summary>An obsolete member that is retained for compatibility. Use the <b>wProcessorArchitecture</b>, <b>wProcessorLevel</b>, and <b>wProcessorRevision</b> members to determine the type of processor.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.dwAllocationGranularity">
<summary>The granularity for the starting address at which virtual memory can be allocated. For more information, see <a href="https://docs.microsoft.com/windows/desktop/api/memoryapi/nf-memoryapi-virtualalloc">VirtualAlloc</a>.</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.wProcessorLevel">
<summary>
<para>The architecture-dependent processor level. It should be used only for display purposes. To determine the feature set of a processor, use the <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-isprocessorfeaturepresent">IsProcessorFeaturePresent</a> function. If <b>wProcessorArchitecture</b> is PROCESSOR_ARCHITECTURE_INTEL, <b>wProcessorLevel</b> is defined by the CPU vendor. If <b>wProcessorArchitecture</b> is PROCESSOR_ARCHITECTURE_IA64, <b>wProcessorLevel</b> is set to 1.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/ns-sysinfoapi-system_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.SystemInformation.SYSTEM_INFO.wProcessorRevision">
<summary>
<para>The architecture-dependent processor revision. The following table shows how the revision value is assembled for each type of processor architecture.</para>
<para></para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//sysinfoapi/ns-sysinfoapi-system_info#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS">
<summary>Flags that specify what PssCaptureSnapshot captures.</summary>
<remarks>
<para>If both <b>PSS_CREATE_FORCE_BREAKAWAY</b> and <b>PSS_CREATE_BREAKAWAY</b> are specified, then <b>PSS_CREATE_FORCE_BREAKAWAY</b> takes precedence.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processsnapshot/ne-processsnapshot-pss_capture_flags#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_NONE">
<summary>Capture nothing.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_VA_CLONE">
<summary>Capture a snapshot of all cloneable pages in the process. The clone includes all <b>MEM_PRIVATE</b> regions, as well as all sections (<b>MEM_MAPPED</b> and <b>MEM_IMAGE</b>) that are shareable. All Win32 sections created via <a href="https://docs.microsoft.com/windows/desktop/api/winbase/nf-winbase-createfilemappinga">CreateFileMapping</a> are shareable.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_RESERVED_00000002">
<summary>(Do not use.)</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_HANDLES">
<summary>Capture the handle table (handle values only).</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_HANDLE_NAME_INFORMATION">
<summary>Capture name information for each handle.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_HANDLE_BASIC_INFORMATION">
<summary>Capture basic handle information such as <b>HandleCount</b>, <b>PointerCount</b>, <b>GrantedAccess</b>, etc.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_HANDLE_TYPE_SPECIFIC_INFORMATION">
<summary>Capture type-specific information for supported object types: <b>Process</b>, <b>Thread</b>, <b>Event</b>, <b>Mutant</b>, <b>Section.</b></summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_HANDLE_TRACE">
<summary>Capture the handle tracing table.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_THREADS">
<summary>Capture thread information (IDs only).</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_THREAD_CONTEXT">
<summary>Capture the context for each thread.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_THREAD_CONTEXT_EXTENDED">
<summary>Capture extended context for each thread (e.g. <b>CONTEXT_XSTATE</b>).</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_RESERVED_00000400">
<summary>(Do not use.)</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_VA_SPACE">
<summary>Capture a snapshot of the virtual address space. The VA space is captured as an array of <a href="https://docs.microsoft.com/windows/desktop/api/winnt/ns-winnt-memory_basic_information">MEMORY_BASIC_INFORMATION</a> structures. This flag does not capture the contents of the pages.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_VA_SPACE_SECTION_INFORMATION">
<summary>
<para>For <b>MEM_IMAGE</b> and <b>MEM_MAPPED</b> regions, dumps the path to the file backing the sections (identical to what <a href="https://docs.microsoft.com/windows/desktop/api/psapi/nf-psapi-getmappedfilenamea">GetMappedFileName</a> returns). For <b>MEM_IMAGE</b> regions, also dumps: </para>
<para>This doc was truncated.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//processsnapshot/ne-processsnapshot-pss_capture_flags#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CAPTURE_IPT_TRACE">
<summary></summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CREATE_BREAKAWAY_OPTIONAL">
<summary>The breakaway is optional. If the clone process fails to create as a breakaway, then it is created still inside the job. This flag must be specified in combination with either <b>PSS_CREATE_FORCE_BREAKAWAY</b> and/or <b>PSS_CREATE_BREAKAWAY</b>.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CREATE_BREAKAWAY">
<summary>The clone is broken away from the parent process' job. This is equivalent to <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createprocessa">CreateProcess</a> flag <b>CREATE_BREAKAWAY_FROM_JOB</b>.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CREATE_FORCE_BREAKAWAY">
<summary>The clone is forcefully broken away the parent process's job. This is only allowed for Tcb-privileged callers.</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CREATE_USE_VM_ALLOCATIONS">
<summary>The facility should not use the process heap for any persistent or transient allocations. The use of the heap may be undesirable in certain contexts such as creation of snapshots in the exception reporting path (where the heap may be corrupted).</summary>
</member>
<member name="F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CREATE_MEASURE_PERFORMANCE">
<summary>Measure performance of the facility. Performance counters can be retrieved via <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/processsnapshot/nf-processsnapshot-pssquerysnapshot">PssQuerySnapshot</a> with the <b>PSS_QUERY_PERFORMANCE_COUNTERS</b> information class of <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/processsnapshot/ne-processsnapshot-pss_query_information_class">PSS_QUERY_INFORMATION_CLASS</a>.</summary>
</member>
<!-- Badly formed XML comment ignored for member "F:Windows.Win32.System.Diagnostics.ProcessSnapshotting.PSS_CAPTURE_FLAGS.PSS_CREATE_RELEASE_SECTION" -->
<member name="P:Windows.Win32.System.ErrorReporting.WER_DUMP_CUSTOM_OPTIONS_V3.__char_256.Length">
<summary>Always <c>256</c>.</summary>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_DUMP_CUSTOM_OPTIONS_V3.__char_256.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length" /> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.System.ErrorReporting.WER_DUMP_CUSTOM_OPTIONS_V3.__char_256.Length" />.
</exception>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_DUMP_CUSTOM_OPTIONS_V3.__char_256.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="T:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION">
<summary>Contains information used by the WerReportCreate function.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//werapi/ns-werapi-wer_report_information">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.dwSize">
<summary>The size of this structure, in bytes.</summary>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.hProcess">
<summary>A handle to the process for which the report is being generated. If this member is <b>NULL</b>, this is the calling process.</summary>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.wzConsentKey">
<summary>The name used to look up consent settings. If this member is empty, the default is the name specified by the <i>pwzEventType</i> parameter of <a href="https://docs.microsoft.com/windows/desktop/api/werapi/nf-werapi-werreportcreate">WerReportCreate</a>.</summary>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.wzFriendlyEventName">
<summary>The display name. If this member is empty, the default is the name specified by <i>pwzEventType</i> parameter of <a href="https://docs.microsoft.com/windows/desktop/api/werapi/nf-werapi-werreportcreate">WerReportCreate</a>.</summary>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.wzApplicationName">
<summary>The name of the application. If this parameter is empty, the default is the base name of the image file.</summary>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.wzApplicationPath">
<summary>The full path to the application.</summary>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.wzDescription">
<summary>A description of the problem. This description is displayed in <b>Problem Reports and Solutions</b> on Windows Vista or the problem reports pane of the <b>Action Center</b> on Windows 7.</summary>
</member>
<member name="F:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.hwndParent">
<summary>A handle to the parent window.</summary>
</member>
<member name="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_64.Length">
<summary>Always <c>64</c>.</summary>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_64.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length" /> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_64.Length" />.
</exception>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_64.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_128.Length">
<summary>Always <c>128</c>.</summary>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_128.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length" /> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_128.Length" />.
</exception>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_128.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_260.Length">
<summary>Always <c>260</c>.</summary>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_260.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length" /> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_260.Length" />.
</exception>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_260.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_512.Length">
<summary>Always <c>512</c>.</summary>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_512.ToString(System.Int32)">
<summary>
Copies the fixed array to a new string up to the specified length regardless of whether there are null terminating characters.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
Thrown when <paramref name="length" /> is less than <c>0</c> or greater than <see cref="P:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_512.Length" />.
</exception>
</member>
<member name="M:Windows.Win32.System.ErrorReporting.WER_REPORT_INFORMATION.__char_512.ToString">
<summary>
Copies the fixed array to a new string, stopping before the first null terminator character or at the end of the fixed array (whichever is shorter).
</summary>
</member>
<member name="T:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS">
<summary>Indicates a specific class of process information.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//processthreadsapi/ne-processthreadsapi-process_information_class#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessMemoryPriority">
<summary>The process information is represented by a <a href="https://docs.microsoft.com/windows/win32/api/processthreadsapi/ns-processthreadsapi-memory_priority_information">MEMORY_PRIORITY_INFORMATION</a> structure. Allows applications to lower the default memory priority of threads that perform background operations or access files and data that are not expected to be accessed again soon.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessMemoryExhaustionInfo">
<summary>The process information is represented by a <a href="https://docs.microsoft.com/windows/win32/api/processthreadsapi/ns-processthreadsapi-process_memory_exhaustion_info">PROCESS_MEMORY_EXHAUSTION_INFO</a> structure. Allows applications to configure a process to terminate if an allocation fails to commit memory.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessAppMemoryInfo">
<summary>The process information is represented by a <a href="https://docs.microsoft.com/windows/win32/api/processthreadsapi/ns-processthreadsapi-app_memory_information">APP_MEMORY_INFORMATION</a> structure. Allows applications to query the commit usage and the additional commit available to this process. Does not allow the caller to actually get a commit limit.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessInPrivateInfo">
<summary>If a process is set to **ProcessInPrivate** mode, and a trace session has set the [EVENT_ENABLE_PROPERTY_EXCLUDE_INPRIVATE](../evntrace/ns-evntrace-enable_trace_parameters.md) flag, then the trace session will drop all events from that process.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessPowerThrottling">
<summary>The process information is represented by a <a href="https://docs.microsoft.com/windows/win32/api/processthreadsapi/ns-processthreadsapi-process_power_throttling_state">PROCESS_POWER_THROTTLING_STATE</a> structure. Allows applications to configure how the system should throttle the target processs activity when managing power.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessReservedValue1">
<summary>Reserved.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessTelemetryCoverageInfo">
<summary>Reserved.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessProtectionLevelInfo">
<summary>The process information is represented by a <a href="https://docs.microsoft.com/windows/desktop/api/processthreadsapi/ns-processthreadsapi-process_protection_level_information">PROCESS_PROTECTION_LEVEL_INFORMATION</a> structure.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessLeapSecondInfo">
<summary>The process information is represented by a <a href="../processthreadsapi/ns-processthreadsapi-process_leap_second_info.md">PROCESS_LEAP_SECOND_INFO</a> structure.</summary>
</member>
<member name="F:Windows.Win32.System.Threading.PROCESS_INFORMATION_CLASS.ProcessInformationClassMax">
<summary>The maximum value for this enumeration. This value may change in a future version.</summary>
</member>
<member name="T:Windows.Win32.System.IO.OVERLAPPED">
<summary>Contains information used in asynchronous (overlapped) input/output (I/O).</summary>
<remarks>
<para>This structure should always be initialized to zero before it is used in a function call. If it is not, the function can fail and return <b>ERROR_INVALID_PARAMETER</b>. Use the <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl/nf-shobjidl-istreamasync-cancelio">IStreamAsync::CancelIo</a> function to cancel an asynchronous I/O operation. A common mistake is to reuse an <b>OVERLAPPED</b> structure before the previous asynchronous operation has been completed. Use a separate structure for each request. Create an event object for each thread that processes data.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//shobjidl/ns-shobjidl-overlapped#">Read more on docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.System.IO.OVERLAPPED.Internal">
<summary>
<para>Type: <b>ULONG_PTR</b> Reserved for operating system use. This member, which specifies a system-dependent status, is valid when the <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl/nf-shobjidl-istreamasync-overlappedresult">IStreamAsync::OverlappedResult</a> function returns without setting the extended error information to <b>ERROR_IO_PENDING</b>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//shobjidl/ns-shobjidl-overlapped#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.IO.OVERLAPPED.InternalHigh">
<summary>
<para>Type: <b>ULONG_PTR</b> Reserved for operating system use. This member, which specifies the length of the data transferred, is valid when the <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl/nf-shobjidl-istreamasync-overlappedresult">IStreamAsync::OverlappedResult</a> function returns <b>TRUE</b>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//shobjidl/ns-shobjidl-overlapped#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="F:Windows.Win32.System.IO.OVERLAPPED.hEvent">
<summary>
<para>Type: <b>handle</b> Handle to an event that is set to the signaled state when the operation has been completed. The calling process must set this member either to zero or a valid event handle before it calls any overlapped functions. To create an event object, use the <a href="https://docs.microsoft.com/windows/desktop/api/synchapi/nf-synchapi-createeventa">CreateEvent</a> function. This function returns a handle that can be used to synchronize simultaneous I/O requests for a device. Functions such as <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl/nf-shobjidl-istreamasync-readasync">IStreamAsync::ReadAsync</a> and <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl/nf-shobjidl-istreamasync-writeasync">IStreamAsync::WriteAsync</a> set this handle to the nonsignaled state before they begin an I/O operation. When the operation has completed, the handle is set to the signaled state. Functions such as <a href="https://docs.microsoft.com/windows/desktop/api/shobjidl/nf-shobjidl-istreamasync-overlappedresult">IStreamAsync::OverlappedResult</a> and the wait functions reset auto-reset events to the nonsignaled state. Therefore, if an auto-reset event is used, the application can stop responding if it waits for the operation to complete and then calls <b>IStreamAsync::OverlappedResult</b>.</para>
<para><see href="https://docs.microsoft.com/windows/win32/api//shobjidl/ns-shobjidl-overlapped#members">Read more on docs.microsoft.com</see>.</para>
</summary>
</member>
<member name="T:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO">
<summary>Contains information about how a device is joined to Microsoft Azure Active Directory.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//lmjoin/ns-lmjoin-dsreg_join_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.joinType">
<summary>An enumeration value that specifies the type of the join.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pJoinCertificate">
<summary>Representations of the certification for the join.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszDeviceId">
<summary>The identifier of the device.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszIdpDomain">
<summary>A string that represents Azure Active Directory (Azure AD).</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszTenantId">
<summary>The identifier of the joined Azure AD tenant.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszJoinUserEmail">
<summary>The email address for the joined account.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszTenantDisplayName">
<summary>The display name for the joined account.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszMdmEnrollmentUrl">
<summary>The URL to use to enroll in the Mobile Device Management (MDM) service.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszMdmTermsOfUseUrl">
<summary>The URL that provides information about the terms of use for the MDM service.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszMdmComplianceUrl">
<summary>The URL that provides information about compliance for the MDM service.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pszUserSettingSyncUrl">
<summary>The URL for synchronizing user settings.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_INFO.pUserInfo">
<summary>Information about the user account that was used to join a device to Azure AD.</summary>
</member>
<member name="T:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_TYPE">
<summary>Specifies the possible ways that a device can be joined to Microsoft Azure Active Directory.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//lmjoin/ne-lmjoin-dsreg_join_type">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_TYPE.DSREG_UNKNOWN_JOIN">
<summary>The type of join is not known.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_TYPE.DSREG_DEVICE_JOIN">
<summary>The device is joined to Azure Active Directory (Azure AD).</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_JOIN_TYPE.DSREG_WORKPLACE_JOIN">
<summary>An Azure AD work account is added on the device.</summary>
</member>
<member name="T:Windows.Win32.NetworkManagement.NetManagement.DSREG_USER_INFO">
<summary>Contains information about a user account that is used to join a device to Microsoft Azure Active Directory.</summary>
<remarks>
<para><see href="https://docs.microsoft.com/windows/win32/api//lmjoin/ns-lmjoin-dsreg_user_info">Learn more about this API from docs.microsoft.com</see>.</para>
</remarks>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_USER_INFO.pszUserEmail">
<summary>The email address of the user.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_USER_INFO.pszUserKeyId">
<summary>The identifier of the Microsoft Passport key that is provisioned for the user.</summary>
</member>
<member name="F:Windows.Win32.NetworkManagement.NetManagement.DSREG_USER_INFO.pszUserKeyName">
<summary>The name of the Microsoft Passport key that is provisioned for the user.</summary>
</member>
<member name="T:Windows.Win32.WerReportCloseHandleSafeHandle">
<summary>
Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.WerReportCloseHandle(Windows.Win32.System.ErrorReporting.HREPORT)" />.
</summary>
</member>
</members>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /><DigestValue>OQ9tyHbr2sZToPnEqb+w39sBoTaZNjLQMEDV+zu0TBg=</DigestValue></Reference></SignedInfo><SignatureValue>g4c3eeTs/A/QQvxL2mJVFPLUi4AzkYvcf7IkGieflrSocs3ZesesGmW//qaXuo2Z4265pjFSRh6Il7HL/tCgeNBYE2SWgh5TJKSBRrpG4fedsIgnMSypUZqcGPy35102ny6+BX/epZ0JcGyt7YRKBdVyfsymGK9PVtCJNAN2hDFNfzbtbDxNtaSPivSPiPbje08Z+MEpqGQGrs1jhWlKNtlswhnBxoTbJjX/J760hhb9f3Q0IUI5F2BNtSHcvFTDUOaZqq3+IAyq7E98uDj9sy2/m9m8AHlC/CgZxbzPVp15V88gu2scgyde5nWv8mjW9ahEWbwcyc9fnf+ejxpgJg==</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>zkvLNa2un9GBrYNDoRGkGv7d0PqtTBB4ViYakFbjuWpmF0KcvDAzzaCWJPhVgIXjz+S8cHEoHuWnp/n+UOljT3ehA8Rs6Lb1aTYub3tB/e0txewv2sQ3yscjYdtTBtFvEm9L8Yv76K3Cxzi/Yvrdg+sr7w8y5RHn1Am0Ff8xggY1xpWCXFI+kQM18njQDcUqSlwBnexYfqHBhzz6YXA/S0EziYBu2O2mM7R6gSyYkEOHgIGTVOGnOvvC5xBgC4KNcnQuQSRLiUI2CmzU8vefR6ykruyzt1rNMPI8OqWHQtSDKXU5JNqbk4GNjwzcwbSzOHrxuxWHq91l/vLdVDGDUw==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIF9DCCA9ygAwIBAgITMwAAA68wQA5Mo00FQQAAAAADrzANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMB4XDTIzMTExNjE5MDkwMFoXDTI0MTExNDE5MDkwMFowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkvLNa2un9GBrYNDoRGkGv7d0PqtTBB4ViYakFbjuWpmF0KcvDAzzaCWJPhVgIXjz+S8cHEoHuWnp/n+UOljT3ehA8Rs6Lb1aTYub3tB/e0txewv2sQ3yscjYdtTBtFvEm9L8Yv76K3Cxzi/Yvrdg+sr7w8y5RHn1Am0Ff8xggY1xpWCXFI+kQM18njQDcUqSlwBnexYfqHBhzz6YXA/S0EziYBu2O2mM7R6gSyYkEOHgIGTVOGnOvvC5xBgC4KNcnQuQSRLiUI2CmzU8vefR6ykruyzt1rNMPI8OqWHQtSDKXU5JNqbk4GNjwzcwbSzOHrxuxWHq91l/vLdVDGDUwIDAQABo4IBczCCAW8wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYBBQUHAwMwHQYDVR0OBBYEFEcccTTyBDxkjvJKs/m4AgEFhl7BMEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQLExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDAxMis1MDE4MjYwHwYDVR0jBBgwFoAUSG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYBBQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQCEsRbf80dn60xTweOWHZoWaQdpzSaDqIvqpYHE5ZzuEMJWDdcP72MGw8v6BSaJQ+a+hTCXdERnIBDPKvU4ENjgu4EBJocHlSe8riiZUAR+z+z4OUYqoFd3EqJyfjjOJBR2z94Dy4ss7LEkHUbj2NZiFqBoPYu2OGQvEk+1oaUsnNKZ7Nl7FHtV7CI2lHBru83e4IPe3glIi0XVZJT5qV6Gx/QhAFmpEVBjSAmDdgII4UUwuI9yiX6jJFNOEek6MoeP06LMJtbqA3Bq+ZWmJ033F97uVpyaiS4bj3vFI/ZBgDnMqNDtZjcA2vi4RRMweggd9vsHyTLpn6+nXoLy03vMeebq0C3k44pgUIEuPQUlJIRTe6IrN3GcjaZ6zHGuQGWgu6SyO9r7qkrEpS2pRjnGZjx2RmCamdAWnDdu+DmfNEPAddYjaJJ7PTnd+PGzG+WeH4ocWgVnm5fJFhItjj70CJjgHqt57e1FiQcyWCwBhKX2rGgN2UICHBF3Q/rsKOspjMw2OlGphTn2KmFl5J7cQxru54A9roClLnHGCiSUYos/iwFHI/dAVXEh0S0KKfTfM6AC6/9bCbsD61QLcRzRIElvgCgaiMWFjOBL99pemoElAHsyzG6uX93fMfas09N9YzA0/rFAKAsNDOcFbQlEHKiDT7mI20tVoCcmSIhJAQ==</X509Certificate><X509Certificate>MIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzQ==</X509Certificate><X509Certificate>MIIF7TCCA9WgAwIBAgIQP4vItfyfspZDtWnWbELhRDANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwMzIyMjIwNTI4WhcNMzYwMzIyMjIxMzA0WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCygEGqNThNE3IyaCJNuLLx/9VSvGzH9dJKjDbu0cJcfoyKrq8TKG/Ac+M6ztAlqFo6be+ouFmrEyNozQwph9FvgFyPRH9dkAFSWKxRxV8qh9zc2AodwQO5e7BW6KPeZGHCnvjzfLnsDbVU/ky2ZU+I8JxImQxCCwl8MVkXeQZ4KI2JOkwDJb5xalwL54RgpJki49KvhKSn+9GY7Qyp3pSJ4Q6g3MDOmT3qCFK7VnnkH4S6Hri0xElcTzFLh93dBWcmmYDgcRGjuKVB4qRTufcyKYMME782XgSzS0NHL2vikR7TmE/dQgfI6B0S/Jmpaz6SfsjWaTr8ZL22CZ3K/QwLopt3YEsDlKQwaRLWQi3BQUzK3Kr9j1uDRprZ/LHR47PJf0h6zSTwQY9cdNCssBAgBkm3xy0hyFfj0IbzA2j70M5xwYmZSmQBbP3sMJHPQTySx+W6hh1hhMdfgzlirrSSL0fzC/hV66AfWdC7dJse0Hbm8ukG1xDo+mTeacY1logC8Ea4PyeZb8txiSk190gWAjWP1Xl8TQLPX+uKg09FcYj5qQ1OcunCnAfPSRtOBA5jUYxe2ADBVSy2xuDCZU7JNDn1nLPEfuhhbhNfFcRf2X7tHc7uROzLLoax7Dj2cO2rXBPB2Q8Nx4CyVe0096yb5MPa50c8prWPMd/FS6/r8QIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUci06AjGQQ7kUBU7h6qfHMdEjiTQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIBAH9yzw+3xRXbm8BJyiZb/p4T5tPw0tuXX/JLP02zrhmu7deXoKzvqTqjwkGw5biRnhOBJAPmCf0/V0A5ISRW0RAvS0CpNoZLtFNXmvvxfomPEf4YbFGq6O0JlbXlccmh6Yd1phV/yX43VF50k8XDZ8wNT2uoFwxtCJJ+i92Bqi1wIcM9BhS7vyRep4TXPw8hIr1LAAbblxzYXtTFC1yHblCk6MM4pPvLLMWSZpuFXst6bJN8gClYW1e1QGm6CHmmZGIVnYeWRbVmIyADixxzoNOieTPgUFmG2y/lAiXqcyqfABTINseSO+lOAOzYVgm5M0kS0lQLAausR7aRKX1MtHWAUgHoyoL2n8ysnI8X6i8msKtyrAv+nlEex0NVZ09Rs1fWtuzuUrc66U7h14GIvE+OdbtLqPA1qibUZ2dJsnBMO5PcHd94kIZysjik0dySTclY6ysSXNQ7roxrsIPlAT/4CTL2kzU0Iq/dNw13CYArzUgA8YyZGUcFAenRv9FO0OYoQzeZpApKCNmacXPSqs0xE2N2oTdvkjgefRI8ZjLny23h/FKJ3crWZgWalmG+oijHHKOnNlA8OqTfSm7mhzvO6/DggTedEzxSjr25HTTGHdUKaj2YKXCMiSrRq4IQSB/c9O+lxbtVGjhjhE63bK2VVOxlIhBJF7jAHscPrFRH</X509Certificate></X509Data></KeyInfo><Object Id="ts-countersig"><X509Data><X509Certificate>MIIHJzCCBQ+gAwIBAgITMwAAAd6eSJ6WnyhEPQABAAAB3jANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEwMTIxOTA3MTJaFw0yNTAxMTAxOTA3MTJaMIHSMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjJBRDQtNEI5Mi1GQTAxMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtIH0HIX1QgOEDrEWs6eLD/GwOXyxKL2s4I5dJI7hUxCOc0YCjlUfHSKKMwQwf0tjZJQgGRVBLQyXqRH5NqCRQ9toSnCOFDWamuFGAlP+OVKeJzjZUMCjR6fgkjrGdegChagrJJjz9E4gp2mmGAjs4lvhceTU/exfak1nfYsNjWS1yErX+FbI+VuVpcAdG7QTfKe/CtLz9tyisA07oOO7KzJL3NSav7DcfcAS9KCzZF64uPamQFx9bVQ8IW50t3sg9nZELih1BwQ+djXaPKlg+dLrJkCzSkumrQpEVTIHXHrHo5Tvey52Ic43XqYTSXostP06YajRL3gHGDc3/doTp9RudWh6ZVzsWQUu6bwqRlxtDtw4dIBYYnF0K+jk61S1F1Kp/zkWSUJcgiSDiybucz1OS1RV87SSnqTHubKyAPRCvHHr/mhqqfA5NYs3Mr4EKLUbudQPWm165e9Cnx8TUqlOOcb/U4l56HAo00+Ma33xXQGaiBlN7dLEGQ545DIsD77kfKD8vryl74Otmhk9cloZT+IGIWYv66X86Ld3zfMsAeUdCYf9UY0F9HA/6LG+qHKT8R5vC5dUlj6tPJ9tF+6H2fQBoyGE3HGDq0YrJlLgQASIPGsX2YBkTLx7yt/p2Uohfl3dpAuj18N1rVlM7D5cBwC+Pb83cMtUZmUeceUCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBRrMCZvGx5pqmB3HMrw6z6do9ASyDAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA4pTAexcNpwY69QiCzkcOA+zQtnWrIdLoLrB8qUtoPfq1l9ta3XH4YyJrNK7L4azGJUfOSExb4WoryCu4tBY3+w4Jf58ZSBP0tPbVxEilxmPj9kUi/C2QFywLPVcRSxdg5IlQ+K1jsTxtuV2aaFhnb2n5dCkhywb+r5iOSoFb2bDSu7Ux/ExNCz0xMOIPbyABUas8Dc3KSJIKG92pLtVf78twTP1RvO2j/DbxYDwc4IeoFNsNEeaI/swiP5JCYj1UhrJiwgZGO96WY1rQ69tT0IlLP818wSB/Y0cxlRhbwqpYSMiM98cgrFaU0xiG5Z9ZFIdkIrIgA0DRokviygdC3PNnYyc1+NhjznXAdiMaDBSP+GUtGBA7lLfRnHvwaoEp/KWnblo5Yn+o+EL4NczaBdqMhduX6OkZxUA3C0UW6MIlF1lt4fVH5DjUWOAGDibc5MUMai3kNK5WRCCOS7uk5U+2V0TjpCUOD/ZaE+lNDFcfriw/UZ+QDBS23qutkz88LBEbqCKtiadNEsuyJwGGhguH4QQWNW+JcAZOTqme7yPH/hY9a7SOzPvIXODzb8UyoKT3Arcu/IsDIMc34XFscDG2DBp3ugtA8zRYYRF0HW6Y8IiJixJ/+Pv0Sod2g3BBhE5Wb5lfXRFfefptGYCeyR42GLTCdVp5WiAsx0YP6eo=</X509Certificate><X509Certificate>MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8g==</X509Certificate></X509Data><CounterSignature ts-format="cms-timestamp-message" xmlns="http://schemas.microsoft.com/xmldsig/timestamp/2003">MIAGCSqGSIb3DQEHAqCAMIIW/gIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBWQYLKoZIhvcNAQkQAQSgggFIBIIBRDCCAUACAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQgYIs6Gh+vULnWHajKCGCMicOyLz+mKZ4Vt772yNdvuSYCBmWug8wdORgTMjAyNDAxMjUxODQwMDguNTQ5WjAEgAIB9KCB2KSB1TCB0jELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoyQUQ0LTRCOTItRkEwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEXgwggcnMIIFD6ADAgECAhMzAAAB3p5InpafKEQ9AAEAAAHeMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTAxMjE5MDcxMloXDTI1MDExMDE5MDcxMlowgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MkFENC00QjkyLUZBMDExJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC0gfQchfVCA4QOsRazp4sP8bA5fLEovazgjl0kjuFTEI5zRgKOVR8dIoozBDB/S2NklCAZFUEtDJepEfk2oJFD22hKcI4UNZqa4UYCU/45Up4nONlQwKNHp+CSOsZ16AKFqCskmPP0TiCnaaYYCOziW+Fx5NT97F9qTWd9iw2NZLXIStf4Vsj5W5WlwB0btBN8p78K0vP23KKwDTug47srMkvc1Jq/sNx9wBL0oLNkXri49qZAXH1tVDwhbnS3eyD2dkQuKHUHBD52Ndo8qWD50usmQLNKS6atCkRVMgdcesejlO97LnYhzjdephNJeiy0/TphqNEveAcYNzf92hOn1G51aHplXOxZBS7pvCpGXG0O3Dh0gFhicXQr6OTrVLUXUqn/ORZJQlyCJIOLJu5zPU5LVFXztJKepMe5srIA9EK8cev+aGqp8Dk1izcyvgQotRu51A9abXrl70KfHxNSqU45xv9TiXnocCjTT4xrffFdAZqIGU3t0sQZDnjkMiwPvuR8oPy+vKXvg62aGT1yWhlP4gYhZi/rpfzot3fN8ywB5R0Jh/1RjQX0cD/osb6ocpPxHm8Ll1SWPq08n20X7ofZ9AGjIYTccYOrRismUuBABIg8axfZgGRMvHvK3+nZSiF+Xd2kC6PXw3WtWUzsPlwHAL49vzdwy1RmZR5x5QIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFGswJm8bHmmqYHccyvDrPp2j0BLIMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDilMB7Fw2nBjr1CILORw4D7NC2dash0ugusHypS2g9+rWX21rdcfhjIms0rsvhrMYlR85ITFvhaivIK7i0Fjf7Dgl/nxlIE/S09tXESKXGY+P2RSL8LZAXLAs9VxFLF2DkiVD4rWOxPG25XZpoWGdvafl0KSHLBv6vmI5KgVvZsNK7tTH8TE0LPTEw4g9vIAFRqzwNzcpIkgob3aku1V/vy3BM/VG87aP8NvFgPBzgh6gU2w0R5oj+zCI/kkJiPVSGsmLCBkY73pZjWtDr21PQiUs/zXzBIH9jRzGVGFvCqlhIyIz3xyCsVpTTGIbln1kUh2QisiADQNGiS+LKB0Lc82djJzX42GPOdcB2IxoMFI/4ZS0YEDuUt9Gce/BqgSn8paduWjlif6j4Qvg1zNoF2oyF25fo6RnFQDcLRRbowiUXWW3h9UfkONRY4AYOJtzkxQxqLeQ0rlZEII5Lu6TlT7ZXROOkJQ4P9loT6U0MVx+uLD9Rn5AMFLbeq62TPzwsERuoIq2Jp00Sy7InAYaGC4fhBBY1b4lwBk5OqZ7vI8f+Fj1rtI7M+8hc4PNvxTKgpPcCty78iwMgxzfhcWxwMbYMGne6C0DzNFhhEXQdbpjwiImLEn/4+/RKh3aDcEGETlZvmV9dEV95+m0ZgJ7JHjYYtMJ1WnlaICzHRg/p6jCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggLUMIICPQIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MkFENC00QjkyLUZBMDExJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAGigUorMuMvOqZfF8ttgiWRMRNrzoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDpXPX5MCIYDzIwMjQwMTI1MjMwMDA5WhgPMjAyNDAxMjYyMzAwMDlaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAOlc9fkCAQAwBwIBAAICAtAwBwIBAAICES4wCgIFAOleR3kCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQBqU8riP2JmS9H5oqIBMIK7K4yJoVmIXEBW1D6o8CDeDpnl3rufqwpKkt278xLZlN1+G70lDvsEQKlmFLAdDhIKdUIb6bM51Ox441FDtphxzFMv4ERW+VOpddMniptc7pUNVbYm18mVZxPhxKaqn2qUUbMPXqJk03k/ObTh6JiegjGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB3p5InpafKEQ9AAEAAAHeMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIN+MWwsKUOfKZ3YZLnC/rsYXMgnUQJkVkle70xDQQ3xEMIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgjj4jnw3BXhAQSQJ/5gtzIK0+cP1Ns/NS2A+OB3N+HXswgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAd6eSJ6WnyhEPQABAAAB3jAiBCBS8WyS0JlL+ySsEpyWRCeHRgVjyhAInLxAVyQM8NoUzTANBgkqhkiG9w0BAQsFAASCAgBfCBJCtweeskiFjx9E6rnVjXSl2iqNIk1DOd+fYpipnii09cgCA3/DSNrojgwRNik7mvlWD5OVgURWMl19UvIqHUYW30atAkTUJvOKPn9UgRFmCArsDcAmEzTdpHFC2b67ibReSdjX9W1XalKY72Lk4G9afmjGbjaF/lUqgaaE/pEFaiy90cd97VfjrCqjRDT1Yf3QdS1GHGwr5WS6x0LwGVGaB1RnsNj/l/BNkn3zsLxzK9J7lKdzO+lPDMMSCUsGt2mgeUqPg4tWUuUfukPfyqkYj2lIVP/Ynb8aIqDQrNfx2BNr/XY4i6THpRC6DMpBiEQ/5eNigI/ZkYv6RV4fpVj61XeK7hvmGuAJGJm7q3oObxKvEkIdaGxOA07h2S0b9rTVKM6ax3lh6CRg98mcDxyPqSrrfqLhWaz/y2LgHsrvf6nGW+p+f6oMAly3gI9RY6S9m5JJEZCOdzPpZ+ft0UO+rmz0VdqwWErofEqrWvt3x6SIErgEvmI+LQJW0tTgl5eeL6Mxqc2VIezLzbPPNx8+5Yhjw3HpGE23nZxK6u0qCI9fSNGJg/sWO9Gkt8i7VQx2m5FPUAfdnip77fwX7Kf3vUt1/SqqR2f8x99fthap5iai/KQPXHmFiDifDVi3jg4h5Q2L/0gzLBdBKiad/IWO42gwUh4fqPvfiFISPAAAAAA=</CounterSignature></Object></Signature></doc>