WPRControlProfiles Schema

Applies To: Windows 8, Windows 8.1

The complete WPRControlProfiles schema is as follows:

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    attributeFormDefault="unqualified"
    elementFormDefault="qualified"
    version="1.0"
    xml:lang="en-us"
    >
  <xs:simpleType name="SystemCollectorNameEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NT Kernel Logger"/>
      <xs:enumeration value="Circular Kernel Context Logger"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SystemKeywordEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AllFaults"/>
      <xs:enumeration value="Alpc"/>
      <xs:enumeration value="AntiStarvation"/>
      <xs:enumeration value="CC"/>
      <xs:enumeration value="ClockInterrupt"/>
      <xs:enumeration value="ClusterOff"/>
      <xs:enumeration value="CompactCSwitch"/>
      <xs:enumeration value="ContiguousMemorygeneration"/>
      <xs:enumeration value="CpuConfig"/>
      <xs:enumeration value="CSwitch"/>
      <xs:enumeration value="DiskIO"/>
      <xs:enumeration value="DiskIOInit"/>
      <xs:enumeration value="DPC"/>
      <xs:enumeration value="Drivers"/>
      <xs:enumeration value="FileIO"/>
      <xs:enumeration value="FileIOInit"/>
      <xs:enumeration value="Filename"/>
      <xs:enumeration value="FilterIO"/>
      <xs:enumeration value="FilterIOFailure"/>
      <xs:enumeration value="FilterIOFastIO"/>
      <xs:enumeration value="FilterIOInit"/>
      <xs:enumeration value="FootPrint"/>
      <xs:enumeration value="HalClock"/>
      <xs:enumeration value="Handle"/>
      <xs:enumeration value="HardFaults"/>
      <xs:enumeration value="IdleStates"/>
      <xs:enumeration value="InterProcessorInterrupt"/>
      <xs:enumeration value="Interrupt"/>
      <xs:enumeration value="KernelQueue"/>
      <xs:enumeration value="Loader"/>
      <xs:enumeration value="LoadBalancer"/>
      <xs:enumeration value="Memory"/>
      <xs:enumeration value="MemoryInfo"/>
      <xs:enumeration value="MemoryInfoWS"/>
      <xs:enumeration value="NetworkTrace"/>
      <xs:enumeration value="Object"/>
      <xs:enumeration value="OpticalIO"/>
      <xs:enumeration value="OpticalIOInit"/>
      <xs:enumeration value="Pool"/>
      <xs:enumeration value="Power"/>
      <xs:enumeration value="ProcessCounter"/>
      <xs:enumeration value="ProcessFreeze"/>
      <xs:enumeration value="ProcessThread"/>
      <xs:enumeration value="ReadyThread"/>
      <xs:enumeration value="ReferenceSet"/>
      <xs:enumeration value="Registry"/>
      <xs:enumeration value="RegistryHive"/>
      <xs:enumeration value="SampledProfile"/>
      <xs:enumeration value="SpinLock"/>
      <xs:enumeration value="SplitIO"/>
      <xs:enumeration value="SynchronizationObjects"/>
      <xs:enumeration value="SystemCall"/>
      <xs:enumeration value="ThreadPriority"/>
      <xs:enumeration value="Timer"/>
      <xs:enumeration value="VirtualAllocation"/>
      <xs:enumeration value="WakeCounter"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SystemStackEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="AlpcClosePort"/>
      <xs:enumeration value="AlpcConnectFail"/>
      <xs:enumeration value="AlpcConnectRequest"/>
      <xs:enumeration value="AlpcConnectSuccess"/>
      <xs:enumeration value="AlpcReceiveMessage"/>
      <xs:enumeration value="AlpcSendMessage"/>
      <xs:enumeration value="AlpcUnwait"/>
      <xs:enumeration value="AlpcWaitForNewMessage"/>
      <xs:enumeration value="AlpcWaitForReply"/>
      <xs:enumeration value="CcCanIWriteFail"/>
      <xs:enumeration value="CcFlushCache"/>
      <xs:enumeration value="CcFlushSection"/>
      <xs:enumeration value="CcLazyWriteScan"/>
      <xs:enumeration value="CcReadAhead"/>
      <xs:enumeration value="CcWorkitemComplete"/>
      <xs:enumeration value="CcWorkitemDequeue"/>
      <xs:enumeration value="CcWorkitemEnqueue"/>
      <xs:enumeration value="CcWriteBehind"/>
      <xs:enumeration value="ChargeWakeCounterUser"/>
      <xs:enumeration value="ChargeWakeCounterDevice"/>
      <xs:enumeration value="ChargeWakeCounterKernel"/>
      <xs:enumeration value="ChargeWakeCounterPower"/>
      <xs:enumeration value="ContiguousMemoryGeneration"/>
      <xs:enumeration value="CSwitch"/>
      <xs:enumeration value="DiskFlushInit"/>
      <xs:enumeration value="DiskReadInit"/>
      <xs:enumeration value="DiskWriteInit"/>
      <xs:enumeration value="ExecutiveResource"/>
      <xs:enumeration value="FileCleanup"/>
      <xs:enumeration value="FileClose"/>
      <xs:enumeration value="FileCreate"/>
      <xs:enumeration value="FileDelete"/>
      <xs:enumeration value="FileDirEnum"/>
      <xs:enumeration value="FileDirNotify"/>
      <xs:enumeration value="FileFlush"/>
      <xs:enumeration value="FileFSCTL"/>
      <xs:enumeration value="FileOpEnd"/>
      <xs:enumeration value="FileQueryInformation"/>
      <xs:enumeration value="FileRead"/>
      <xs:enumeration value="FileRename"/>
      <xs:enumeration value="FileSetInformation"/>
      <xs:enumeration value="FileWrite"/>
      <xs:enumeration value="HandleCreate"/>
      <xs:enumeration value="HandleClose"/>
      <xs:enumeration value="HandleDuplicate"/>
      <xs:enumeration value="HardFault"/>
      <xs:enumeration value="HeapAllocation"/>
      <xs:enumeration value="HeapCreate"/>
      <xs:enumeration value="HeapDestroy"/>
      <xs:enumeration value="HeapFree"/>
      <xs:enumeration value="HeapRangeCreate"/>
      <xs:enumeration value="HeapRangeDestroy"/>
      <xs:enumeration value="HeapRangeRelease"/>
      <xs:enumeration value="HeapRangeReserve"/>
      <xs:enumeration value="HeapReallocation"/>
      <xs:enumeration value="ImageLoad"/>
      <xs:enumeration value="ImageUnload"/>
      <xs:enumeration value="KernelQueueEnqueue"/>
      <xs:enumeration value="KernelQueueDequeue"/>
      <xs:enumeration value="KernelSignal"/>
      <xs:enumeration value="KernelSignalInit"/>
      <xs:enumeration value="KernelSync"/>
      <xs:enumeration value="KernelSyncAll"/>
      <xs:enumeration value="KernelWaitSync"/>
      <xs:enumeration value="KernelWaitSyncAll"/>
      <xs:enumeration value="MapFile"/>
      <xs:enumeration value="Mark"/>
      <xs:enumeration value="MiniFilterPreOpInit"/>
      <xs:enumeration value="MiniFilterPostOpInit"/>
      <xs:enumeration value="ObjectCreate"/>
      <xs:enumeration value="ObjectDelete"/>
      <xs:enumeration value="ObjectReference"/>
      <xs:enumeration value="PageAccess"/>
      <xs:enumeration value="PagefaultAV"/>
      <xs:enumeration value="PagefaultCopyOnWrite"/>
      <xs:enumeration value="PagefaultDemandZero"/>
      <xs:enumeration value="PagefaultGuard"/>
      <xs:enumeration value="PagefaultHard"/>
      <xs:enumeration value="PagefaultTransition"/>
      <xs:enumeration value="PagefileBackedImageMapping"/>
      <xs:enumeration value="PagefileMappedSectionCreate"/>
      <xs:enumeration value="PagefileMappedSectionDelete"/>
      <xs:enumeration value="PageRangeAccess"/>
      <xs:enumeration value="PageRangeRelease"/>
      <xs:enumeration value="PageRelease"/>
      <xs:enumeration value="PoolAllocation"/>
      <xs:enumeration value="PoolAllocationSession"/>
      <xs:enumeration value="PoolFree"/>
      <xs:enumeration value="PoolFreeSession"/>
      <xs:enumeration value="PowerDeviceNotify"/>
      <xs:enumeration value="PowerDeviceNotifyComplete"/>
      <xs:enumeration value="PowerIdleStateChange"/>
      <xs:enumeration value="PowerPerfStateChange"/>
      <xs:enumeration value="PowerPostSleep"/>
      <xs:enumeration value="PowerPreSleep"/>
      <xs:enumeration value="PowerSessionCallout"/>
      <xs:enumeration value="PowerSessionCalloutReturn"/>
      <xs:enumeration value="PowerSetDevicesState"/>
      <xs:enumeration value="PowerSetDevicesStateReturn"/>
      <xs:enumeration value="PowerSetPowerAction"/>
      <xs:enumeration value="PowerSetPowerActionReturn"/>
      <xs:enumeration value="PowerThermalConstraint"/>
      <xs:enumeration value="ProcessCreate"/>
      <xs:enumeration value="ProcessDelete"/>
      <xs:enumeration value="ProcessFreeze"/>
      <xs:enumeration value="ProcessResume"/>
      <xs:enumeration value="SampledProfile"/>
      <xs:enumeration value="SampledProfileSetInterval"/>
      <xs:enumeration value="ReadyThread"/>
      <xs:enumeration value="RegistryCloseKey"/>
      <xs:enumeration value="RegistryCreateKey"/>
      <xs:enumeration value="RegistryDeleteKey"/>
      <xs:enumeration value="RegistryDeleteValue"/>
      <xs:enumeration value="RegistryEnumerateKey"/>
      <xs:enumeration value="RegistryEnumerateValueKey"/>
      <xs:enumeration value="RegistryFlush"/>
      <xs:enumeration value="RegistryKcbCreate"/>
      <xs:enumeration value="RegistryKcbDelete"/>
      <xs:enumeration value="RegistryOpenKey"/>
      <xs:enumeration value="RegistryQueryKey"/>
      <xs:enumeration value="RegistryQueryMultipleValue"/>
      <xs:enumeration value="RegistryQuerySecurity"/>
      <xs:enumeration value="RegistryQueryValue"/>
      <xs:enumeration value="RegistrySetInformation"/>
      <xs:enumeration value="RegistrySetSecurity"/>
      <xs:enumeration value="RegistrySetValue"/>
      <xs:enumeration value="RegistryVirtualize"/>
      <xs:enumeration value="RegHiveInit"/>
      <xs:enumeration value="RegHiveDestroy"/>
      <xs:enumeration value="RegHiveLink"/>
      <xs:enumeration value="RegHiveDirty"/>
      <xs:enumeration value="ReleaseWakeCounterUser"/>
      <xs:enumeration value="ReleaseWakeCounterDevice"/>
      <xs:enumeration value="ReleaseWakeCounterKernel"/>
      <xs:enumeration value="ReleaseWakeCounterPower"/>
      <xs:enumeration value="SplitIO"/>
      <xs:enumeration value="SystemCallEnter"/>
      <xs:enumeration value="SystemCallExit"/>
      <xs:enumeration value="ThreadCreate"/>
      <xs:enumeration value="ThreadDCEnd"/>
      <xs:enumeration value="ThreadDCStart"/>
      <xs:enumeration value="ThreadDelete"/>
      <xs:enumeration value="ThreadPoolCallbackCancel"/>
      <xs:enumeration value="ThreadPoolCallbackDequeue"/>
      <xs:enumeration value="ThreadPoolCallbackEnqueue"/>
      <xs:enumeration value="ThreadPoolCallbackStart"/>
      <xs:enumeration value="ThreadPoolCallbackStop"/>
      <xs:enumeration value="ThreadPoolClose"/>
      <xs:enumeration value="ThreadPoolCreate"/>
      <xs:enumeration value="ThreadPoolSetMaxThreads"/>
      <xs:enumeration value="ThreadPoolSetMinThreads"/>
      <xs:enumeration value="ThreadSetBasePriority"/>
      <xs:enumeration value="ThreadSetPriority"/>
      <xs:enumeration value="TimerPeriodic"/>
      <xs:enumeration value="TimerOneShot"/>
      <xs:enumeration value="UnMapFile"/>
      <xs:enumeration value="VirtualAllocation"/>
      <xs:enumeration value="VirtualFree"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LoggingModeEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="File"/>
      <xs:enumeration value="Memory"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DetailLevelEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Light"/>
      <xs:enumeration value="Verbose"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="OperationEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Set"/>
      <xs:enumeration value="Add"/>
      <xs:enumeration value="Remove"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TraceMergePropertiesCustomEventsEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None"/>
      <xs:enumeration value="ImageId"/>
      <xs:enumeration value="BuildInfo"/>
      <xs:enumeration value="VolumeMapping"/>
      <xs:enumeration value="EventMetadata"/>
      <xs:enumeration value="PerfTrackMetadata"/>
      <xs:enumeration value="WinSAT"/>
      <xs:enumeration value="NetworkInterface"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="IdType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[^:\s]+"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SystemKeywordType">
    <xs:attribute
        name="Value"
        type="SystemKeywordEnumeration"
        use="required"
        />
    <xs:attribute
        name="Strict"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:simpleType name="SystemCustomKeywordAttributeType">
    <xs:restriction base="xs:string">
      <xs:pattern value="0x[a-fA-F0-9]{1,8}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SystemCustomKeywordType">
    <xs:attribute
        name="Value"
        type="SystemCustomKeywordAttributeType"
        use="required"
        />
    <xs:attribute
        name="Strict"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:group name="SystemKeywordsGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="Keywords"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="1"
                name="Keyword"
                type="SystemKeywordType"
                />
            <xs:element
                maxOccurs="unbounded"
                minOccurs="0"
                name="CustomKeyword"
                type="SystemCustomKeywordType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
        <xs:key name="SystemProviderKeywordsKey">
          <xs:selector xpath="./*"/>
          <xs:field xpath="@Value"/>
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="SystemStackType">
    <xs:attribute
        name="Value"
        type="SystemStackEnumeration"
        use="required"
        />
    <xs:attribute
        name="Strict"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:group name="SystemStacksGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="Stacks"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="1"
                name="Stack"
                type="SystemStackType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
        <xs:key name="SystemProviderStacksKey">
          <xs:selector xpath="./*"/>
          <xs:field xpath="@Value"/>
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:simpleType name="SystemPoolTagAttributeType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="4"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SystemPoolTagType">
    <xs:attribute
        name="Value"
        type="SystemPoolTagAttributeType"
        use="required"
        />
  </xs:complexType>
  <xs:group name="SystemPoolTagsGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="PoolTags"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="4"
                minOccurs="1"
                name="PoolTag"
                type="SystemPoolTagType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
        <xs:key name="SystemProviderPoolTagsKey">
          <xs:selector xpath="./*"/>
          <xs:field xpath="@Value"/>
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="EventProviderKeywordType">
    <xs:attribute
        name="Value"
        type="xs:string"
        use="required"
        />
  </xs:complexType>
  <xs:group name="EventProviderKeywordsGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="Keywords"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="1"
                name="Keyword"
                type="EventProviderKeywordType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
        <xs:key name="EventProviderKeywordsKey">
          <xs:selector xpath="./*"/>
          <xs:field xpath="@Value"/>
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="EventProviderCaptureStateOnStartGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="CaptureStateOnStart"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="1"
                name="Keyword"
                type="EventProviderKeywordType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
        <xs:key name="EventProviderCaptureStateOnStartKey">
          <xs:selector xpath="./*"/>
          <xs:field xpath="@Value"/>
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="EventProviderCaptureStateOnSaveGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="CaptureStateOnSave"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="1"
                name="Keyword"
                type="EventProviderKeywordType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
        <xs:key name="EventProviderCaptureStateOnSaveKey">
          <xs:selector xpath="./*"/>
          <xs:field xpath="@Value"/>
        </xs:key>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="SystemCollectorAttributeGroup">
    <xs:attribute
        name="Id"
        type="IdType"
        use="required"
        />
    <xs:attribute
        name="Base"
        type="xs:string"
        use="optional"
        />
    <xs:attribute
        name="Name"
        type="SystemCollectorNameEnumeration"
        use="required"
        />
    <xs:attribute
        name="Realtime"
        type="xs:boolean"
        use="optional"
        />
  </xs:attributeGroup>
  <xs:attributeGroup name="CollectorAttributeGroup">
    <xs:attribute
        name="Id"
        type="IdType"
        use="required"
        />
    <xs:attribute
        name="Base"
        type="xs:string"
        use="optional"
        />
    <xs:attribute
        name="Name"
        type="xs:string"
        use="required"
        />
    <xs:attribute
        name="Realtime"
        type="xs:boolean"
        use="optional"
        />
  </xs:attributeGroup>
  <xs:complexType name="BuffersType">
    <xs:attribute
        name="Operation"
        type="OperationEnumeration"
        use="optional"
        />
    <xs:attribute
        name="Value"
        type="xs:unsignedLong"
        use="required"
        />
    <xs:attribute
        name="PercentageOfTotalMemory"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:complexType name="BufferSizeType">
    <xs:attribute
        name="Operation"
        type="OperationEnumeration"
        use="optional"
        />
    <xs:attribute
        name="Value"
        type="xs:unsignedLong"
        use="required"
        />
  </xs:complexType>
  <xs:complexType name="StackCachingType">
    <xs:attribute
        name="BucketCount"
        type="xs:unsignedLong"
        use="required"
        />
    <xs:attribute
        name="CacheSize"
        type="xs:unsignedLong"
        use="required"
        />
  </xs:complexType>
  <xs:group name="SystemBufferElementGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="BufferSize"
          type="BufferSizeType"
          />
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="Buffers"
          type="BuffersType"
          />
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="StackCaching"
          type="StackCachingType"
          />
    </xs:sequence>
  </xs:group>
  <xs:group name="EventBufferElementGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="BufferSize"
          type="BufferSizeType"
          />
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="Buffers"
          type="BuffersType"
          />
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="StackCaching"
          type="StackCachingType"
          />
    </xs:sequence>
  </xs:group>
  <xs:complexType name="SystemCollectorType">
    <xs:group ref="SystemBufferElementGroup"/>
    <xs:attributeGroup ref="SystemCollectorAttributeGroup"/>
  </xs:complexType>
  <xs:complexType name="EventCollectorType">
    <xs:group ref="EventBufferElementGroup"/>
    <xs:attributeGroup ref="CollectorAttributeGroup"/>
    <xs:attribute
        name="Private"
        type="xs:boolean"
        use="optional"
        />
    <xs:attribute
        name="ProcessPrivate"
        type="xs:boolean"
        use="optional"
        />
    <xs:attribute
        name="Secure"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:complexType name="HeapEventCollectorType">
    <xs:group ref="EventBufferElementGroup"/>
    <xs:attributeGroup ref="CollectorAttributeGroup"/>
    <xs:attribute
        name="Secure"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:complexType name="SystemProviderType">
    <xs:sequence>
      <xs:group ref="SystemKeywordsGroup"/>
      <xs:group ref="SystemStacksGroup"/>
      <xs:group ref="SystemPoolTagsGroup"/>
    </xs:sequence>
    <xs:attribute
        name="Id"
        type="IdType"
        use="required"
        />
    <xs:attribute
        name="Base"
        type="xs:string"
        use="optional"
        />
  </xs:complexType>
  <xs:complexType name="EventProviderType">
    <xs:sequence>
      <xs:group ref="EventProviderKeywordsGroup"/>
      <xs:group ref="EventProviderCaptureStateOnStartGroup"/>
      <xs:group ref="EventProviderCaptureStateOnSaveGroup"/>
    </xs:sequence>
    <xs:attribute
        name="Id"
        type="IdType"
        use="required"
        />
    <xs:attribute
        name="Name"
        type="xs:string"
        use="required"
        />
    <xs:attribute
        name="Base"
        type="xs:string"
        use="optional"
        />
    <xs:attribute
        name="NonPagedMemory"
        type="xs:boolean"
        use="optional"
        />
    <xs:attribute
        name="Stack"
        type="xs:boolean"
        use="optional"
        />
    <xs:attribute
        name="SID"
        type="xs:boolean"
        use="optional"
        />
    <xs:attribute
        name="TSID"
        type="xs:boolean"
        use="optional"
        />
    <xs:attribute
        name="Level"
        type="xs:unsignedByte"
        use="optional"
        />
    <xs:attribute
        name="CaptureStateOnly"
        type="xs:boolean"
        use="optional"
        />
    <xs:attribute
        name="Strict"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:complexType name="HeapProcessIdType">
    <xs:attribute
        name="Value"
        type="xs:unsignedLong"
        use="required"
        />
  </xs:complexType>
  <xs:group name="HeapEventProcessIdsGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="HeapProcessIds"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="2"
                minOccurs="1"
                name="HeapProcessId"
                type="HeapProcessIdType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="HeapEventProviderType">
    <xs:sequence>
      <xs:group ref="HeapEventProcessIdsGroup"/>
    </xs:sequence>
    <xs:attribute
        name="Id"
        type="IdType"
        use="required"
        />
    <xs:attribute
        name="Base"
        type="xs:string"
        use="optional"
        />
  </xs:complexType>
  <xs:group name="SystemProviderGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="SystemProvider"
          type="SystemProviderType"
          />
    </xs:sequence>
  </xs:group>
  <xs:group name="EventProviderGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="EventProvider"
          type="EventProviderType"
          />
    </xs:sequence>
  </xs:group>
  <xs:group name="HeapEventProviderGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="HeapEventProvider"
          type="HeapEventProviderType"
          />
    </xs:sequence>
  </xs:group>
  <xs:complexType name="SystemProviderIdType">
    <xs:sequence>
      <xs:group ref="SystemKeywordsGroup"/>
      <xs:group ref="SystemStacksGroup"/>
      <xs:group ref="SystemPoolTagsGroup"/>
    </xs:sequence>
    <xs:attribute
        name="Value"
        type="IdType"
        use="required"
        />
  </xs:complexType>
  <xs:complexType name="EventProviderIdType">
    <xs:sequence>
      <xs:group ref="EventProviderKeywordsGroup"/>
      <xs:group ref="EventProviderCaptureStateOnStartGroup"/>
      <xs:group ref="EventProviderCaptureStateOnSaveGroup"/>
    </xs:sequence>
    <xs:attribute
        name="Value"
        type="IdType"
        use="required"
        />
  </xs:complexType>
  <xs:complexType name="SystemCollectorIdType">
    <xs:sequence>
      <xs:group
          maxOccurs="1"
          minOccurs="0"
          ref="SystemBufferElementGroup"
          />
      <xs:element
          maxOccurs="1"
          minOccurs="0"
          name="SystemProviderId"
          type="SystemProviderIdType"
          />
      <xs:group
          maxOccurs="1"
          minOccurs="0"
          ref="SystemProviderGroup"
          />
    </xs:sequence>
    <xs:attribute
        name="Value"
        type="IdType"
        use="required"
        />
  </xs:complexType>
  <xs:group name="EventProvidersGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="EventProviders"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="0"
                name="EventProviderId"
                type="EventProviderIdType"
                />
            <xs:group
                maxOccurs="unbounded"
                minOccurs="0"
                ref="EventProviderGroup"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="HeapEventProvidersGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="HeapEventProviders"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="0"
                name="HeapEventProviderId"
                type="HeapEventProviderIdType"
                />
            <xs:group
                maxOccurs="unbounded"
                minOccurs="0"
                ref="HeapEventProviderGroup"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="EventCollectorIdType">
    <xs:sequence>
      <xs:group
          maxOccurs="1"
          minOccurs="0"
          ref="EventBufferElementGroup"
          />
      <xs:group ref="EventProvidersGroup"/>
    </xs:sequence>
    <xs:attribute
        name="Value"
        type="IdType"
        use="required"
        />
  </xs:complexType>
  <xs:complexType name="HeapEventProviderIdType">
    <xs:sequence>
      <xs:group
          maxOccurs="1"
          minOccurs="0"
          ref="HeapEventProcessIdsGroup"
          />
    </xs:sequence>
    <xs:attribute
        name="Value"
        type="IdType"
        use="required"
        />
  </xs:complexType>
  <xs:complexType name="HeapEventCollectorIdType">
    <xs:sequence>
      <xs:group
          maxOccurs="1"
          minOccurs="0"
          ref="EventBufferElementGroup"
          />
      <xs:group ref="HeapEventProvidersGroup"/>
    </xs:sequence>
    <xs:attribute
        name="Value"
        type="IdType"
        use="required"
        />
  </xs:complexType>
  <xs:complexType name="ProblemCategoryType">
    <xs:attribute
        name="Value"
        type="xs:string"
        use="required"
        />
  </xs:complexType>
  <xs:group name="ProblemCategoriesGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="ProblemCategories"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="unbounded"
                minOccurs="1"
                name="ProblemCategory"
                type="ProblemCategoryType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:group name="CollectorsGroup">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="Collectors"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="1"
                minOccurs="0"
                name="SystemCollectorId"
                type="SystemCollectorIdType"
                />
            <xs:element
                maxOccurs="unbounded"
                minOccurs="0"
                name="EventCollectorId"
                type="EventCollectorIdType"
                />
            <xs:element
                maxOccurs="unbounded"
                minOccurs="0"
                name="HeapEventCollectorId"
                type="HeapEventCollectorIdType"
                />
          </xs:sequence>
          <xs:attribute
              name="Operation"
              type="OperationEnumeration"
              use="optional"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:group>
  <xs:complexType name="ProfilesType">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="SystemCollector"
          type="SystemCollectorType"
          />
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="EventCollector"
          type="EventCollectorType"
          />
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="HeapEventCollector"
          type="HeapEventCollectorType"
          />
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="SystemProvider"
          type="SystemProviderType"
          />
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="EventProvider"
          type="EventProviderType"
          />
      <xs:element
          maxOccurs="unbounded"
          minOccurs="0"
          name="HeapEventProvider"
          type="HeapEventProviderType"
          />
      <xs:element
          maxOccurs="unbounded"
          minOccurs="1"
          name="Profile"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:group ref="ProblemCategoriesGroup"/>
            <xs:group ref="CollectorsGroup"/>
          </xs:sequence>
          <xs:attribute
              name="Id"
              type="IdType"
              use="required"
              />
          <xs:attribute
              name="Name"
              type="xs:string"
              use="required"
              />
          <xs:attribute
              name="Description"
              type="xs:string"
              use="required"
              />
          <xs:attribute
              name="Base"
              type="xs:string"
              use="optional"
              />
          <xs:attribute
              name="LoggingMode"
              type="LoggingModeEnumeration"
              use="required"
              />
          <xs:attribute
              name="DetailLevel"
              type="DetailLevelEnumeration"
              use="required"
              />
          <xs:attribute
              name="Internal"
              type="xs:boolean"
              use="optional"
              />
          <xs:attribute
              name="Default"
              type="xs:boolean"
              use="optional"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TraceMergePropertiesCustomEventType">
    <xs:attribute
        name="Value"
        type="TraceMergePropertiesCustomEventsEnumeration"
        />
  </xs:complexType>
  <xs:complexType name="DeletePreMergedTraceFilesType">
    <xs:attribute
        name="Value"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:complexType name="FileCompressionType">
    <xs:attribute
        name="Value"
        type="xs:boolean"
        use="optional"
        />
  </xs:complexType>
  <xs:complexType name="TraceMergePropertiesType">
    <xs:sequence>
      <xs:element
          maxOccurs="unbounded"
          minOccurs="1"
          name="TraceMergeProperty"
          >
        <xs:complexType>
          <xs:sequence>
            <xs:element
                maxOccurs="1"
                minOccurs="0"
                name="DeletePreMergedTraceFiles"
                type="DeletePreMergedTraceFilesType"
                />
            <xs:element
                maxOccurs="unbounded"
                minOccurs="1"
                name="CustomEvents"
                >
              <xs:complexType>
                <xs:sequence>
                  <xs:element
                      maxOccurs="unbounded"
                      minOccurs="1"
                      name="CustomEvent"
                      type="TraceMergePropertiesCustomEventType"
                      />
                </xs:sequence>
                <xs:attribute
                    name="Operation"
                    type="OperationEnumeration"
                    use="optional"
                    />
              </xs:complexType>
              <xs:key name="TraceMergePropertyCustomEventsKey">
                <xs:selector xpath="./*"/>
                <xs:field xpath="@Value"/>
              </xs:key>
            </xs:element>
            <xs:element
                maxOccurs="1"
                minOccurs="0"
                name="FileCompression"
                type="FileCompressionType"
                />
          </xs:sequence>
          <xs:attribute
              name="Id"
              type="IdType"
              use="required"
              />
          <xs:attribute
              name="Name"
              type="xs:string"
              use="required"
              />
          <xs:attribute
              name="Base"
              type="xs:string"
              use="optional"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="TransitionTagType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[^\\/:\*\?\|\x0C\&gt;\x22]+"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="OnOffTransitionEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="On/Off - Boot"/>
      <xs:enumeration value="On/Off - FastStartup"/>
      <xs:enumeration value="On/Off - Shutdown"/>
      <xs:enumeration value="On/Off - RebootCycle"/>
      <xs:enumeration value="On/Off - Standby/Resume"/>
      <xs:enumeration value="On/Off - Hibernate/Resume"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SimpleValueType">
    <xs:restriction base="xs:unsignedShort">
      <xs:minInclusive value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="SimpleDelayValueType">
    <xs:restriction base="xs:unsignedShort">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="3600"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="OnOffTransitionConfigurationsType">
    <xs:sequence
        maxOccurs="6"
        minOccurs="1"
        >
      <xs:element name="OnOffTransitionConfiguration">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PrepareSystem">
              <xs:complexType>
                <xs:attribute
                    name="Value"
                    type="xs:boolean"
                    use="required"
                    />
              </xs:complexType>
            </xs:element>
            <xs:element name="NumberOfRuns">
              <xs:complexType>
                <xs:attribute
                    name="Value"
                    type="SimpleValueType"
                    use="required"
                    />
              </xs:complexType>
            </xs:element>
            <xs:element name="PostBootDelay">
              <xs:complexType>
                <xs:attribute
                    name="Value"
                    type="SimpleDelayValueType"
                    use="required"
                    />
              </xs:complexType>
            </xs:element>
            <xs:element name="WakeupDelay">
              <xs:complexType>
                <xs:attribute
                    name="Value"
                    type="SimpleDelayValueType"
                    use="required"
                    />
              </xs:complexType>
            </xs:element>
            <xs:element name="TransitionTag">
              <xs:complexType>
                <xs:attribute
                    name="Value"
                    type="TransitionTagType"
                    use="required"
                    />
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute
              name="Id"
              type="IdType"
              use="required"
              />
          <xs:attribute
              name="Name"
              type="xs:string"
              use="required"
              />
          <xs:attribute
              name="Type"
              type="OnOffTransitionEnumeration"
              use="required"
              />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="WindowsPerformanceRecorder">
    <xs:complexType>
      <xs:sequence>
        <xs:element
            maxOccurs="1"
            minOccurs="0"
            name="Profiles"
            type="ProfilesType"
            />
        <xs:element
            maxOccurs="unbounded"
            minOccurs="0"
            name="TraceMergeProperties"
            type="TraceMergePropertiesType"
            />
        <xs:element
            maxOccurs="1"
            minOccurs="0"
            name="OnOffTransitionConfigurations"
            type="OnOffTransitionConfigurationsType"
            />
      </xs:sequence>
      <xs:attribute
          name="Version"
          type="xs:float"
          use="required"
          />
      <xs:attribute
          name="Author"
          type="xs:string"
          use="optional"
          />
      <xs:attribute
          name="Team"
          type="xs:string"
          use="optional"
          />
      <xs:attribute
          name="Copyright"
          type="xs:string"
          use="optional"
          />
      <xs:attribute
          name="Company"
          type="xs:string"
          use="optional"
          />
      <xs:attribute
          name="Comments"
          type="xs:string"
          use="optional"
          />
      <xs:attribute
          name="Tag"
          type="xs:string"
          use="optional"
          />
    </xs:complexType>
    <xs:key name="IdKey">
      <xs:selector xpath="./*/*"/>
      <xs:field xpath="@Id"/>
    </xs:key>
    <xs:key name="OnOffTransitionKey">
      <xs:selector xpath="./OnOffTransitionConfigurations/*"/>
      <xs:field xpath="@Type"/>
    </xs:key>
  </xs:element>
</xs:schema>

See Also

Other Resources

Recording Profile XML Reference