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