2 * PROJECT: ReactOS Setup Library
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Public header
5 * COPYRIGHT: Copyright 2017-2018 Hermes Belusca-Maito
10 /* INCLUDES *****************************************************************/
12 /* Needed PSDK headers when using this library */
15 #define WIN32_NO_STATUS
17 #define COM_NO_WINDOWS_H
23 /* NOTE: Please keep the header inclusion order! */
25 extern HANDLE ProcessHeap
;
27 #include "errorcode.h"
28 #include "utils/linklist.h"
29 #include "utils/ntverrsrc.h"
30 // #include "utils/arcname.h"
31 #include "utils/bldrsup.h"
33 #include "utils/filesup.h"
35 #include "utils/genlist.h"
36 #include "utils/infsupp.h"
37 #include "utils/inicache.h"
38 #include "utils/partlist.h"
39 #include "utils/arcname.h"
40 #include "utils/osdetect.h"
41 #include "utils/regutil.h"
45 /* DEFINES ******************************************************************/
47 #define KB ((ULONGLONG)1024)
50 // #define TB (KB*KB*KB*KB)
51 // #define PB (KB*KB*KB*KB*KB)
54 /* TYPEDEFS *****************************************************************/
56 typedef struct _USETUP_DATA
58 /* SOURCE Paths *****/
59 UNICODE_STRING SourceRootPath
;
60 UNICODE_STRING SourceRootDir
;
61 UNICODE_STRING SourcePath
;
63 /* DESTINATION Paths *****/
65 * Path to the system partition, where the boot manager resides.
66 * On x86 PCs, this is usually the active partition.
67 * On ARC, (u)EFI, ... platforms, this is a dedicated partition.
69 * For more information, see:
70 * https://en.wikipedia.org/wiki/System_partition_and_boot_partition
71 * http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/boot-and-system-volumes.html
72 * http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/arc-boot-process.html
73 * http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/efi-boot-process.html
74 * http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-system-volume.html
75 * http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/determining-boot-volume.html
77 UNICODE_STRING SystemRootPath
;
79 /* Path to the installation directory inside the ReactOS boot partition */
80 UNICODE_STRING DestinationPath
; /** Equivalent of 'NTOS_INSTALLATION::SystemNtPath' **/
81 UNICODE_STRING DestinationArcPath
; /** Equivalent of 'NTOS_INSTALLATION::SystemArcPath' **/
82 UNICODE_STRING DestinationRootPath
;
84 LONG DestinationDiskNumber
;
85 LONG DestinationPartitionNumber
;
94 ULONG RequiredPartitionDiskSpace
;
95 WCHAR InstallationDirectory
[MAX_PATH
];
96 } USETUP_DATA
, *PUSETUP_DATA
;
99 extern BOOLEAN IsUnattendedSetup
;
102 /* FUNCTIONS ****************************************************************/
105 CheckUnattendedSetup(
106 IN OUT PUSETUP_DATA pSetupData
);
110 IN OUT PUSETUP_DATA pSetupData
);
114 OUT PUNICODE_STRING SourcePath
,
115 OUT PUNICODE_STRING SourceRootPath
,
116 OUT PUNICODE_STRING SourceRootDir
);
121 IN OUT PUSETUP_DATA pSetupData
);