xref: /reactos/ntoskrnl/include/internal/cmboot.h (revision 6ff02323)
1*6ff02323SHermès Bélusca-Maïto /*
2*6ff02323SHermès Bélusca-Maïto  * PROJECT:     ReactOS Kernel
3*6ff02323SHermès Bélusca-Maïto  * LICENSE:     BSD - See COPYING.ARM in the top level directory
4*6ff02323SHermès Bélusca-Maïto  * PURPOSE:     Configuration Manager - Boot Initialization Internal header
5*6ff02323SHermès Bélusca-Maïto  * COPYRIGHT:   Copyright 2010 ReactOS Portable Systems Group
6*6ff02323SHermès Bélusca-Maïto  *
7*6ff02323SHermès Bélusca-Maïto  * NOTE: This module is shared by both the kernel and the bootloader.
8*6ff02323SHermès Bélusca-Maïto  */
9*6ff02323SHermès Bélusca-Maïto 
10*6ff02323SHermès Bélusca-Maïto //
11*6ff02323SHermès Bélusca-Maïto // Boot Driver Node
12*6ff02323SHermès Bélusca-Maïto //
13*6ff02323SHermès Bélusca-Maïto typedef struct _BOOT_DRIVER_NODE
14*6ff02323SHermès Bélusca-Maïto {
15*6ff02323SHermès Bélusca-Maïto     BOOT_DRIVER_LIST_ENTRY ListEntry;
16*6ff02323SHermès Bélusca-Maïto     UNICODE_STRING Group;
17*6ff02323SHermès Bélusca-Maïto     UNICODE_STRING Name;
18*6ff02323SHermès Bélusca-Maïto     ULONG Tag;
19*6ff02323SHermès Bélusca-Maïto     ULONG ErrorControl;
20*6ff02323SHermès Bélusca-Maïto } BOOT_DRIVER_NODE, *PBOOT_DRIVER_NODE;
21*6ff02323SHermès Bélusca-Maïto 
22*6ff02323SHermès Bélusca-Maïto 
23*6ff02323SHermès Bélusca-Maïto //
24*6ff02323SHermès Bélusca-Maïto // Boot Routines
25*6ff02323SHermès Bélusca-Maïto //
26*6ff02323SHermès Bélusca-Maïto CODE_SEG("INIT")
27*6ff02323SHermès Bélusca-Maïto HCELL_INDEX
28*6ff02323SHermès Bélusca-Maïto NTAPI
29*6ff02323SHermès Bélusca-Maïto CmpFindControlSet(
30*6ff02323SHermès Bélusca-Maïto     _In_ PHHIVE SystemHive,
31*6ff02323SHermès Bélusca-Maïto     _In_ HCELL_INDEX RootCell,
32*6ff02323SHermès Bélusca-Maïto     _In_ PCUNICODE_STRING SelectKeyName,
33*6ff02323SHermès Bélusca-Maïto     _Out_ PBOOLEAN AutoSelect);
34*6ff02323SHermès Bélusca-Maïto 
35*6ff02323SHermès Bélusca-Maïto 
36*6ff02323SHermès Bélusca-Maïto //
37*6ff02323SHermès Bélusca-Maïto // Driver List Routines
38*6ff02323SHermès Bélusca-Maïto //
39*6ff02323SHermès Bélusca-Maïto #ifdef _BLDR_
40*6ff02323SHermès Bélusca-Maïto 
41*6ff02323SHermès Bélusca-Maïto CODE_SEG("INIT")
42*6ff02323SHermès Bélusca-Maïto BOOLEAN
43*6ff02323SHermès Bélusca-Maïto NTAPI
44*6ff02323SHermès Bélusca-Maïto CmpIsDriverInList(
45*6ff02323SHermès Bélusca-Maïto     _In_ PLIST_ENTRY DriverListHead,
46*6ff02323SHermès Bélusca-Maïto     _In_ PCUNICODE_STRING DriverName,
47*6ff02323SHermès Bélusca-Maïto     _Out_opt_ PBOOT_DRIVER_NODE* FoundDriver);
48*6ff02323SHermès Bélusca-Maïto 
49*6ff02323SHermès Bélusca-Maïto #endif /* _BLDR_ */
50*6ff02323SHermès Bélusca-Maïto 
51*6ff02323SHermès Bélusca-Maïto CODE_SEG("INIT")
52*6ff02323SHermès Bélusca-Maïto BOOLEAN
53*6ff02323SHermès Bélusca-Maïto NTAPI
54*6ff02323SHermès Bélusca-Maïto CmpFindDrivers(
55*6ff02323SHermès Bélusca-Maïto     _In_ PHHIVE Hive,
56*6ff02323SHermès Bélusca-Maïto     _In_ HCELL_INDEX ControlSet,
57*6ff02323SHermès Bélusca-Maïto     _In_ SERVICE_LOAD_TYPE LoadType,
58*6ff02323SHermès Bélusca-Maïto     _In_opt_ PCWSTR BootFileSystem,
59*6ff02323SHermès Bélusca-Maïto     _Inout_ PLIST_ENTRY DriverListHead);
60*6ff02323SHermès Bélusca-Maïto 
61*6ff02323SHermès Bélusca-Maïto CODE_SEG("INIT")
62*6ff02323SHermès Bélusca-Maïto BOOLEAN
63*6ff02323SHermès Bélusca-Maïto NTAPI
64*6ff02323SHermès Bélusca-Maïto CmpSortDriverList(
65*6ff02323SHermès Bélusca-Maïto     _In_ PHHIVE Hive,
66*6ff02323SHermès Bélusca-Maïto     _In_ HCELL_INDEX ControlSet,
67*6ff02323SHermès Bélusca-Maïto     _Inout_ PLIST_ENTRY DriverListHead);
68*6ff02323SHermès Bélusca-Maïto 
69*6ff02323SHermès Bélusca-Maïto CODE_SEG("INIT")
70*6ff02323SHermès Bélusca-Maïto BOOLEAN
71*6ff02323SHermès Bélusca-Maïto NTAPI
72*6ff02323SHermès Bélusca-Maïto CmpResolveDriverDependencies(
73*6ff02323SHermès Bélusca-Maïto     _Inout_ PLIST_ENTRY DriverListHead);
74*6ff02323SHermès Bélusca-Maïto 
75*6ff02323SHermès Bélusca-Maïto CODE_SEG("INIT")
76*6ff02323SHermès Bélusca-Maïto VOID
77*6ff02323SHermès Bélusca-Maïto NTAPI
78*6ff02323SHermès Bélusca-Maïto CmpFreeDriverList(
79*6ff02323SHermès Bélusca-Maïto     _In_ PHHIVE Hive,
80*6ff02323SHermès Bélusca-Maïto     _Inout_ PLIST_ENTRY DriverListHead);
81