Fixed driver loading order, cleaned up relevant functions, and moved boot driver

initializing to separate function IopInitializeBootDrivers in io/driver.c.

These functions has been renamed:
LdrInitializeBootStartDriver -> IopInitializeBuiltinDriver (moved to io/driver.c)
LdrLoadAutoConfigDrivers -> IopInitializeSystemDrivers

How the driver loading works now:
- The root bus driver is enumerated by IoInit2 and it causes all drivers marked
as boot start to be initialized and attached to respective device tree node.
- Other boot drivers are initialized by IopInitializeBootDrivers (called from
ExpInitializeExecutive).
- After creating system root link (by IoCreateSystemRootLink) the device
tree is travesed by IopInitializePnpServices and all non-boot start drivers
all loaded.
- At last, system start drivers are loaded by IopInitializeSystemDrivers.

svn path=/trunk/; revision=6325
This commit is contained in:
Filip Navara 2003-10-15 17:04:39 +00:00
parent c44771a681
commit 5753152b64
13 changed files with 1510 additions and 1181 deletions

View file

@ -1,3 +1,4 @@
system32\drivers\pci.sys
system32\drivers\scsiport.sys system32\drivers\scsiport.sys
system32\drivers\atapi.sys system32\drivers\atapi.sys
system32\drivers\class2.sys system32\drivers\class2.sys

View file

@ -55,9 +55,8 @@ HKLM,"SYSTEM\CurrentControlSet\Control\ServiceGroupOrder","List",0x00010000, \
"Video", \ "Video", \
"File System", \ "File System", \
"Event log", \ "Event log", \
"NDIS Wrapper" \
"PNP_TDI", \
"NDIS", \ "NDIS", \
"PNP_TDI", \
"TDI", \ "TDI", \
"Extended Base" "Extended Base"
@ -94,15 +93,15 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management","Pagin
; --------------------------- BUS drivers --------------------------- ; --------------------------- BUS drivers ---------------------------
; PCI driver ; PCI driver
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","ErrorControl",0x00010001,0x00000000 HKLM,"SYSTEM\CurrentControlSet\Services\Pci","ErrorControl",0x00010001,0x00000000
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Group",0x00000000,"Boot Bus Extender" HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Group",0x00000000,"Boot Bus Extender"
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","ImagePath",0x00020000,"system32\drivers\pci.sys" HKLM,"SYSTEM\CurrentControlSet\Services\Pci","ImagePath",0x00020000,"system32\drivers\pci.sys"
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Start",0x00010001,0x00000003 HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Start",0x00010001,0x00000000
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Tag",0x00010001,0x00000002 HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Tag",0x00010001,0x00000002
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Type",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Type",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","Service",0x00000000,"Pci" HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","Service",0x00000000,"Pci"
;HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","Class",0x00000000,"Computer" HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","Class",0x00000000,"Computer"
;HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","ClassGUID",0x00000000,"{4D36E966-E325-11CE-BFC1-08002BE10318}" HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","ClassGUID",0x00000000,"{4D36E966-E325-11CE-BFC1-08002BE10318}"
; ----------------------- End of BUS drivers ------------------------ ; ----------------------- End of BUS drivers ------------------------
@ -220,28 +219,28 @@ HKLM,"SYSTEM\CurrentControlSet\Services\Msfs","Type",0x00010001,0x00000002
; NDIS driver - the only boot-start network driver ; NDIS driver - the only boot-start network driver
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","ErrorControl",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Group",0x00000000,"NDIS Wrapper" HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Group",0x00000000,"NDIS"
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","ImagePath",0x00020000,"system32\drivers\ndis.sys" HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","ImagePath",0x00020000,"system32\drivers\ndis.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Start",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Type",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Type",0x00010001,0x00000001
; NIC drivers are like any other drivers - but no card-specific info here. bind/route/export ; NIC drivers are like any other drivers - but no card-specific info here. bind/route/export
; should have one entry per child device object. ; should have one entry per child device object.
; Comment the networking stuff out if you don't have hte card and don't want to see errors ; Comment the networking stuff out if you don't have hte card and don't want to see errors
; NE2000 NIC driver ; NE2000 NIC driver
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ErrorControl",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ErrorControl",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Group",0x00000000,"NDIS" HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Group",0x00000000,"NDIS"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ImagePath",0x00020000,"system32\drivers\ne2000.sys" HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ImagePath",0x00020000,"system32\drivers\ne2000.sys"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Start",0x00010001,0x00000003 HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Start",0x00010001,0x00000003
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Type",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Type",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Test",0x00010001,0xbaadf00d HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Test",0x00010001,0xbaadf00d
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Route",0x00000000,"Ne20001" HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Route",0x00000000,"Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Linkage","Bind",0x00010000,"\Device\Ne20001" HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Linkage","Bind",0x00010000,"\Device\Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Linkage","Export",0x00010000,"\Device\Ne20001" HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Linkage","Export",0x00010000,"\Device\Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Linkage","Route",0x00010000,"Ne20001" HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Linkage","Route",0x00010000,"Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Enum","0",0x00000000,"Root\POSVPN\0000" HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Enum","0",0x00000000,"Root\POSVPN\0000"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Enum","Count",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Enum","Count",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Enum","NextInstance",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000\Enum","NextInstance",0x00010001,0x00000001
; one day this will happen automatically; until then we need this since ndis5 drivers ; one day this will happen automatically; until then we need this since ndis5 drivers
; rely on the fact that their resources are handed to them by ndis, so we have to find ; rely on the fact that their resources are handed to them by ndis, so we have to find
@ -255,65 +254,25 @@ HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Type",0x00010001,0x00000001
; for the parent driver plus a globally-increasing serial number (i.e. across all ndis miniports) ; for the parent driver plus a globally-increasing serial number (i.e. across all ndis miniports)
; TODO: create this with NDI ; TODO: create this with NDI
; NE2000 Adapter 1 ; NE2000 Adapter 1
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","ErrorControl",0x00010001,0x00000001 HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","ErrorControl",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Start",0x00010001,0x00000003 HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Start",0x00010001,0x00000003
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Type",0x00010001,0x00000004 HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Type",0x00010001,0x00000004
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Linkage","Bind",0x00010000,"\Device\Ne20001" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Linkage","Bind",0x00010000,"\Device\Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Linkage","Export",0x00010000,"\Device\Ne20001" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Linkage","Export",0x00010000,"\Device\Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Linkage","Route",0x00010000,"Ne20001" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Linkage","Route",0x00010000,"Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Port",0x00000000,"280" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Port",0x00000000,"280"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Irq",0x00000000,"9" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Irq",0x00000000,"9"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","DwordTest",0x00000000,"baadf00d" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","DwordTest",0x00000000,"baadf00d"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","StringTest",0x00000000,"StringTest" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","StringTest",0x00000000,"StringTest"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","NetworkAddress",0x00000000,"001122334455" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","NetworkAddress",0x00000000,"001122334455"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","DefaultGateway",0x00010000,"10.0.0.1" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","DefaultGateway",0x00010000,"10.0.0.1"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","IPAddress",0x00010000,"10.0.0.100" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","IPAddress",0x00010000,"10.0.0.100"
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0" HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0"
; AMD PCNet NIC driver ; AMD PCNet NIC driver
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Group",0x00000000,"NDIS"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ImagePath",0x00020000,"system32\drivers\pcntn5m.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Start",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Type",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Bind",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Export",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Route",0x00010000,"PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Enum","0",0x00000000,"PCI\VEN_1022&DEV_2000\0000"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Enum","Count",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Enum","NextInstance",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","Service",0x00000000,"PCNet"
HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","Class",0x00000000,"Net"
HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","ClassGUID",0x00000000,"{4D36E972-E325-11CE-BFC1-08002BE10318}"
; AMD PCNet Adapter 1
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Start",0x00010001,0x00000003
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Type",0x00010001,0x00000004
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Bind",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Export",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Route",0x00010000,"PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BUS_TO_SCAN",0x00000000,"ALL"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BUSTIMER",0x00000000,"0"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BUSTYPE",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","EXTPHY",0x00000000,"0"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","FDUP",0x00000000,"0"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED0",0x00000000,"10000"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED1",0x00000000,"10000"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED2",0x00000000,"10000"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED3",0x00000000,"10000"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","MPMODE",0x00000000,"0"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","TP",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","SlotNumber",0x00000000,"10"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BusNumber",0x00000000,"0"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","DefaultGateway",0x00010000,"10.1.0.1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","IPAddress",0x00010000,"10.1.0.100"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0"
; ReactOS PCNet Driver
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ErrorControl",0x00010001,0x00000001 ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ErrorControl",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Group",0x00000000,"NDIS" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Group",0x00000000,"NDIS"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ImagePath",0x00020000,"system32\drivers\pcnet.sys" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ImagePath",0x00020000,"system32\drivers\pcntn5m.sys"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Start",0x00010001,0x00000003 ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Start",0x00010001,0x00000003
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Type",0x00010001,0x00000001 ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Type",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Bind",0x00010000,"\Device\PCNet1" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Bind",0x00010000,"\Device\PCNet1"
@ -326,19 +285,59 @@ HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","SubnetMask",0x
;HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","Class",0x00000000,"Net" ;HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","Class",0x00000000,"Net"
;HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","ClassGUID",0x00000000,"{4D36E972-E325-11CE-BFC1-08002BE10318}" ;HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","ClassGUID",0x00000000,"{4D36E972-E325-11CE-BFC1-08002BE10318}"
; PCNet Adapter 1 ; AMD PCNet Adapter 1
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","ErrorControl",0x00010001,0x00000001 ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","ErrorControl",0x00010001,0x00000001
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Start",0x00010001,0x00000003 ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Start",0x00010001,0x00000003
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Type",0x00010001,0x00000004 ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Type",0x00010001,0x00000004
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Bind",0x00010000,"\Device\PCNet1" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Bind",0x00010000,"\Device\PCNet1"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Export",0x00010000,"\Device\PCNet1" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Export",0x00010000,"\Device\PCNet1"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Route",0x00010000,"PCNet1" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Route",0x00010000,"PCNet1"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BUS_TO_SCAN",0x00000000,"ALL"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BUSTIMER",0x00000000,"0"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BUSTYPE",0x00000000,"5"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","EXTPHY",0x00000000,"0"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","FDUP",0x00000000,"0"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED0",0x00000000,"10000"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED1",0x00000000,"10000"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED2",0x00000000,"10000"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","LED3",0x00000000,"10000"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","MPMODE",0x00000000,"0"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","TP",0x00000000,"1"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","SlotNumber",0x00000000,"10" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","SlotNumber",0x00000000,"10"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BusNumber",0x00000000,"0" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BusNumber",0x00000000,"0"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","DefaultGateway",0x00010000,"10.1.0.1" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","DefaultGateway",0x00010000,"10.1.0.1"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","IPAddress",0x00010000,"10.1.0.100" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","IPAddress",0x00010000,"10.1.0.100"
;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0" ;HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0"
; ReactOS PCNet Driver
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Group",0x00000000,"NDIS"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","ImagePath",0x00020000,"system32\drivers\pcnet.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Start",0x00010001,0x00000003
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet","Type",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Bind",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Export",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Linkage","Route",0x00010000,"PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Enum","0",0x00000000,"PCI\VEN_1022&DEV_2000\0000"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Enum","Count",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet\Enum","NextInstance",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","Service",0x00000000,"PCNet"
HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","Class",0x00000000,"Net"
HKLM,"SYSTEM\CurrentControlSet\Enum\PCI\VEN_1022&DEV_2000&SUBSYS_20001022&REV_10\0000","ClassGUID",0x00000000,"{4D36E972-E325-11CE-BFC1-08002BE10318}"
; PCNet Adapter 1
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","ErrorControl",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Start",0x00010001,0x00000003
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1","Type",0x00010001,0x00000004
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Bind",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Export",0x00010000,"\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Linkage","Route",0x00010000,"PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","SlotNumber",0x00000000,"10"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters","BusNumber",0x00000000,"0"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","DefaultGateway",0x00010000,"10.1.0.1"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","IPAddress",0x00010000,"10.1.0.100"
HKLM,"SYSTEM\CurrentControlSet\Services\PCNet1\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0"
; Named Pipe filesystem driver ; Named Pipe filesystem driver
HKLM,"SYSTEM\CurrentControlSet\Services\Npfs","ErrorControl",0x00010001,0x00000000 HKLM,"SYSTEM\CurrentControlSet\Services\Npfs","ErrorControl",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\Npfs","Group",0x00000000,"File System" HKLM,"SYSTEM\CurrentControlSet\Services\Npfs","Group",0x00000000,"File System"
@ -429,12 +428,12 @@ HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip","Type",0x00010001,0x00000001
; These bindings are of the windows 2000 type, and will probably need to be ; These bindings are of the windows 2000 type, and will probably need to be
; twiddled to get 3rd-party network-related software to work. ; twiddled to get 3rd-party network-related software to work.
; NT4 puts additional stuff in the Bind, Export, and Route values. ; NT4 puts additional stuff in the Bind, Export, and Route values.
;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Bind",0x00010000,"\Device\PCNet1", "\Device\Ne20001" ;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Bind",0x00010000,"\Device\PCNet1", "\Device\Ne20001", "\Device\PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Bind",0x00010000, "\Device\PCNet1" HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Bind",0x00010000, "\Device\Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Export",0x00010000,"\Device\Tcpip_PCNet1", "\Device\Tcpip_Ne20001" ;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Export",0x00010000,"\Device\Tcpip_PCNet1", "\Device\Tcpip_Ne20001", "\Device\Tcpip_PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Export",0x00010000, "\Device\Tcpip_PCNet1" HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Export",0x00010000, "\Device\Tcpip_Ne20001"
;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Route",0x00010000,"PCNet1", "Ne20001" ;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Route",0x00010000,"PCNet1", "Ne20001", "PCNet1"
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Route",0x00010000,"PCNet1" HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Route",0x00010000,"Ne20001"
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","DataBasePath",0x00000000,"DataBasePath" HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","DataBasePath",0x00000000,"DataBasePath"
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","Domain",0x00000000,"" HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","Domain",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","Hostname",0x00000000,"ROSHost" HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","Hostname",0x00000000,"ROSHost"

View file

@ -1576,6 +1576,8 @@ struct _SYSTEM_QUOTA_INFORMATION
/* object information class */ /* object information class */
#ifndef __USE_W32API
typedef enum _OBJECT_INFORMATION_CLASS typedef enum _OBJECT_INFORMATION_CLASS
{ {
ObjectBasicInformation, ObjectBasicInformation,
@ -1594,6 +1596,7 @@ typedef struct _DIRECTORY_BASIC_INFORMATION
UNICODE_STRING ObjectTypeName; // Directory, Device ... UNICODE_STRING ObjectTypeName; // Directory, Device ...
} DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION; } DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION;
#endif /* __USE_W32API */
/* /*
Action is one of the following values: Action is one of the following values:

View file

@ -590,7 +590,7 @@ RtlpGetRegistryHandle(ULONG RelativeTo,
if (RelativeTo & RTL_REGISTRY_HANDLE) if (RelativeTo & RTL_REGISTRY_HANDLE)
{ {
Status = NtDuplicateObject(NtCurrentProcess(), Status = ZwDuplicateObject(NtCurrentProcess(),
(HANDLE)Path, (HANDLE)Path,
NtCurrentProcess(), NtCurrentProcess(),
KeyHandle, KeyHandle,

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: io.h,v 1.36 2003/09/30 15:46:59 navaraf Exp $ /* $Id: io.h,v 1.37 2003/10/15 17:04:39 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -258,11 +258,7 @@ IopCreateDeviceNode(PDEVICE_NODE ParentNode,
PDEVICE_NODE *DeviceNode); PDEVICE_NODE *DeviceNode);
NTSTATUS NTSTATUS
IopFreeDeviceNode(PDEVICE_NODE DeviceNode); IopFreeDeviceNode(PDEVICE_NODE DeviceNode);
NTSTATUS
IopInvalidateDeviceRelations(PDEVICE_NODE DeviceNode,
DEVICE_RELATION_TYPE Type);
VOID
IopLoadBootStartDrivers(VOID);
NTSTATUS NTSTATUS
IopCreateDriverObject(PDRIVER_OBJECT *DriverObject, IopCreateDriverObject(PDRIVER_OBJECT *DriverObject,
PUNICODE_STRING ServiceName, PUNICODE_STRING ServiceName,
@ -270,8 +266,6 @@ IopCreateDriverObject(PDRIVER_OBJECT *DriverObject,
PVOID DriverImageStart, PVOID DriverImageStart,
ULONG DriverImageSize); ULONG DriverImageSize);
NTSTATUS NTSTATUS
IopInitializeDeviceNodeService(PDEVICE_NODE DeviceNode);
NTSTATUS
IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry, IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry,
PDEVICE_NODE DeviceNode, PDEVICE_NODE DeviceNode,
BOOLEAN FileSystemDriver, BOOLEAN FileSystemDriver,
@ -385,4 +379,32 @@ NTSTATUS
PnpRootCreateDevice( PnpRootCreateDevice(
PDEVICE_OBJECT *PhysicalDeviceObject); PDEVICE_OBJECT *PhysicalDeviceObject);
/* driver.c */
VOID
IopInitializeBootDrivers(
VOID);
VOID
IopInitializeSystemDrivers(
VOID);
NTSTATUS
IopInitializeDeviceNodeService(
PDEVICE_NODE DeviceNode,
BOOLEAN BootDriverOnly);
/* pnpmgr.c */
NTSTATUS
IopInitializePnpServices(
IN PDEVICE_NODE DeviceNode,
IN BOOLEAN BootDrivers);
NTSTATUS
IopInvalidateDeviceRelations(
IN PDEVICE_NODE DeviceNode,
IN DEVICE_RELATION_TYPE Type,
IN BOOLEAN BootDriver);
#endif #endif

View file

@ -31,6 +31,11 @@
/* INTERNAL KERNEL FUNCTIONS ************************************************/ /* INTERNAL KERNEL FUNCTIONS ************************************************/
#ifdef __USE_W32API
struct _KPROCESS* KeGetCurrentProcess(VOID);
VOID KeSetGdtSelector(ULONG Entry, ULONG Value1, ULONG Value2);
#endif
#ifndef __ASM__ #ifndef __ASM__
struct _KTHREAD; struct _KTHREAD;

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: ps.h,v 1.52 2003/08/19 23:59:08 dwelch Exp $ /* $Id: ps.h,v 1.53 2003/10/15 17:04:39 navaraf Exp $
* *
* FILE: ntoskrnl/ke/kthread.c * FILE: ntoskrnl/ke/kthread.c
* PURPOSE: Process manager definitions * PURPOSE: Process manager definitions
@ -43,7 +43,7 @@ struct _KTRAPFRAME;
#include <internal/mm.h> #include <internal/mm.h>
#include <napi/teb.h> #include <napi/teb.h>
#ifndef __USE_W32API #ifndef KeGetCurrentProcessorNumber
#define KeGetCurrentProcessorNumber() (KeGetCurrentKPCR()->ProcessorNumber) #define KeGetCurrentProcessorNumber() (KeGetCurrentKPCR()->ProcessorNumber)
#endif #endif

View file

@ -1,4 +1,4 @@
/* $Id: device.c,v 1.62 2003/09/30 15:46:59 navaraf Exp $ /* $Id: device.c,v 1.63 2003/10/15 17:04:39 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -424,23 +424,12 @@ IopInitializeDevice(PDEVICE_NODE DeviceNode,
{ {
DPRINT("Bus extender found\n"); DPRINT("Bus extender found\n");
/* Status = IopInvalidateDeviceRelations(
* Don't initialize boot bus drivers here, because DeviceNode, BusRelations, BootDriver);
* it will not be able to load the required drivers if (!NT_SUCCESS(Status))
* for the devices found.
*
* FiN
*/
if (!BootDriver)
{ {
Status = IopInvalidateDeviceRelations( ObDereferenceObject(Fdo);
DeviceNode, BusRelations); return(Status);
/* IopInterrogateBusExtender(DeviceNode, Fdo); */
if (!NT_SUCCESS(Status))
{
ObDereferenceObject(Fdo);
return(Status);
}
} }
} }
else if (Fdo->DeviceType == FILE_DEVICE_ACPI) else if (Fdo->DeviceType == FILE_DEVICE_ACPI)
@ -496,119 +485,13 @@ IopInitializeService(
} }
} else } else
{ {
/* FIXME: This doesn't work for two devices with the same driver */
Status = IopInitializeDevice(DeviceNode, FALSE); Status = IopInitializeDevice(DeviceNode, FALSE);
} }
return(Status); return(Status);
} }
NTSTATUS
IopInitializeDeviceNodeService(PDEVICE_NODE DeviceNode)
{
#if 1
RTL_QUERY_REGISTRY_TABLE QueryTable[2];
UNICODE_STRING ImagePath;
NTSTATUS Status;
WCHAR FullImagePathBuffer[MAX_PATH];
UNICODE_STRING FullImagePath;
CHAR TextBuffer [256];
ULONG x, y, cx, cy;
RtlZeroMemory(QueryTable, sizeof(QueryTable));
RtlInitUnicodeString(&ImagePath, NULL);
QueryTable[0].Name = L"ImagePath";
QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
QueryTable[0].EntryContext = &ImagePath;
Status = RtlQueryRegistryValues(RTL_REGISTRY_SERVICES,
DeviceNode->ServiceName.Buffer,
QueryTable,
NULL,
NULL);
DPRINT("RtlQueryRegistryValues() returned status %x\n", Status);
if (NT_SUCCESS(Status))
{
DPRINT("Got ImagePath %S\n", ImagePath.Buffer);
if (ImagePath.Buffer[0] != L'\\')
{
wcscpy(FullImagePathBuffer, L"\\SystemRoot\\");
wcscat(FullImagePathBuffer, ImagePath.Buffer);
}
else
{
wcscpy(FullImagePathBuffer, ImagePath.Buffer);
}
RtlFreeUnicodeString(&ImagePath);
RtlInitUnicodeString(&FullImagePath, FullImagePathBuffer);
HalQueryDisplayParameters(&x, &y, &cx, &cy);
RtlFillMemory(TextBuffer, x, ' ');
TextBuffer[x] = '\0';
HalSetDisplayParameters(0, y-1);
HalDisplayString(TextBuffer);
sprintf(TextBuffer, "PnP Loading %S...\n", DeviceNode->ServiceName.Buffer);
HalSetDisplayParameters(0, y-1);
HalDisplayString(TextBuffer);
HalSetDisplayParameters(cx, cy);
Status = IopInitializeService(DeviceNode, &FullImagePath);
}
return(Status);
#else
RTL_QUERY_REGISTRY_TABLE QueryTable[2];
UNICODE_STRING ImagePath;
HANDLE KeyHandle;
NTSTATUS Status;
Status = RtlpGetRegistryHandle(
RTL_REGISTRY_SERVICES,
DeviceNode->ServiceName.Buffer,
TRUE,
&KeyHandle);
if (!NT_SUCCESS(Status))
{
DPRINT("RtlpGetRegistryHandle() failed (Status %x)\n", Status);
return(Status);
}
RtlZeroMemory(QueryTable, sizeof(QueryTable));
RtlInitUnicodeString(&ImagePath, NULL);
QueryTable[0].Name = L"ImagePath";
QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT;
QueryTable[0].EntryContext = &ImagePath;
Status = RtlQueryRegistryValues(RTL_REGISTRY_HANDLE,
(PWSTR)KeyHandle,
QueryTable,
NULL,
NULL);
NtClose(KeyHandle);
DPRINT("RtlQueryRegistryValues() returned status %x\n", Status);
if (NT_SUCCESS(Status))
{
DPRINT("Got ImagePath %S\n", ImagePath.Buffer);
Status = IopInitializeService(DeviceNode, &ImagePath);
RtlFreeUnicodeString(&ImagePath);
}
return(Status);
#endif
}
NTSTATUS NTSTATUS
IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry, IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry,
PDEVICE_NODE DeviceNode, PDEVICE_NODE DeviceNode,

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
/* $Id: iomgr.c,v 1.40 2003/10/12 17:05:45 hbirr Exp $ /* $Id: iomgr.c,v 1.41 2003/10/15 17:04:39 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -389,6 +389,14 @@ IoInit2(VOID)
CPRINT("IopInitializeDriver() failed with status (%x)\n", Status); CPRINT("IopInitializeDriver() failed with status (%x)\n", Status);
return; return;
} }
/*
* Initialize PnP root releations
*/
IopInvalidateDeviceRelations(
IopRootDeviceNode,
BusRelations,
TRUE);
} }
/* /*

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
/* $Id: main.c,v 1.174 2003/10/12 17:05:45 hbirr Exp $ /* $Id: main.c,v 1.175 2003/10/15 17:04:39 navaraf Exp $
* *
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
* FILE: ntoskrnl/ke/main.c * FILE: ntoskrnl/ke/main.c
@ -86,31 +86,6 @@ extern PVOID Ki386InitialStackArray[MAXIMUM_PROCESSORS];
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/
static BOOLEAN INIT_FUNCTION
RtlpCheckFileNameExtension(PCHAR FileName,
PCHAR Extension)
{
PCHAR Ext;
Ext = strrchr(FileName, '.');
if (Ext == NULL)
{
if ((Extension == NULL) || (*Extension == 0))
return TRUE;
else
return FALSE;
}
if (*Extension != '.')
Ext++;
if (_stricmp(Ext, Extension) == 0)
return TRUE;
else
return FALSE;
}
static VOID INIT_FUNCTION static VOID INIT_FUNCTION
InitSystemSharedUserPage (PCSZ ParameterLine) InitSystemSharedUserPage (PCSZ ParameterLine)
{ {
@ -289,25 +264,12 @@ InitSystemSharedUserPage (PCSZ ParameterLine)
} }
} }
VOID STATIC INIT_FUNCTION
MiFreeBootDriverMemory(PVOID StartAddress, ULONG Length)
{
ULONG i;
for (i = 0; i < PAGE_ROUND_UP(Length)/PAGE_SIZE; i++)
{
MmDeleteVirtualMapping(NULL, StartAddress + i * PAGE_SIZE, TRUE, NULL, NULL);
}
}
VOID INIT_FUNCTION VOID INIT_FUNCTION
ExpInitializeExecutive(VOID) ExpInitializeExecutive(VOID)
{ {
LARGE_INTEGER Timeout; LARGE_INTEGER Timeout;
HANDLE ProcessHandle; HANDLE ProcessHandle;
HANDLE ThreadHandle; HANDLE ThreadHandle;
ULONG BootDriverCount;
ULONG i; ULONG i;
ULONG start; ULONG start;
ULONG length; ULONG length;
@ -658,42 +620,10 @@ ExpInitializeExecutive(VOID)
IoInit2(); IoInit2();
/* Pass 3: process boot loaded drivers */ /*
BootDriverCount = 0; * Load boot start drivers
for (i=1; i < KeLoaderBlock.ModsCount; i++) */
{ IopInitializeBootDrivers();
start = KeLoaderModules[i].ModStart;
length = KeLoaderModules[i].ModEnd - start;
name = (PCHAR)KeLoaderModules[i].String;
if (RtlpCheckFileNameExtension(name, ".sys") ||
RtlpCheckFileNameExtension(name, ".sym"))
{
CPRINT("Initializing driver '%s' at %08lx, length 0x%08lx\n",
name, start, length);
LdrInitializeBootStartDriver((PVOID)start, name, length);
}
if (RtlpCheckFileNameExtension(name, ".sys"))
BootDriverCount++;
}
/* Pass 4: free memory for all boot files, except ntoskrnl.exe and hal.dll */
for (i = 2; i < KeLoaderBlock.ModsCount; i++)
{
#ifdef KDBG
/* Do not free the memory from symbol files, if the kernel debugger is active */
if (!RtlpCheckFileNameExtension(name, ".sym"))
#endif
{
MiFreeBootDriverMemory((PVOID)KeLoaderModules[i].ModStart,
KeLoaderModules[i].ModEnd - KeLoaderModules[i].ModStart);
}
}
if (BootDriverCount == 0)
{
DbgPrint("No boot drivers available.\n");
KEBUGCHECK(0);
}
/* Display the boot screen image if not disabled */ /* Display the boot screen image if not disabled */
if (!NoBootScreen) if (!NoBootScreen)
@ -723,14 +653,14 @@ ExpInitializeExecutive(VOID)
PiInitDefaultLocale(); PiInitDefaultLocale();
/* /*
* Load boot start drivers * Load services for devices found by PnP manager
*/ */
IopLoadBootStartDrivers(); IopInitializePnpServices(IopRootDeviceNode, FALSE);
/* /*
* Load Auto configured drivers * Load system start drivers
*/ */
LdrLoadAutoConfigDrivers(); IopInitializeSystemDrivers();
IoDestroyDriverList(); IoDestroyDriverList();
@ -863,7 +793,6 @@ KiSystemStartup(BOOLEAN BootProcessor)
for(;;); for(;;);
} }
VOID INIT_FUNCTION VOID INIT_FUNCTION
_main (ULONG MultiBootMagic, PLOADER_PARAMETER_BLOCK _LoaderBlock) _main (ULONG MultiBootMagic, PLOADER_PARAMETER_BLOCK _LoaderBlock)
/* /*

View file

@ -1,4 +1,4 @@
/* $Id: loader.c,v 1.136 2003/10/12 17:05:45 hbirr Exp $ /* $Id: loader.c,v 1.137 2003/10/15 17:04:39 navaraf Exp $
* *
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -940,7 +940,12 @@ LdrPEProcessModule(PVOID ModuleLoadBase,
CPRINT("Failed to allocate a virtual section for driver\n"); CPRINT("Failed to allocate a virtual section for driver\n");
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
} }
#if 0
DbgPrint("DriverBase for %wZ: %x\n", FileName, DriverBase); DbgPrint("DriverBase for %wZ: %x\n", FileName, DriverBase);
#else
DbgPrint("DriverBase for %wZ", FileName);
DbgPrint(": %x\n", DriverBase);
#endif
CHECKPOINT; CHECKPOINT;
/* Copy headers over */ /* Copy headers over */
memcpy(DriverBase, ModuleLoadBase, PEOptionalHeader->SizeOfHeaders); memcpy(DriverBase, ModuleLoadBase, PEOptionalHeader->SizeOfHeaders);