<?xml version="1.0" encoding="UTF-8"?>
<?mso-infoPathSolution solutionVersion="1.0.0.188" PIVersion="1.0.0.0" href="file:///PerfSignature.xsn" name="urn:schemas-microsoft-com:office:infopath:PerfSig:" language="en-us" productVersion="12.0.0" ?>
<?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.2"?>
<PerformanceSignature SchemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-02-10T03:14:31" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003">
  <SignatureId>B9AEF0C0-C1F6-4450-A72C-3F6ACFB68909</SignatureId>
  <Title>WaitAnalysisPhonyWakeups</Title>
  <SignatureType>Basic</SignatureType>
  <Description>Wait Analysis Phony Wakeup Stacks</Description>
  <TraceType>
    <Type>Common</Type>
  </TraceType>
  <Category>Wait (All Wait Classes) [Wait]</Category>
  <Component></Component>
  <Recognition>
    <Wait>
      <CSwitchStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>nt!ExpWaitForResource</Frame>
        </FrameBlocks>
      </CSwitchStack>
      <ReadyThreadStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>nt!KiTimerExpiration</Frame>
        </FrameBlocks>
      </ReadyThreadStack>
    </Wait>
  </Recognition>
  <Recognition>
    <Wait>
      <CSwitchStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>nt!ExpWaitForResource</Frame>
          <Frame>nt!KiCommitThreadWait</Frame>
        </FrameBlocks>
      </CSwitchStack>
      <ReadyThreadStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>nt!KiRetireDpcList</Frame>
        </FrameBlocks>
      </ReadyThreadStack>
    </Wait>
  </Recognition>
  <Recognition>
    <Wait>
      <ReadyThreadStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>PERFPROC.DLL!CollectThreadDetailsObjectData</Frame>
          <Frame>nt!KeInsertQueueApc</Frame>
        </FrameBlocks>
      </ReadyThreadStack>
    </Wait>
  </Recognition>
  <Recognition>
    <Wait>
      <ReadyThreadStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>nt!NtCancelIoFileEx</Frame>
          <Frame>nt!KeInsertQueueApc</Frame>
        </FrameBlocks>
      </ReadyThreadStack>
    </Wait>
  </Recognition>
  <Recognition>
    <Wait>
      <ReadyThreadStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>nt!KiDeliverApc</Frame>
          <Frame>nt!CmpPostApc</Frame>
        </FrameBlocks>
      </ReadyThreadStack>
    </Wait>
  </Recognition>
  <Recognition>
    <Wait>
      <ReadyThreadStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>nt!KiDeliverApc</Frame>
          <Frame>nt!EtwpStackWalkApc</Frame>
        </FrameBlocks>
      </ReadyThreadStack>
    </Wait>
  </Recognition>
  <Recognition>
    <Wait>
      <CSwitchStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>COMBASE.DLL!ASTAThreadWaitForCall</Frame>
          <Frame>COMBASE.DLL!ASTAWaitInExistingContext</Frame>
          <Frame>COMBASE.DLL!ASTAWaitContext::Wait</Frame>
          <Frame>COMBASE.DLL!ASTAWaitContext::KernelWait</Frame>
          <Frame>user32.dll!MsgWaitForMultipleObjectsEx</Frame>
        </FrameBlocks>
      </CSwitchStack>
      <ReadyThreadStack>
        <FrameBlocks>
          <AllowSkippingFrames>true</AllowSkippingFrames>
          <Frame>COMBASE.DLL!CComApartment::ASTAWakeThreadIfNecessary</Frame>
          <Frame>nt!KeSetEvent</Frame>
        </FrameBlocks>
      </ReadyThreadStack>
    </Wait>
  </Recognition>
  <AdditionalComments>This signature identifies stacks that will be treated as phony wakeups in wait analysis.</AdditionalComments>
</PerformanceSignature>