<?xml version="1.0" encoding="UTF-8"?>
<outer-root xsi:noNamespaceSchemaLocation="DeviceResourceHierarchy.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<device-root name="PlatformWindows" uuid="{03A866E0-0D0C-4ae5-849F-6D1B27BC51BE}">
		<references>
			<reference name="UUID_WindowsSystemProcessManager" value="{56C71508-02E9-4aa6-B0AE-2D8A8B8AB612}"/>
			<reference name="UUID_WindowsSystemFileService" value="{CBA78837-6C66-4362-BCB5-6183F1A7F319}"/>
			<reference name="UUID_ProcessValidator" value="{34de83bf-a180-4f0e-b6b5-674a8e1aa790}"/>
			<reference name="UUID_NodeLifeTimeResourceNodeRemote" value="{fc1da6be-6fdd-4313-93cc-eba324ff1379}"/>
			<reference name="UUID_NodeInfoResource" value="{42a814ea-9efd-4187-ae07-571b8931f094}"/>
			<reference name="UUID_BreakpointManagerResource" value="{5319bb5a-c569-4168-87f9-e08f0f796f44}"/>
			<reference name="UUID_ProcessResource" value="{e824090d-e99a-48fb-b2d4-fe674852d30a}"/>
			<reference name="UUID_ConnectionResource" value="{91085ef2-47aa-4a98-ac27-b6d135959389}"/>
			<reference name="UUID_WindowsEnvironment" value="{f2cf5015-e6c8-4ec5-89fd-83227444315c}"/>
			<reference name="UUID_WindowsSystem" value="{F244236C-0CFF-4C25-8DC0-2C3B312468C9}"/>
			
			<reference name="UUID_WindowsDisplayDriver" value="{dba32130-7abd-46da-8398-fefcc1adacb6}"/>
			<reference name="UUID_LocationsResource" value="{c0782c7c-6c48-450a-b8b9-3697f180ecbf}"/>
			<reference name="UUID_DataVersionGenerator" value="{e74fe4e8-aeb6-44e6-a8fa-f4cb8ed60b5a}"/>
		</references>
		
		<!-- this will go in the Win32 hierarchy -->
		<!-- 
			Should be renamed to MonitorDefault or something like that
			It is the default hierarchy that has information about the system
			Windows commands should move elsewhere. Split it up?
			This is the starting point for discovering everything about
			the remote system, so it might work here.
			I expect for some other machine type, it would be separate.
		-->
		<namespace name="Win32">
			<type name="root">
				<members>
					<!-- access with /Windows -->
					<member name="Windows" type="WindowsSystemNode"/>

					<!-- access with /Process-->
					<member name="Process" type="WindowsProcessMap" service="true"/>

					<!-- access with /Lifetime-->
					<member name="Lifetime" type="NodeLifetimeResource" service="true"/>

					<!-- access with /Info -->
					<member name="Info" type="NodeInfoResource" service="true"/>

					<!-- access with /DisplayDriver Should move to /Windows/DisplayDriver-->
					<member name="DisplayDriver" type="DisplayDriverResourceWin32" service="true"/>

					<!-- Deprecated -->
					<member name="Devices" type="ConnectionResource"  service="true"/>

					<!-- Get location info from this machine-->
					<member name="Locations" type="LocationsResource"  service="true"/>

					<member name="DataVersionGenerator" type="DataVersionGeneratorResource"  service="true"/>
				</members>
			</type>

			<type name="WindowsSystemNode">
				<members>
					<!-- access with /Windows/ProcessManager-->
					<member name="ProcessManager" type="ProcessManagerResource" service="true"/>

					<!-- access with /Windows/FileService -->
					<member name="FileService" type="FileServiceResource" service="true"/>
					<member name="Environment" type="EnvironmentResource" service="true"/>
					<member name="WindowsSystem" type="WindowsSystemResource" service="true"/>
				</members>
			</type>

			<type name="WindowsProcessMap" remote-resource-ref="UUID_ProcessValidator">
				<default-member-map type="WindowsProcess">
					<properties>
						<property key="WindowsProcess"/>
					</properties>
				</default-member-map>
			</type>

			<type name="WindowsProcess" remote-resource-ref="UUID_ProcessResource">
				<members>
					<member type="BreakpointManagerResourcePerProcess" name="BreakpointManager"/>
				</members>
			</type>

			<type name="DisplayDriverResourceWin32" remote-resource-ref="UUID_WindowsDisplayDriver"/>
			<type name="ProcessManagerResource" remote-resource-ref="UUID_WindowsSystemProcessManager"/>
			<type name="FileServiceResource" remote-resource-ref="UUID_WindowsSystemFileService"/>
			<type name="EnvironmentResource" remote-resource-ref="UUID_WindowsEnvironment"/>
			<type name="WindowsSystemResource" remote-resource-ref="UUID_WindowsSystem"/>
			<type name="NodeLifetimeResource" remote-resource-ref="UUID_NodeLifeTimeResourceNodeRemote"/>
			<type name="NodeInfoResource" remote-resource-ref="UUID_NodeInfoResource"/>
			<type name="BreakpointManagerResourcePerProcess" remote-resource-ref="UUID_BreakpointManagerResource"/>
			<type name="ConnectionResource" remote-resource-ref="UUID_ConnectionResource"/>
			<type name="LocationsResource" remote-resource-ref="UUID_LocationsResource"/>
			<type name="DataVersionGeneratorResource" remote-resource-ref="UUID_DataVersionGenerator"/>
		</namespace>
	</device-root>
</outer-root>
