xref: /reactos/base/setup/lib/utils/osdetect.h (revision 6f15802a)
1 /*
2  * PROJECT:     ReactOS Setup Library
3  * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4  * PURPOSE:     NT 5.x family (MS Windows <= 2003, and ReactOS)
5  *              operating systems detection code.
6  * COPYRIGHT:   Copyright 2017-2024 Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
7  */
8 
9 #pragma once
10 
11 /* Language-independent Vendor strings */
12 #define VENDOR_REACTOS      L"ReactOS"
13 #define VENDOR_MICROSOFT    L"Microsoft"
14 
15 typedef struct _NTOS_INSTALLATION
16 {
17     LIST_ENTRY ListEntry;
18 // BOOLEAN IsDefault;   // TRUE / FALSE whether this installation is marked as "default" in its corresponding loader configuration file.
19     USHORT Machine;                 // Target architecture of the NTOS installation
20     UNICODE_STRING SystemArcPath;   // Normalized ARC path ("ArcSystemRoot")
21     UNICODE_STRING SystemNtPath;    // Corresponding NT path ("NtSystemRoot")
22     PCWSTR PathComponent;           // Pointer inside SystemNtPath.Buffer
23     ULONG DiskNumber;
24     ULONG PartitionNumber;
25     PVOLENTRY Volume; // PVOLINFO
26     WCHAR InstallationName[MAX_PATH];
27     WCHAR VendorName[MAX_PATH];
28     // CHAR Data[ANYSIZE_ARRAY];
29 } NTOS_INSTALLATION, *PNTOS_INSTALLATION;
30 
31 // EnumerateNTOSInstallations
32 PGENERIC_LIST
33 CreateNTOSInstallationsList(
34     _In_ PPARTLIST PartList);
35 
36 /*
37  * FindSubStrI(PCWSTR str, PCWSTR strSearch) :
38  *    Searches for a sub-string 'strSearch' inside 'str', similarly to what
39  *    wcsstr(str, strSearch) does, but ignores the case during the comparisons.
40  */
41 PCWSTR FindSubStrI(PCWSTR str, PCWSTR strSearch);
42 
43 /* EOF */
44