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