From ef7ab9320ebbaf7a5f0b1d10d1afe7d6586e2503 Mon Sep 17 00:00:00 2001 From: Taojunshen Date: Thu, 28 Apr 2022 01:41:54 +0800 Subject: [PATCH 1/2] 4/27/2022 AM Publish (#4250) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * correction regarding CStringA * Update open-wopen.md Clarify that _O_TEMPORARY sets FILE_SHARE_DELETE. * Update other pages that mention _O_TEMPORARY effects. * New article - IDL method wizard * update after review * update after review * Update after review * Update after review * Updating - Add property wizard for VS2022 * Updating broken links * Update after review * New article - Add an IDL Property * link updation * Update after review * update after review * update after review * New article - IDL MFC property wizard * Broken link fixed * Broken link fixed * Update virtual-functions.md * update for links * Updating links * Address cpp-docs 3780 3782 3790 3791 3805 * Attempt correction of table format * Add documentation for compiler error C2956 and update error text (#4176) * Add documentation for compiler error C2956 and update error text * Add TOC entry * Update for grammar and my own comprehension. Sometimes, you just get carried away. This version could use some simplification. * Simplify. Address remarks, attempt simplification. Acrolinx all the things. * More updates per review Co-authored-by: Colin Robertson * Address cpp-docs 3816 * Address non-blocking issues from 4207 * fix for sample program. * edits * edit pass. Move to ide location * minor edit * fix link * Final update * final update * final update * resolving blocking issue * resolving blocking issue * ToC update for new article * ToC update * link update * Correct inconsistent formatting for the `_O_EXCL` constant in the docs for the open functions * Update c28195.md * Update in alt-text * Update in alt-text * Final Update- See also section * edit pass * edit pass * more cleanup * typo * small edit * Final update * edit pass * edit pass * formatting for scannability * acrolinx * one more try at spacing * final update * VMCS -> VMXON According to the intel IA32 development manual (Volume 3 C3 23.7): "Before executing VMXON, software should allocate a naturally aligned 4-KByte region of memory that a logical processor may use to support VMX operation. This region is called the VMXON region." * edit and add links * fix links * add code example * click->tick * Update date, link to Intel docs * Another go at updating the description * Fix stray double-quote * Address issue in DD PR 1393452 * add /interface and /internal-partition - draft (#4227) * add /interface and /internal-partition - draft * add example * fix formatting * update text regarding example * tech review * link updates * fix switch name and link * edits * reorder version info * cleanup * add /tp flag * fix command line Co-authored-by: TylerMSFT * Update os-ot-favor-small-code-favor-fast-code.md Change "minimize or maximize size" to "minimize size or maximize speed" * Expand into a whole SEO-friendly sentence * Clarify when _matherr will be invoked (#4230) Customer here https://developercommunity.visualstudio.com/t/_matherr-example-does-not-work-for-me/1676341#T-ND10016474 expressed confusion over when _matherr is called. This change points out that the only setting that will enable/disable this is the presence of _matherr, but it will not be triggered when using intrinsics. * acrolinx and other fixes * fix typo * more code escape * another code escape * better formatting for retval possibilities * fix backslashes * incorp feedback * SEO work * acrolinx * SEO work (#4234) * SEO work * acrolinx Co-authored-by: TylerMSFT * SEO work * incorp feedback * better link description * incorp review feedback * fix location of graphic * fix github issue#3845 * acrolinx * Twhitney seo (#4239) * seo adjustments * update toc * fix links * acrolinx pass * incorp feedback Co-authored-by: TylerMSFT * add info about converting narrow and wide strings * fix link * fix another link * Fixes for F1 issues in DD 1524526 * minor cleanup * Minimal acrolinx fixes * acrolinx * minor cleanup * acrolinx * going for 100% acrolinx * incorp feedback * make instructions for control panel slightly better * Edits to improve SEO and usability (#4246) * Article clean-up * Set date. * Update docs/build-insights/reference/sdk/c-event-data-types/event-data-struct.md Co-authored-by: Shannon Leavitt Co-authored-by: TylerMSFT Co-authored-by: Steve Wishnousky Co-authored-by: rachana-satao <83084319+rachana-satao@users.noreply.github.com> Co-authored-by: opbld15 Co-authored-by: Colin Robertson Co-authored-by: opbld16 Co-authored-by: opbld17 Co-authored-by: atikmapari <31974726+atikmapari@users.noreply.github.com> Co-authored-by: PRMerger19 Co-authored-by: Ming Ho <94572161+homing1@users.noreply.github.com> Co-authored-by: PRMerger5 Co-authored-by: Regan Downer <97987445+v-regandowner@users.noreply.github.com> Co-authored-by: Jonathan Emmett Co-authored-by: Tamara K <93546702+tamarakhader@users.noreply.github.com> Co-authored-by: PRMerger17 Co-authored-by: Paula Miller Co-authored-by: Martin Storsjö Co-authored-by: Sunny Chatterjee Co-authored-by: Tyler Whitney Co-authored-by: Colin Cooper <72402153+v-ccolin@users.noreply.github.com> Co-authored-by: krispy Co-authored-by: PRMerger8 Co-authored-by: PRMerger10 Co-authored-by: Tech Stuff <103606018+teknixstuff@users.noreply.github.com> Co-authored-by: Dennis Rea Co-authored-by: Anna Huff <92125952+AnnaMHuff@users.noreply.github.com> Co-authored-by: PRMerger13 Co-authored-by: PRMerger7 Co-authored-by: PRMerger Service account 2 Co-authored-by: Tim Sherer <28902327+TimShererWithAquent@users.noreply.github.com> Co-authored-by: Shannon Leavitt --- .../c-event-data-types/event-data-struct.md | 34 +++++++++++-------- .../sdk/cpp-event-data-types/function.md | 14 ++++---- .../sdk/cpp-event-data-types/pass1.md | 12 ++++--- .../functions/make-static-analyzer-group.md | 16 +++++---- .../sdk/functions/stop-tracing-session.md | 16 +++++---- 5 files changed, 55 insertions(+), 37 deletions(-) diff --git a/docs/build-insights/reference/sdk/c-event-data-types/event-data-struct.md b/docs/build-insights/reference/sdk/c-event-data-types/event-data-struct.md index 3de2bb74579..734b4680582 100644 --- a/docs/build-insights/reference/sdk/c-event-data-types/event-data-struct.md +++ b/docs/build-insights/reference/sdk/c-event-data-types/event-data-struct.md @@ -1,7 +1,9 @@ --- -title: "EVENT_DATA structure" -description: "The C++ Build Insights SDK EVENT_DATA structure reference." -ms.date: "02/12/2020" +title: "C++ Build Insights SDK EVENT_DATA structure" +description: "The C++ Build Insights SDK EVENT_DATA structure reference. The EVENT_DATA structure describes an event received from an analysis or relogging session." +ms.date: "04/27/2022" +ms.topic: language-reference +ms.custom: kr2b-contr-experiment helpviewer_keywords: ["C++ Build Insights", "C++ Build Insights SDK", "EVENT_DATA", "throughput analysis", "build time analysis", "vcperf.exe"] --- # EVENT_DATA structure @@ -13,7 +15,7 @@ The C++ Build Insights SDK is compatible with Visual Studio 2017 and later. To s ::: moniker-end ::: moniker range=">=msvc-150" -The `EVENT_DATA` structure describes an event received from an analysis or relogging session. These sessions are started by calling the [Analyze](../functions/analyze.md), [AnalyzeA](../functions/analyze-a.md), [AnalyzeW](../functions/analyze-w.md), [Relog](../functions/relog.md), [RelogA](../functions/relog-a.md), or [RelogW](../functions/relog-w.md) functions. +The `EVENT_DATA` structure describes an event from an analysis or relogging session. The [Analyze](../functions/analyze.md), [AnalyzeA](../functions/analyze-a.md), [AnalyzeW](../functions/analyze-w.md), [Relog](../functions/relog.md), [RelogA](../functions/relog-a.md), or [RelogW](../functions/relog-w.md) functions start these sessions. ## Syntax @@ -51,14 +53,14 @@ typedef struct EVENT_DATA_TAG | `EventId` | A number that identifies the event. For a list of event identifiers, see [EVENT_ID](event-id-enum.md). | | `EventInstanceId` | A number that uniquely identifies the current event inside a trace. This value doesn't change when analyzing or relogging the same trace multiple times. Use this field to identify the same event in multiple analysis or relogging passes over the same trace. | | `TickFrequency` | The number of ticks per second to use when evaluating a duration measured in ticks. | -| `StartTimestamp` | When the event is an *Activity*, this field is set to a tick value captured at the time the activity started. If this event is a *Simple Event*, this field is set to a tick value captured at the time the event occurred. | -| `StopTimestamp` | When the event is an *Activity*, this field is set to a tick value captured at the time the activity stopped. If the stop event hasn't yet been received for this activity, this field is set to zero. If this event is a *Simple Event*, this field is set to zero. | -| `ExclusiveDurationTicks` | If this event is an *Activity*, this field is set to the number of ticks that occurred directly in this activity. The number of ticks that occurred in a child activity are excluded. This field is set to zero for *Simple Events*. | -| `CPUTicks` | If this event is an *Activity*, this field is set to the number of CPU ticks that occurred during this activity. A CPU tick is different from a regular tick. CPU ticks are only counted when the CPU is executing code in an activity. CPU ticks aren't counted when the thread associated with the activity is sleeping. This field is set to zero for *Simple Events*. | -| `ExclusiveCPUTicks` | This field has the same meaning as `CPUTicks`, except that it doesn't include CPU ticks that occurred in children activities. This field is set to zero for *Simple Events*. | -| `WallClockTimeResponsibilityTicks` | If this event is an *Activity*, this field is set to a tick count that represents this activity's contribution to overall wall-clock time. A wall-clock time responsibility tick is different from a regular tick. Wall-clock time responsibility ticks take into account parallelism between activities. For example, two parallel activities may have a duration of 50 ticks and the same start and stop time. In this case, both will be assigned a wall-clock time responsibility of 25 ticks. This field is set to zero for *Simple Events*. | -| `ExclusiveWallClockTimeResponsibilityTicks` | This field has the same meaning as `WallClockTimeResponsibilityTicks`, except that it doesn't include the wall-clock time responsibility ticks of children activities. This field is set to zero for *Simple Events*. | -| `Data` | Points to additional data stored in the event. The type of data pointed to is different, depending on the `EventId` field. | +| `StartTimestamp` | When the event is an *Activity*, this field is the tick value captured at the time the activity started. If this event is a *Simple Event*, this field is a tick value captured at the time the event occurred. | +| `StopTimestamp` | When the event is an *Activity*, this field is the tick value captured at the time the activity stopped. If the stop event hasn't yet been received for this activity, this field is zero. If this event is a *Simple Event*, this field is zero. | +| `ExclusiveDurationTicks` | If this event is an *Activity*, this field is the number of ticks that occurred directly in this activity. The number of ticks that occurred in a child activity are excluded. This field is zero for *Simple Events*. | +| `CPUTicks` | If this event is an *Activity*, this field is the number of CPU ticks that occurred during this activity. A CPU tick is different from a regular tick. CPU ticks are only counted when the CPU is executing code in an activity. CPU ticks aren't counted when the thread associated with the activity is sleeping. This field is zero for *Simple Events*. | +| `ExclusiveCPUTicks` | This field has the same meaning as `CPUTicks`, except that it doesn't include CPU ticks that occurred in children activities. This field is zero for *Simple Events*. | +| `WallClockTimeResponsibilityTicks` | If this event is an *Activity*, this field is a tick count that represents this activity's contribution to overall wall-clock time. A wall-clock time responsibility tick is different from a regular tick. Wall-clock time responsibility ticks take into account parallelism between activities. For example, two parallel activities may have a duration of 50 ticks and the same start and stop time. In this case, both will be assigned a wall-clock time responsibility of 25 ticks. This field is zero for *Simple Events*. | +| `ExclusiveWallClockTimeResponsibilityTicks` | This field has the same meaning as `WallClockTimeResponsibilityTicks`, except that it doesn't include the wall-clock time responsibility ticks of children activities. This field is zero for *Simple Events*. | +| `Data` | Points to other data stored in the event. The type of data pointed to is different, depending on the `EventId` field. | | `ProcessId` | The identifier for the process in which the event occurred. | | `ThreadId` | The identifier for the thread in which the event occurred. | | `ProcessorIndex` | The zero-indexed CPU number on which the event occurred. | @@ -67,9 +69,13 @@ typedef struct EVENT_DATA_TAG ## Remarks -Many fields in `EVENT_DATA` contain tick counts. C++ Build Insights uses Window's performance counter as a source of ticks. A tick count must be used with the `TickFrequency` field to convert it into an appropriate time unit such as seconds. See the example below for performing this conversion. `EVENT_DATA` doesn't contain a field for the regular tick count of an activity. To obtain this value, subtract `StartTimestamp` from `StopTimestamp`. `EVENT_DATA` is a structure that's meant to be used by C API users. For C++ API users, classes like [Event](../cpp-event-data-types/event.md) do time conversions automatically. +Many fields in `EVENT_DATA` contain tick counts. C++ Build Insights uses the Windows performance counter as a source of ticks. A tick count must be used with the `TickFrequency` field to convert it into an appropriate time unit such as seconds. See the [tick conversion example](#tick-conversion-example), below. -The value of the `EVENT_DATA` `Data` field depends on the value of its `EventId` field. The value of `Data` is described in the table below. Some entity identifiers may be missing from the table below. In this case, the `Data` field is set to **`nullptr`** or zero. +`EVENT_DATA` doesn't contain a field for the regular tick count of an activity. To obtain this value, subtract `StartTimestamp` from `StopTimestamp`. + +`EVENT_DATA` is a structure that's meant to be used by C API users. For C++ API users, classes like [Event](../cpp-event-data-types/event.md) do time conversions automatically. + +The value of the `EVENT_DATA` `Data` field depends on the value of its `EventId` field. The value of `Data` is described in the table below. Some entity identifiers may be missing from the table below. In this case, the `Data` field is set to `nullptr` or zero. | `EventId` value | Type pointed to by `Data` | |--|--| diff --git a/docs/build-insights/reference/sdk/cpp-event-data-types/function.md b/docs/build-insights/reference/sdk/cpp-event-data-types/function.md index 8d15a5ce989..bc81e6fbcfb 100644 --- a/docs/build-insights/reference/sdk/cpp-event-data-types/function.md +++ b/docs/build-insights/reference/sdk/cpp-event-data-types/function.md @@ -1,7 +1,9 @@ --- -title: "Function class" -description: "The C++ Build Insights SDK Function class reference." -ms.date: "02/12/2020" +title: "C++ Build Insights SDK Function class" +description: "The C++ Build Insights SDK Function class reference. Use the Function class to match a FUNCTION event." +ms.date: "04/27/2022" +ms.topic: language-reference +ms.custom: kr2b-contr-experiment helpviewer_keywords: ["C++ Build Insights", "C++ Build Insights SDK", "Function", "throughput analysis", "build time analysis", "vcperf.exe"] --- # Function class @@ -29,7 +31,7 @@ public: ## Members -Along with the inherited members from its [Activity](activity.md) base class, the `Function` class contains the following members: +Along with the inherited members from the [Activity](activity.md) base class, the `Function` class contains the following members: ### Constructors @@ -39,7 +41,7 @@ Along with the inherited members from its [Activity](activity.md) base class, th [Name](#name) -## Function +## Function ```cpp Function(const RawEvent& event); @@ -50,7 +52,7 @@ Function(const RawEvent& event); *event*\ A [FUNCTION](../event-table.md#function) event. -## Name +## Name ```cpp const char* Name() const; diff --git a/docs/build-insights/reference/sdk/cpp-event-data-types/pass1.md b/docs/build-insights/reference/sdk/cpp-event-data-types/pass1.md index fc8d17f3cd9..6063aeef27b 100644 --- a/docs/build-insights/reference/sdk/cpp-event-data-types/pass1.md +++ b/docs/build-insights/reference/sdk/cpp-event-data-types/pass1.md @@ -1,7 +1,9 @@ --- -title: "Pass1 class" -description: "The C++ Build Insights SDK Pass1 class reference." -ms.date: "02/12/2020" +title: "C++ Build Insights SDK Pass1 class" +description: "The C++ Build Insights SDK Pass1 class reference. Use the Pass1 class to match a PASS1 event" +ms.date: "04/27/2022" +ms.topic: language-reference +ms.custom: kr2b-contr-experiment helpviewer_keywords: ["C++ Build Insights", "C++ Build Insights SDK", "Pass1", "throughput analysis", "build time analysis", "vcperf.exe"] --- # Pass1 class @@ -27,13 +29,13 @@ public: ## Members -Along with the inherited members from its [LinkerPass](linker-pass.md) base class, the `Pass1` class contains the following members: +Along with the inherited members from the [LinkerPass](linker-pass.md) base class, the `Pass1` class contains the following members: ### Constructors [Pass1](#pass1) -## Pass1 +## Pass1 ```cpp Pass1(const RawEvent& event); diff --git a/docs/build-insights/reference/sdk/functions/make-static-analyzer-group.md b/docs/build-insights/reference/sdk/functions/make-static-analyzer-group.md index 49afc727187..e6aac877107 100644 --- a/docs/build-insights/reference/sdk/functions/make-static-analyzer-group.md +++ b/docs/build-insights/reference/sdk/functions/make-static-analyzer-group.md @@ -1,7 +1,9 @@ --- -title: "MakeStaticAnalyzerGroup" -description: "The C++ Build Insights SDK MakeStaticAnalyzerGroup function reference." -ms.date: "02/12/2020" +title: "C++ Build Insights SDK MakeStaticAnalyzerGroup" +description: "The C++ Build Insights SDK MakeStaticAnalyzerGroup function reference. Use this function to create a static analyzer group for functions like Analyze or Relog." +ms.date: "04/27/2022" +ms.topic: language-reference +ms.custom: kr2b-contr-experiment helpviewer_keywords: ["C++ Build Insights", "C++ Build Insights SDK", "MakeStaticAnalyzerGroup", "throughput analysis", "build time analysis", "vcperf.exe"] --- # MakeStaticAnalyzerGroup @@ -13,7 +15,7 @@ The C++ Build Insights SDK is compatible with Visual Studio 2017 and later. To s ::: moniker-end ::: moniker range=">=msvc-150" -The `MakeStaticAnalyzerGroup` function is used to create a static analyzer group that can be passed to functions such as [`Analyze`](analyze.md) or [`Relog`](relog.md). Members of an analyzer group receive events one by one from left to right, until all events in a trace get analyzed. +The `MakeStaticAnalyzerGroup` function creates a static analyzer group that you can pass to functions such as [`Analyze`](analyze.md) or [`Relog`](relog.md). Members of an analyzer group receive events one by one from left to right, until all events in a trace are analyzed. ## Syntax @@ -32,10 +34,12 @@ A parameter pack of [`IAnalyzer`](../other-types/ianalyzer-class.md) pointers in ### Return Value -A static analyzer group. Use the **`auto`** keyword to capture the return value. +A static analyzer group. Use the `auto` keyword to capture the return value. ## Remarks -Unlike dynamic analyzer groups, the members of a static analyzer group must be known at compile time. Additionally, a static analyzer group contains [`IAnalyzer`](../other-types/ianalyzer-class.md) pointers that don't have polymorphic behavior. When using a static analyzer group to analyze an Event Tracing for Windows (ETW) trace, calls to the `IAnalyzer` interface always resolve to the object directly pointed to by the analyzer group member. This loss of flexibility comes with a possibility of faster event processing times. If the members of an analyzer group can't be known at compile time, or if you require polymorphic behavior on your `IAnalyzer` pointers, consider using a dynamic analyzer group. To use a dynamic analyzer group, call [`MakeDynamicAnalyzerGroup`](make-static-analyzer-group.md) instead. +Unlike dynamic analyzer groups, the members of a static analyzer group must be known at compile time. Also, a static analyzer group contains [`IAnalyzer`](../other-types/ianalyzer-class.md) pointers that don't have polymorphic behavior. When a static analyzer group analyzes an Event Tracing for Windows (ETW) trace, calls to the `IAnalyzer` interface always resolve to the object directly pointed to by the analyzer group member. This loss of flexibility comes with a possibility of faster event processing. + +If the members of an analyzer group can't be known at compile time, or if you require polymorphic behavior on your `IAnalyzer` pointers, consider using a dynamic analyzer group. To use a dynamic analyzer group, call [`MakeDynamicAnalyzerGroup`](make-static-analyzer-group.md) instead. ::: moniker-end diff --git a/docs/build-insights/reference/sdk/functions/stop-tracing-session.md b/docs/build-insights/reference/sdk/functions/stop-tracing-session.md index 1aa039019e9..ca9bea6c23f 100644 --- a/docs/build-insights/reference/sdk/functions/stop-tracing-session.md +++ b/docs/build-insights/reference/sdk/functions/stop-tracing-session.md @@ -1,7 +1,9 @@ --- -title: "StopTracingSession" -description: "The C++ Build Insights SDK StopTracingSession function reference." -ms.date: "02/12/2020" +title: "C++ Build Insights SDK StopTracingSession" +description: "The C++ Build Insights SDK StopTracingSession function reference. StopTracingSession stops an ongoing tracing session and produces a raw trace file." +ms.date: "04/27/2022" +ms.topic: language-reference +ms.custom: kr2b-contr-experiment helpviewer_keywords: ["C++ Build Insights", "C++ Build Insights SDK", "StopTracingSession", "throughput analysis", "build time analysis", "vcperf.exe"] --- # StopTracingSession @@ -13,7 +15,9 @@ The C++ Build Insights SDK is compatible with Visual Studio 2017 and later. To s ::: moniker-end ::: moniker range=">=msvc-150" -The `StopTracingSession` function stops an ongoing tracing session and produces a raw trace file. Raw trace files can be passed to the [Analyze](analyze.md), [AnalzeA](analyze-a.md), and [AnalyzeW](analyze-w.md) functions to start an analysis session. Raw trace files can also be passed to the [Relog](relog.md), [RelogA](relog-a.md), and [RelogW](relog-w.md) functions to start a relogging session. Executables calling `StopTracingSession` must have administrator privileges. +The `StopTracingSession` function stops an ongoing tracing session and produces a raw trace file. You can pass raw trace files to the [Analyze](analyze.md), [AnalzeA](analyze-a.md), and [AnalyzeW](analyze-w.md) functions to start an analysis session. You can pass raw trace files to the [Relog](relog.md), [RelogA](relog-a.md), and [RelogW](relog-w.md) functions to start a relogging session. + +The caller must have administrator permissions to use `StopTracingSession`. ## Syntax @@ -32,10 +36,10 @@ inline RESULT_CODE StopTracingSession( ### Parameters *sessionName*\ -The name of the tracing session to stop. Use the same session name as the one passed to [StartTracingSession](start-tracing-session.md), [StartTracingSessionA](start-tracing-session-a.md), or [StartTracingSessionW](start-tracing-session-w.md). +The name of the tracing session to stop. Use the same session name as used for [StartTracingSession](start-tracing-session.md), [StartTracingSessionA](start-tracing-session-a.md), or [StartTracingSessionW](start-tracing-session-w.md). *outputLogFile*\ -Path to the final output log file where the raw trace should be saved. +Full path of the final output log file to save the raw trace. *statistics*\ Pointer to a [TRACING_SESSION_STATISTICS](../other-types/tracing-session-statistics-struct.md) object. `StopTracingSession` writes trace collection statistics in this object before returning. From d7453a4f5bec17d8916111039fdf765adbd10d55 Mon Sep 17 00:00:00 2001 From: Taojunshen Date: Fri, 29 Apr 2022 01:34:49 +0800 Subject: [PATCH 2/2] 4/28/2022 AM Publish (#4251) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * correction regarding CStringA * Update open-wopen.md Clarify that _O_TEMPORARY sets FILE_SHARE_DELETE. * Update other pages that mention _O_TEMPORARY effects. * New article - IDL method wizard * update after review * update after review * Update after review * Update after review * Updating - Add property wizard for VS2022 * Updating broken links * Update after review * New article - Add an IDL Property * link updation * Update after review * update after review * update after review * New article - IDL MFC property wizard * Broken link fixed * Broken link fixed * Update virtual-functions.md * update for links * Updating links * Address cpp-docs 3780 3782 3790 3791 3805 * Attempt correction of table format * Add documentation for compiler error C2956 and update error text (#4176) * Add documentation for compiler error C2956 and update error text * Add TOC entry * Update for grammar and my own comprehension. Sometimes, you just get carried away. This version could use some simplification. * Simplify. Address remarks, attempt simplification. Acrolinx all the things. * More updates per review Co-authored-by: Colin Robertson * Address cpp-docs 3816 * Address non-blocking issues from 4207 * fix for sample program. * edits * edit pass. Move to ide location * minor edit * fix link * Final update * final update * final update * resolving blocking issue * resolving blocking issue * ToC update for new article * ToC update * link update * Correct inconsistent formatting for the `_O_EXCL` constant in the docs for the open functions * Update c28195.md * Update in alt-text * Update in alt-text * Final Update- See also section * edit pass * edit pass * more cleanup * typo * small edit * Final update * edit pass * edit pass * formatting for scannability * acrolinx * one more try at spacing * final update * VMCS -> VMXON According to the intel IA32 development manual (Volume 3 C3 23.7): "Before executing VMXON, software should allocate a naturally aligned 4-KByte region of memory that a logical processor may use to support VMX operation. This region is called the VMXON region." * edit and add links * fix links * add code example * click->tick * Update date, link to Intel docs * Another go at updating the description * Fix stray double-quote * Address issue in DD PR 1393452 * add /interface and /internal-partition - draft (#4227) * add /interface and /internal-partition - draft * add example * fix formatting * update text regarding example * tech review * link updates * fix switch name and link * edits * reorder version info * cleanup * add /tp flag * fix command line Co-authored-by: TylerMSFT * Update os-ot-favor-small-code-favor-fast-code.md Change "minimize or maximize size" to "minimize size or maximize speed" * Expand into a whole SEO-friendly sentence * Clarify when _matherr will be invoked (#4230) Customer here https://developercommunity.visualstudio.com/t/_matherr-example-does-not-work-for-me/1676341#T-ND10016474 expressed confusion over when _matherr is called. This change points out that the only setting that will enable/disable this is the presence of _matherr, but it will not be triggered when using intrinsics. * acrolinx and other fixes * fix typo * more code escape * another code escape * better formatting for retval possibilities * fix backslashes * incorp feedback * SEO work * acrolinx * SEO work (#4234) * SEO work * acrolinx Co-authored-by: TylerMSFT * SEO work * incorp feedback * better link description * incorp review feedback * fix location of graphic * fix github issue#3845 * acrolinx * Twhitney seo (#4239) * seo adjustments * update toc * fix links * acrolinx pass * incorp feedback Co-authored-by: TylerMSFT * add info about converting narrow and wide strings * fix link * fix another link * Fixes for F1 issues in DD 1524526 * minor cleanup * Minimal acrolinx fixes * acrolinx * minor cleanup * acrolinx * going for 100% acrolinx * incorp feedback * make instructions for control panel slightly better * Edits to improve SEO and usability (#4246) * Article clean-up * Set date. * Update docs/build-insights/reference/sdk/c-event-data-types/event-data-struct.md Co-authored-by: Shannon Leavitt Co-authored-by: TylerMSFT Co-authored-by: Steve Wishnousky Co-authored-by: rachana-satao <83084319+rachana-satao@users.noreply.github.com> Co-authored-by: opbld15 Co-authored-by: Colin Robertson Co-authored-by: opbld16 Co-authored-by: opbld17 Co-authored-by: atikmapari <31974726+atikmapari@users.noreply.github.com> Co-authored-by: PRMerger19 Co-authored-by: Ming Ho <94572161+homing1@users.noreply.github.com> Co-authored-by: PRMerger5 Co-authored-by: Regan Downer <97987445+v-regandowner@users.noreply.github.com> Co-authored-by: Jonathan Emmett Co-authored-by: Tamara K <93546702+tamarakhader@users.noreply.github.com> Co-authored-by: PRMerger17 Co-authored-by: Paula Miller Co-authored-by: Martin Storsjö Co-authored-by: Sunny Chatterjee Co-authored-by: Tyler Whitney Co-authored-by: Colin Cooper <72402153+v-ccolin@users.noreply.github.com> Co-authored-by: krispy Co-authored-by: PRMerger8 Co-authored-by: PRMerger10 Co-authored-by: Tech Stuff <103606018+teknixstuff@users.noreply.github.com> Co-authored-by: Dennis Rea Co-authored-by: Anna Huff <92125952+AnnaMHuff@users.noreply.github.com> Co-authored-by: PRMerger13 Co-authored-by: PRMerger7 Co-authored-by: PRMerger Service account 2 Co-authored-by: Tim Sherer <28902327+TimShererWithAquent@users.noreply.github.com> Co-authored-by: Shannon Leavitt