Skip to content

Commit f9aa0e3

Browse files
committed
Initial batch of files
1 parent 9302edb commit f9aa0e3

File tree

19 files changed

+17332
-1
lines changed

19 files changed

+17332
-1
lines changed

Diagrams/Panther.activitydiagram

Lines changed: 4035 additions & 0 deletions
Large diffs are not rendered by default.

Diagrams/Panther.activitydiagram.layout

Lines changed: 5377 additions & 0 deletions
Large diffs are not rendered by default.

ModelDefinition/Panther-Diagram.uml

Lines changed: 6866 additions & 0 deletions
Large diffs are not rendered by default.

Panther-Diagram.modelproj

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4+
<PropertyGroup>
5+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7+
<SchemaVersion>2.0</SchemaVersion>
8+
<ProjectGuid>{9cd8250e-543b-412a-88b9-6e99eaa42714}</ProjectGuid>
9+
<ArchitectureToolsVersion>2.0.0.0</ArchitectureToolsVersion>
10+
<Name>Panther-Diagram</Name>
11+
<RootNamespace>Panther-Diagram</RootNamespace>
12+
</PropertyGroup>
13+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
14+
<OutputPath>bin\Debug\</OutputPath>
15+
</PropertyGroup>
16+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
17+
<OutputPath>bin\Release\</OutputPath>
18+
</PropertyGroup>
19+
<PropertyGroup>
20+
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
21+
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
22+
</PropertyGroup>
23+
<Import Project="$(VSToolsPath)\ArchitectureTools\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" Condition="'$(VSToolsPath)' != ''" />
24+
<ItemGroup>
25+
<Content Include="Diagrams\Panther.activitydiagram">
26+
<SubType>Content</SubType>
27+
</Content>
28+
<Content Include="Diagrams\Panther.activitydiagram.layout">
29+
<SubType>Content</SubType>
30+
<DependentUpon>Diagrams\Panther.activitydiagram</DependentUpon>
31+
</Content>
32+
<Content Include="LICENSE">
33+
<SubType>Content</SubType>
34+
</Content>
35+
<Content Include="README.md">
36+
<SubType>Content</SubType>
37+
</Content>
38+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\cbs.log">
39+
<SubType>Content</SubType>
40+
</Content>
41+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\Contents0.dir">
42+
<SubType>Content</SubType>
43+
</Content>
44+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\Contents1.dir">
45+
<SubType>Content</SubType>
46+
</Content>
47+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\diagerr.xml">
48+
<SubType>Content</SubType>
49+
</Content>
50+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\diagwrn.xml">
51+
<SubType>Content</SubType>
52+
</Content>
53+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\FastCleanup\diagerr.xml">
54+
<SubType>Content</SubType>
55+
</Content>
56+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\FastCleanup\diagwrn.xml">
57+
<SubType>Content</SubType>
58+
</Content>
59+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\FastCleanup\setupact.log">
60+
<SubType>Content</SubType>
61+
</Content>
62+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\FastCleanup\setuperr.log">
63+
<SubType>Content</SubType>
64+
</Content>
65+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\MainQueueOnline0.que">
66+
<SubType>Content</SubType>
67+
</Content>
68+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\MainQueueOnline1.que">
69+
<SubType>Content</SubType>
70+
</Content>
71+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\setup.etl">
72+
<SubType>Content</SubType>
73+
</Content>
74+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\setupact.log">
75+
<SubType>Content</SubType>
76+
</Content>
77+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\setuperr.log">
78+
<SubType>Content</SubType>
79+
</Content>
80+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\setupinfo">
81+
<SubType>Content</SubType>
82+
</Content>
83+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\UnattendGC\diagerr.xml">
84+
<SubType>Content</SubType>
85+
</Content>
86+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\UnattendGC\diagwrn.xml">
87+
<SubType>Content</SubType>
88+
</Content>
89+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\UnattendGC\setupact.log">
90+
<SubType>Content</SubType>
91+
</Content>
92+
<Content Include="Setup Logs\Clean-WS2012R2-WinPE\UnattendGC\setuperr.log">
93+
<SubType>Content</SubType>
94+
</Content>
95+
<Folder Include="Diagrams\" />
96+
<Folder Include="ModelDefinition\" />
97+
<Content Include="ModelDefinition\Panther-Diagram.uml">
98+
<SubType>Content</SubType>
99+
</Content>
100+
<Folder Include="Setup Logs\" />
101+
<Folder Include="Setup Logs\Clean-WS2012R2-WinPE\" />
102+
<Folder Include="Setup Logs\Clean-WS2012R2-WinPE\FastCleanup\" />
103+
<Folder Include="Setup Logs\Clean-WS2012R2-WinPE\setup.exe\" />
104+
<Folder Include="Setup Logs\Clean-WS2012R2-WinPE\UnattendGC\" />
105+
</ItemGroup>
106+
</Project>

Panther-Diagram.sln

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 2012
4+
Project("{F088123C-0E9E-452A-89E6-6BA2F21D5CAC}") = "Panther-Diagram", "Panther-Diagram.modelproj", "{9CD8250E-543B-412A-88B9-6E99EAA42714}"
5+
EndProject
6+
Global
7+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
8+
Debug|Any CPU = Debug|Any CPU
9+
Release|Any CPU = Release|Any CPU
10+
EndGlobalSection
11+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
12+
{9CD8250E-543B-412A-88B9-6E99EAA42714}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
13+
{9CD8250E-543B-412A-88B9-6E99EAA42714}.Debug|Any CPU.Build.0 = Debug|Any CPU
14+
{9CD8250E-543B-412A-88B9-6E99EAA42714}.Release|Any CPU.ActiveCfg = Release|Any CPU
15+
{9CD8250E-543B-412A-88B9-6E99EAA42714}.Release|Any CPU.Build.0 = Release|Any CPU
16+
EndGlobalSection
17+
GlobalSection(SolutionProperties) = preSolution
18+
HideSolutionNode = FALSE
19+
EndGlobalSection
20+
EndGlobal

README.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,28 @@
11
# Panther-Diagram
2-
A UML activity diagram showing the process of Windows Setup (Panther)
2+
3+
This project features UML activity diagrams representing the inner workings of the modern Windows installation procedure (powered by a WIM-based installer codenamed Panther) **for research purposes**.
4+
5+
## What is Panther, and how has this diagram been created?
6+
7+
**Panther** is the codename for the setup engine of the WIM-based installer and for the Windows Deployment Services (WDS). This technology has been in use since Windows Vista, released in 2007.
8+
9+
Panther also does extensive logging to the `setupact.log` and `setuperr.log` files in its directory (`WINDOWS\Panther`) and, therefore, this project is possible. All information has been solely grabbed from the logs to give a better understanding of the Windows setup procedure.
10+
11+
## Current state
12+
13+
The UML activity diagrams only cover a clean installation of Windows started from WinPE. Additional cases, like upgrades or in-place installations, may be covered in the future.
14+
15+
## How do I contribute?
16+
17+
Requirements:
18+
19+
- **Any Visual Studio version** greater or equal to 2010, with UML compatibility (you may need to add it if you are using a modern version of VS)
20+
21+
1. Fork this repository
22+
2. Perform installations of Windows in more situations. Many things can differ
23+
3. Pull the Setup logs from the target installation and examine them
24+
4. Update the UML activity diagram accordingly
25+
5. Save your changes and make a pull request
26+
27+
> [!IMPORTANT]
28+
> Please make sure to disclose the source of your changes in your pull requests. Any PR whose source is leaked Windows code will be discarded, so you must stick to Setup logs.
68 Bytes
Binary file not shown.
68 Bytes
Binary file not shown.
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
2+
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
3+
xmlns:rs="urn:schemas-microsoft-com:rowset"
4+
xmlns:z="#RowsetSchema">
5+
<s:Schema id="RowsetSchema">
6+
<s:ElementType name="row" content="eltOnly" rs:updatable="true">
7+
<s:AttributeType name="Cls" rs:number="0">
8+
<s:datatype dt:type="string"/>
9+
</s:AttributeType>
10+
<s:AttributeType name="Sev" rs:number="1">
11+
<s:datatype dt:type="int"/>
12+
</s:AttributeType>
13+
<s:AttributeType name="Maj" rs:number="2">
14+
<s:datatype dt:type="string"/>
15+
</s:AttributeType>
16+
<s:AttributeType name="Min" rs:number="3">
17+
<s:datatype dt:type="string"/>
18+
</s:AttributeType>
19+
<s:AttributeType name="LN" rs:number="4">
20+
<s:datatype dt:type="int"/>
21+
</s:AttributeType>
22+
<s:AttributeType name="Fil" rs:number="5">
23+
<s:datatype dt:type="string"/>
24+
</s:AttributeType>
25+
<s:AttributeType name="Fun" rs:number="6">
26+
<s:datatype dt:type="string"/>
27+
</s:AttributeType>
28+
<s:AttributeType name="Uid" rs:number="7">
29+
<s:datatype dt:type="int"/>
30+
</s:AttributeType>
31+
<s:AttributeType name="Msg" rs:number="8">
32+
<s:datatype dt:type="string"/>
33+
</s:AttributeType>
34+
<s:AttributeType name="PID" rs:number="9">
35+
<s:datatype dt:type="int"/>
36+
</s:AttributeType>
37+
<s:AttributeType name="TID" rs:number="10">
38+
<s:datatype dt:type="int"/>
39+
</s:AttributeType>
40+
<s:AttributeType name="Con" rs:number="11">
41+
<s:datatype dt:type="string"/>
42+
</s:AttributeType>
43+
<s:AttributeType name="Exe" rs:number="12">
44+
<s:datatype dt:type="string"/>
45+
</s:AttributeType>
46+
<s:AttributeType name="Mod" rs:number="13">
47+
<s:datatype dt:type="string"/>
48+
</s:AttributeType>
49+
<s:AttributeType name="Err" rs:number="14">
50+
<s:datatype dt:type="int"/>
51+
</s:AttributeType>
52+
<s:AttributeType name="MD" rs:number="15">
53+
<s:datatype dt:type="hexBinary"/>
54+
</s:AttributeType>
55+
<s:AttributeType name="DT" rs:number="16">
56+
<s:datatype dt:type="dateTime"/>
57+
</s:AttributeType>
58+
</s:ElementType>
59+
</s:Schema>
60+
<rs:data>
61+
</rs:data>
62+
</xml>
63+
<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
64+
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
65+
xmlns:rs="urn:schemas-microsoft-com:rowset"
66+
xmlns:z="#RowsetSchema">
67+
<s:Schema id="RowsetSchema">
68+
<s:ElementType name="row" content="eltOnly" rs:updatable="true">
69+
<s:AttributeType name="Cls" rs:number="0">
70+
<s:datatype dt:type="string"/>
71+
</s:AttributeType>
72+
<s:AttributeType name="Sev" rs:number="1">
73+
<s:datatype dt:type="int"/>
74+
</s:AttributeType>
75+
<s:AttributeType name="Maj" rs:number="2">
76+
<s:datatype dt:type="string"/>
77+
</s:AttributeType>
78+
<s:AttributeType name="Min" rs:number="3">
79+
<s:datatype dt:type="string"/>
80+
</s:AttributeType>
81+
<s:AttributeType name="LN" rs:number="4">
82+
<s:datatype dt:type="int"/>
83+
</s:AttributeType>
84+
<s:AttributeType name="Fil" rs:number="5">
85+
<s:datatype dt:type="string"/>
86+
</s:AttributeType>
87+
<s:AttributeType name="Fun" rs:number="6">
88+
<s:datatype dt:type="string"/>
89+
</s:AttributeType>
90+
<s:AttributeType name="Uid" rs:number="7">
91+
<s:datatype dt:type="int"/>
92+
</s:AttributeType>
93+
<s:AttributeType name="Msg" rs:number="8">
94+
<s:datatype dt:type="string"/>
95+
</s:AttributeType>
96+
<s:AttributeType name="PID" rs:number="9">
97+
<s:datatype dt:type="int"/>
98+
</s:AttributeType>
99+
<s:AttributeType name="TID" rs:number="10">
100+
<s:datatype dt:type="int"/>
101+
</s:AttributeType>
102+
<s:AttributeType name="Con" rs:number="11">
103+
<s:datatype dt:type="string"/>
104+
</s:AttributeType>
105+
<s:AttributeType name="Exe" rs:number="12">
106+
<s:datatype dt:type="string"/>
107+
</s:AttributeType>
108+
<s:AttributeType name="Mod" rs:number="13">
109+
<s:datatype dt:type="string"/>
110+
</s:AttributeType>
111+
<s:AttributeType name="Err" rs:number="14">
112+
<s:datatype dt:type="int"/>
113+
</s:AttributeType>
114+
<s:AttributeType name="MD" rs:number="15">
115+
<s:datatype dt:type="hexBinary"/>
116+
</s:AttributeType>
117+
<s:AttributeType name="DT" rs:number="16">
118+
<s:datatype dt:type="dateTime"/>
119+
</s:AttributeType>
120+
</s:ElementType>
121+
</s:Schema>
122+
<rs:data>
123+
</rs:data>
124+
</xml>

0 commit comments

Comments
 (0)