﻿<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<AxeAssessmentManifest
    xmlns="http://www.microsoft.com/axe/assessment/manifest"
    SchemaVersion="1.1"
    >
  <_locDefinition>
    <_locDefault
        _loc="locNone"
        _locID="strict"
        />
    <_locTag _loc="locData">DisplayName</_locTag>
    <_locTag _loc="locData">Tag</_locTag>
    <_locTag _loc="locData">ToolTip</_locTag>
    <_locTag _loc="locData">Category</_locTag>
    <_locTag _loc="locData">Author</_locTag>
    <_locTag _loc="locData">Copyright</_locTag>
    <_locTag _loc="locData">TestCasename</_locTag>
  </_locDefinition>
  <VersionedId>
    <Guid>{ec65f64e-55b4-4abc-a196-4c30af672924}</Guid>
    <Version>
      <Major>10</Major>
      <Minor>0</Minor>
      <Build>17134</Build>
      <Revision>1</Revision>
    </Version>
  </VersionedId>
  <MinimumAxeVersionRequired>
    <Version>
      <Major>10</Major>
      <Minor>0</Minor>
      <Build>17134</Build>
      <Revision>1</Revision>
    </Version>
  </MinimumAxeVersionRequired>
  <Description>
    <ProgrammaticName>ModernStandbyPerf</ProgrammaticName>
    <DisplayName>Modern Standby Performance</DisplayName>
    <ToolTip>Measures Modern Standby entry and exit latencies.</ToolTip>
  </Description>
  <Properties>
    <IconResource>PowerButtonIcon</IconResource>
    <Author _locID="10">Microsoft Corporation</Author>
    <Copyright _locID="11">© 2013 Microsoft Corporation. All rights reserved.</Copyright>
    <Url>https://go.microsoft.com/fwlink/?LinkID=293840</Url>
    <AuthorUrl>https://go.microsoft.com/fwlink/?LinkID=294051</AuthorUrl>
    <UpdateUrl>https://go.microsoft.com/fwlink/?LinkID=294052</UpdateUrl>
    <ExitValueMeaning>
      <ZeroIsSuccess/>
    </ExitValueMeaning>
    <OnlyForProcessor>
      <X86/>
      <X64/>
      <ARM64/>
    </OnlyForProcessor>
    <VerifyOSVersion>
      <Version>
        <Major>6</Major>
        <Minor>4</Minor>
        <Build>0</Build>
        <Revision>0</Revision>
      </Version>
    </VerifyOSVersion>
    <ConnectedStandbyDisabledBlock/>
    <BasicDisplayBlock/>
    <NoInteractionInfo/>
    <PowerProfileNotBalancedWarn/>
    <DriverVerifierWarn/>
    <ProblemDevicesWarn/>
    <RequiresElevation/>
    <WirelessDisconnectedWarn/>
    <RequiresKitsPolicyInstalledBlock/>
    <SupportsRunningRemote/>
    <EstimatedRunTime>31200000000</EstimatedRunTime>
    <RequiresX86EmulationOnArm/>
  </Properties>
  <PresentationHints>
    <Pages xmlns="http://www.microsoft.com/axe/assessment/manifest">
      <Page>
        <Description>
          <ProgrammaticName>ModernStandby-SubPage</ProgrammaticName>
          <DisplayName>Modern Standby Phases</DisplayName>
          <ToolTip>Details for Modern Standby</ToolTip>
        </Description>
        <TestCaseTable>
          <Description>
            <DisplayName>Modern Standby Details</DisplayName>
            <ToolTip>Details into system activity during Modern Standby</ToolTip>
          </Description>
          <Columns>
            <Column>
              <Metric>Duration_ms</Metric>
              <PageLink>ModernStandby-SubPage</PageLink>
            </Column>
          </Columns>
          <PageLink>ModernStandby-SubPage</PageLink>
        </TestCaseTable>
      </Page>
      <Page>
        <Description>
          <ProgrammaticName>SleepStudySessionSummary-SubPage</ProgrammaticName>
          <DisplayName>Sleep Study Session Summary</DisplayName>
          <ToolTip>Details for SleepStudySessionSummary Event</ToolTip>
        </Description>
        <Groups>
          <Group>
            <Description>
              <DisplayName>Sleep Study Session Summary</DisplayName>
            </Description>
            <Columns>
              <Column>
                <Metric>CSExitLatency</Metric>
              </Column>
              <Column>
                <Metric>SoftwareDrips</Metric>
              </Column>
              <Column>
                <Metric>HardwareDrips</Metric>
              </Column>
              <Column>
                <Metric>SwHwDripsDelta</Metric>
              </Column>
            </Columns>
          </Group>
        </Groups>
      </Page>
    </Pages>
    <Columns>
      <Column>
        <Metric>SessionDuration</Metric>
      </Column>
      <Column>
        <Metric>ModernStandby</Metric>
        <PageLink>ModernStandby-SubPage</PageLink>
      </Column>
      <Column>
        <Metric>SleepStudySessionSummary</Metric>
        <PageLink>SleepStudySessionSummary-SubPage</PageLink>
      </Column>
    </Columns>
  </PresentationHints>
  <MetricDefinitions xmlns="http://www.microsoft.com/axe/assessment/manifest">
    <MetricDefinition>
      <Description>
        <ProgrammaticName>Duration_ms</ProgrammaticName>
        <DisplayName>Duration</DisplayName>
      </Description>
      <Type>
        <Double/>
      </Type>
      <Units>ms</Units>
      <BetterDirection>
        <Lower/>
      </BetterDirection>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Importance>4</Importance>
      <Ordinal>0</Ordinal>
      <DecimalPlaces>0</DecimalPlaces>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>SessionDuration</ProgrammaticName>
        <DisplayName>Session Duration</DisplayName>
      </Description>
      <Type>
        <Double/>
      </Type>
      <Units>ms</Units>
      <BetterDirection>
        <Lower/>
      </BetterDirection>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Importance>4</Importance>
      <Ordinal>0</Ordinal>
      <DecimalPlaces>0</DecimalPlaces>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>ModernStandby</ProgrammaticName>
        <DisplayName>Modern Standby Phases</DisplayName>
      </Description>
      <Type>
        <String/>
      </Type>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>SleepStudySessionSummary</ProgrammaticName>
        <DisplayName>Sleep Study Session Summary</DisplayName>
      </Description>
      <Type>
        <String/>
      </Type>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>CSExitLatency</ProgrammaticName>
        <DisplayName>Exit Latency</DisplayName>
        <ToolTip>Time to exit Modern Standby state</ToolTip>
      </Description>
      <Type>
        <UInt64/>
      </Type>
      <Units>us</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>SoftwareDrips</ProgrammaticName>
        <DisplayName>Software DRIPS</DisplayName>
        <ToolTip>Percentage of time spent in software DRIPS</ToolTip>
      </Description>
      <Type>
        <UInt64/>
      </Type>
      <Units>%</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>HardwareDrips</ProgrammaticName>
        <DisplayName>Hardware DRIPS</DisplayName>
        <ToolTip>Percentage of time spent in hardware DRIPS</ToolTip>
      </Description>
      <Type>
        <UInt64/>
      </Type>
      <Units>%</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>SwHwDripsDelta</ProgrammaticName>
        <DisplayName>DRIPS delta</DisplayName>
        <ToolTip>Delta between software and hardware DRIPS residency</ToolTip>
      </Description>
      <Type>
        <UInt64/>
      </Type>
      <Units>%</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
  </MetricDefinitions>
  <ParameterDefinitions>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>Iterations</ProgrammaticName>
        <DisplayName>Number of Iterations</DisplayName>
        <ToolTip>Specify the number of iterations the assessment should perform. Default value is 3.</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Inclusion>
        <Required/>
      </Inclusion>
      <DefaultValue>3</DefaultValue>
      <BenchmarkValue>3</BenchmarkValue>
      <Constraints>
        <MinimumConstraint>1</MinimumConstraint>
        <MaximumConstraint>20</MaximumConstraint>
      </Constraints>
      <CommandLineFormat>-iterations {0}</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>SleepTimeout</ProgrammaticName>
        <DisplayName>Sleep timeout (sec)</DisplayName>
        <ToolTip>Number of seconds the machine should stay in Modern Standby</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Inclusion>
        <Required/>
      </Inclusion>
      <DefaultValue>900</DefaultValue>
      <BenchmarkValue>900</BenchmarkValue>
      <Constraints>
        <MinimumConstraint>10</MinimumConstraint>
      </Constraints>
      <CommandLineFormat>-sleeptimeout_sec {0}</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>PostDelay</ProgrammaticName>
        <DisplayName>Post-resume delay (sec)</DisplayName>
        <ToolTip>Delay between iterations</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Inclusion>
        <Required/>
      </Inclusion>
      <DefaultValue>120</DefaultValue>
      <BenchmarkValue>120</BenchmarkValue>
      <Constraints>
        <MinimumConstraint>0</MinimumConstraint>
        <MaximumConstraint>600</MaximumConstraint>
      </Constraints>
      <CommandLineFormat>-postdelay_sec {0}</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>DisableQuietHours</ProgrammaticName>
        <DisplayName>Disable Quiet Hours</DisplayName>
        <ToolTip>Select to disable quiet hours during the run</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Boolean/>
      </Type>
      <DefaultValue>False</DefaultValue>
      <CommandLineFormat>-disablequiethours</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>NetworkingState</ProgrammaticName>
        <DisplayName>Networking State</DisplayName>
        <ToolTip>Specifies Modern Standby connectivity preference</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Visibility>
        <Hidden/>
      </Visibility>
      <Enumerations>
        <Enumeration>
          <Description>
            <ProgrammaticName>Disconnected</ProgrammaticName>
            <DisplayName>Disconnected</DisplayName>
          </Description>
          <Value>0</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>Connected</ProgrammaticName>
            <DisplayName>Connected</DisplayName>
          </Description>
          <Value>1</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>ManagedbyWindows</ProgrammaticName>
            <DisplayName>Managed by Windows</DisplayName>
          </Description>
          <Value>2</Value>
        </Enumeration>
      </Enumerations>
      <Inclusion>
        <Required/>
      </Inclusion>
      <DefaultValue>1</DefaultValue>
      <BenchmarkValue>1</BenchmarkValue>
      <CommandLineFormat>-NetworkingState {0}</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>ModeAggressive</ProgrammaticName>
        <DisplayName>Disconnected Standby Mode</DisplayName>
        <ToolTip>Specifies the mode for disconnected standby</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Boolean/>
      </Type>
      <DefaultValue>True</DefaultValue>
      <CommandLineFormat>-ModeAggressive</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>SimulatedBatteries</ProgrammaticName>
        <DisplayName>Simulated Batteries</DisplayName>
        <ToolTip>Select to simulate running on battery while on AC</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Boolean/>
      </Type>
      <DefaultValue>False</DefaultValue>
      <CommandLineFormat>-simulatedbatteries</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>EnablePowerLogs</ProgrammaticName>
        <DisplayName>Gather diagnostics power logs</DisplayName>
        <ToolTip>Select to gather additional power related log files for diagnostics</ToolTip>
        <Categories>
          <Category>Execution Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Boolean/>
      </Type>
      <DefaultValue>False</DefaultValue>
      <CommandLineFormat>-enablepowerlogs</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>IncludeAnalysisIteration</ProgrammaticName>
        <DisplayName>Analysis iteration</DisplayName>
        <ToolTip>Execute one analysis iteration at the end of the workload for diagnostic purposes.</ToolTip>
        <Categories>
          <Category>Analysis Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Boolean/>
      </Type>
      <DefaultValue>True</DefaultValue>
      <BenchmarkValue>True</BenchmarkValue>
      <CommandLineFormat>-IncludeAnalysisIteration</CommandLineFormat>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>traceprofile</ProgrammaticName>
        <DisplayName>Use alternate WPR profile</DisplayName>
        <ToolTip>Check to use a Windows Performance Recorder (WPR) profile other than the default.</ToolTip>
        <Categories>
          <Category>Analysis Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <Boolean/>
      </Type>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>profilepath</ProgrammaticName>
        <DisplayName>Path to alternate profile (.wprp)</DisplayName>
        <ToolTip>Path to the alternate Windows Performance Recorder (WPR) profile.</ToolTip>
        <Categories>
          <Category>Analysis Parameters</Category>
        </Categories>
      </Description>
      <Type>
        <FilePath/>
      </Type>
      <PresentWith>
        <ParameterIds>
          <ParameterId>
            <ProgrammaticName>traceprofile</ProgrammaticName>
          </ParameterId>
        </ParameterIds>
      </PresentWith>
      <CommandLineFormat>-traceprofile "{0}"</CommandLineFormat>
    </ParameterDefinition>
  </ParameterDefinitions>
  <Commands>
    <ExecuteWorkload>
      <CreateProcess>
        <ApplicationName>%AssessmentSystemPath%\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy bypass -Command .\ModernStandbyPerf.ps1 -ExecuteOnly -ConfigJSON .\ModernStandbyPerf.json</ApplicationName>
      </CreateProcess>
    </ExecuteWorkload>
    <AnalyzeFolder>
      <CreateProcess>
        <ApplicationName>%AssessmentSystemPath%\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy bypass -Command .\ModernStandbyPerf.ps1 -AnalyzeOnly -ConfigJSON .\ModernStandbyPerf.json</ApplicationName>
      </CreateProcess>
    </AnalyzeFolder>
  </Commands>
</AxeAssessmentManifest>
