mirror of
https://github.com/reactos/reactos.git
synced 2024-12-27 09:34:43 +00:00
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:
parent
c44771a681
commit
5753152b64
13 changed files with 1510 additions and 1181 deletions
|
@ -1,3 +1,4 @@
|
|||
system32\drivers\pci.sys
|
||||
system32\drivers\scsiport.sys
|
||||
system32\drivers\atapi.sys
|
||||
system32\drivers\class2.sys
|
||||
|
|
|
@ -55,9 +55,8 @@ HKLM,"SYSTEM\CurrentControlSet\Control\ServiceGroupOrder","List",0x00010000, \
|
|||
"Video", \
|
||||
"File System", \
|
||||
"Event log", \
|
||||
"NDIS Wrapper" \
|
||||
"PNP_TDI", \
|
||||
"NDIS", \
|
||||
"PNP_TDI", \
|
||||
"TDI", \
|
||||
"Extended Base"
|
||||
|
||||
|
@ -94,15 +93,15 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management","Pagin
|
|||
; --------------------------- BUS drivers ---------------------------
|
||||
|
||||
; PCI driver
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","ErrorControl",0x00010001,0x00000000
|
||||
;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","Start",0x00010001,0x00000003
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Tag",0x00010001,0x00000002
|
||||
;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","Class",0x00000000,"Computer"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","ClassGUID",0x00000000,"{4D36E966-E325-11CE-BFC1-08002BE10318}"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Pci","ErrorControl",0x00010001,0x00000000
|
||||
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","Start",0x00010001,0x00000000
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Pci","Tag",0x00010001,0x00000002
|
||||
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","Class",0x00000000,"Computer"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Enum\Root\PCI\0000","ClassGUID",0x00000000,"{4D36E966-E325-11CE-BFC1-08002BE10318}"
|
||||
|
||||
; ----------------------- End of BUS drivers ------------------------
|
||||
|
||||
|
@ -220,28 +219,28 @@ HKLM,"SYSTEM\CurrentControlSet\Services\Msfs","Type",0x00010001,0x00000002
|
|||
|
||||
; NDIS driver - the only boot-start network driver
|
||||
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","Start",0x00010001,0x00000001
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Start",0x00010001,0x00000000
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ndis","Type",0x00010001,0x00000001
|
||||
|
||||
; NIC drivers are like any other drivers - but no card-specific info here. bind/route/export
|
||||
; 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
|
||||
; NE2000 NIC driver
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ErrorControl",0x00010001,0x00000001
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Group",0x00000000,"NDIS"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ImagePath",0x00020000,"system32\drivers\ne2000.sys"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Start",0x00010001,0x00000003
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Type",0x00010001,0x00000001
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Test",0x00010001,0xbaadf00d
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Route",0x00000000,"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","Route",0x00010000,"Ne20001"
|
||||
;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","NextInstance",0x00010001,0x00000001
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ErrorControl",0x00010001,0x00000001
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Group",0x00000000,"NDIS"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","ImagePath",0x00020000,"system32\drivers\ne2000.sys"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Start",0x00010001,0x00000003
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Type",0x00010001,0x00000001
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Test",0x00010001,0xbaadf00d
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne2000","Route",0x00000000,"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","Route",0x00010000,"Ne20001"
|
||||
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","NextInstance",0x00010001,0x00000001
|
||||
|
||||
; 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
|
||||
|
@ -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)
|
||||
; TODO: create this with NDI
|
||||
; NE2000 Adapter 1
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","ErrorControl",0x00010001,0x00000001
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Start",0x00010001,0x00000003
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Type",0x00010001,0x00000004
|
||||
;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","Route",0x00010000,"Ne20001"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Port",0x00000000,"280"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Irq",0x00000000,"9"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","DwordTest",0x00000000,"baadf00d"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","StringTest",0x00000000,"StringTest"
|
||||
;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","IPAddress",0x00010000,"10.0.0.100"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","ErrorControl",0x00010001,0x00000001
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Start",0x00010001,0x00000003
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001","Type",0x00010001,0x00000004
|
||||
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","Route",0x00010000,"Ne20001"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Port",0x00000000,"280"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","Irq",0x00000000,"9"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","DwordTest",0x00000000,"baadf00d"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters","StringTest",0x00000000,"StringTest"
|
||||
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","IPAddress",0x00010000,"10.0.0.100"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Ne20001\Parameters\Tcpip","SubnetMask",0x00010000,"255.255.255.0"
|
||||
|
||||
; 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","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","Type",0x00010001,0x00000001
|
||||
;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","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","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","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
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Npfs","ErrorControl",0x00010001,0x00000000
|
||||
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
|
||||
; twiddled to get 3rd-party network-related software to work.
|
||||
; 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"
|
||||
;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"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Route",0x00010000,"PCNet1", "Ne20001"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Route",0x00010000,"PCNet1"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Bind",0x00010000,"\Device\PCNet1", "\Device\Ne20001", "\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", "\Device\Tcpip_PCNet1"
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Export",0x00010000, "\Device\Tcpip_Ne20001"
|
||||
;HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Linkage","Route",0x00010000,"PCNet1", "Ne20001", "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","Domain",0x00000000,""
|
||||
HKLM,"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters","Hostname",0x00000000,"ROSHost"
|
||||
|
|
|
@ -1576,6 +1576,8 @@ struct _SYSTEM_QUOTA_INFORMATION
|
|||
|
||||
/* object information class */
|
||||
|
||||
#ifndef __USE_W32API
|
||||
|
||||
typedef enum _OBJECT_INFORMATION_CLASS
|
||||
{
|
||||
ObjectBasicInformation,
|
||||
|
@ -1594,6 +1596,7 @@ typedef struct _DIRECTORY_BASIC_INFORMATION
|
|||
UNICODE_STRING ObjectTypeName; // Directory, Device ...
|
||||
} DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION;
|
||||
|
||||
#endif /* __USE_W32API */
|
||||
|
||||
/*
|
||||
Action is one of the following values:
|
||||
|
|
|
@ -590,7 +590,7 @@ RtlpGetRegistryHandle(ULONG RelativeTo,
|
|||
|
||||
if (RelativeTo & RTL_REGISTRY_HANDLE)
|
||||
{
|
||||
Status = NtDuplicateObject(NtCurrentProcess(),
|
||||
Status = ZwDuplicateObject(NtCurrentProcess(),
|
||||
(HANDLE)Path,
|
||||
NtCurrentProcess(),
|
||||
KeyHandle,
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* 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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -258,11 +258,7 @@ IopCreateDeviceNode(PDEVICE_NODE ParentNode,
|
|||
PDEVICE_NODE *DeviceNode);
|
||||
NTSTATUS
|
||||
IopFreeDeviceNode(PDEVICE_NODE DeviceNode);
|
||||
NTSTATUS
|
||||
IopInvalidateDeviceRelations(PDEVICE_NODE DeviceNode,
|
||||
DEVICE_RELATION_TYPE Type);
|
||||
VOID
|
||||
IopLoadBootStartDrivers(VOID);
|
||||
|
||||
NTSTATUS
|
||||
IopCreateDriverObject(PDRIVER_OBJECT *DriverObject,
|
||||
PUNICODE_STRING ServiceName,
|
||||
|
@ -270,8 +266,6 @@ IopCreateDriverObject(PDRIVER_OBJECT *DriverObject,
|
|||
PVOID DriverImageStart,
|
||||
ULONG DriverImageSize);
|
||||
NTSTATUS
|
||||
IopInitializeDeviceNodeService(PDEVICE_NODE DeviceNode);
|
||||
NTSTATUS
|
||||
IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry,
|
||||
PDEVICE_NODE DeviceNode,
|
||||
BOOLEAN FileSystemDriver,
|
||||
|
@ -385,4 +379,32 @@ NTSTATUS
|
|||
PnpRootCreateDevice(
|
||||
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
|
||||
|
|
|
@ -31,6 +31,11 @@
|
|||
|
||||
/* INTERNAL KERNEL FUNCTIONS ************************************************/
|
||||
|
||||
#ifdef __USE_W32API
|
||||
struct _KPROCESS* KeGetCurrentProcess(VOID);
|
||||
VOID KeSetGdtSelector(ULONG Entry, ULONG Value1, ULONG Value2);
|
||||
#endif
|
||||
|
||||
#ifndef __ASM__
|
||||
|
||||
struct _KTHREAD;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* 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
|
||||
* PURPOSE: Process manager definitions
|
||||
|
@ -43,7 +43,7 @@ struct _KTRAPFRAME;
|
|||
#include <internal/mm.h>
|
||||
#include <napi/teb.h>
|
||||
|
||||
#ifndef __USE_W32API
|
||||
#ifndef KeGetCurrentProcessorNumber
|
||||
#define KeGetCurrentProcessorNumber() (KeGetCurrentKPCR()->ProcessorNumber)
|
||||
#endif
|
||||
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -424,23 +424,12 @@ IopInitializeDevice(PDEVICE_NODE DeviceNode,
|
|||
{
|
||||
DPRINT("Bus extender found\n");
|
||||
|
||||
/*
|
||||
* Don't initialize boot bus drivers here, because
|
||||
* it will not be able to load the required drivers
|
||||
* for the devices found.
|
||||
*
|
||||
* FiN
|
||||
*/
|
||||
if (!BootDriver)
|
||||
Status = IopInvalidateDeviceRelations(
|
||||
DeviceNode, BusRelations, BootDriver);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
Status = IopInvalidateDeviceRelations(
|
||||
DeviceNode, BusRelations);
|
||||
/* IopInterrogateBusExtender(DeviceNode, Fdo); */
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ObDereferenceObject(Fdo);
|
||||
return(Status);
|
||||
}
|
||||
ObDereferenceObject(Fdo);
|
||||
return(Status);
|
||||
}
|
||||
}
|
||||
else if (Fdo->DeviceType == FILE_DEVICE_ACPI)
|
||||
|
@ -496,119 +485,13 @@ IopInitializeService(
|
|||
}
|
||||
} else
|
||||
{
|
||||
/* FIXME: This doesn't work for two devices with the same driver */
|
||||
Status = IopInitializeDevice(DeviceNode, FALSE);
|
||||
}
|
||||
|
||||
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
|
||||
IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry,
|
||||
PDEVICE_NODE DeviceNode,
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -389,6 +389,14 @@ IoInit2(VOID)
|
|||
CPRINT("IopInitializeDriver() failed with status (%x)\n", Status);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize PnP root releations
|
||||
*/
|
||||
IopInvalidateDeviceRelations(
|
||||
IopRootDeviceNode,
|
||||
BusRelations,
|
||||
TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,7 +16,7 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* 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
|
||||
* FILE: ntoskrnl/ke/main.c
|
||||
|
@ -86,31 +86,6 @@ extern PVOID Ki386InitialStackArray[MAXIMUM_PROCESSORS];
|
|||
|
||||
/* 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
|
||||
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
|
||||
ExpInitializeExecutive(VOID)
|
||||
{
|
||||
LARGE_INTEGER Timeout;
|
||||
HANDLE ProcessHandle;
|
||||
HANDLE ThreadHandle;
|
||||
ULONG BootDriverCount;
|
||||
ULONG i;
|
||||
ULONG start;
|
||||
ULONG length;
|
||||
|
@ -658,42 +620,10 @@ ExpInitializeExecutive(VOID)
|
|||
|
||||
IoInit2();
|
||||
|
||||
/* Pass 3: process boot loaded drivers */
|
||||
BootDriverCount = 0;
|
||||
for (i=1; i < KeLoaderBlock.ModsCount; i++)
|
||||
{
|
||||
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);
|
||||
}
|
||||
/*
|
||||
* Load boot start drivers
|
||||
*/
|
||||
IopInitializeBootDrivers();
|
||||
|
||||
/* Display the boot screen image if not disabled */
|
||||
if (!NoBootScreen)
|
||||
|
@ -723,14 +653,14 @@ ExpInitializeExecutive(VOID)
|
|||
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();
|
||||
|
||||
|
@ -863,7 +793,6 @@ KiSystemStartup(BOOLEAN BootProcessor)
|
|||
for(;;);
|
||||
}
|
||||
|
||||
|
||||
VOID INIT_FUNCTION
|
||||
_main (ULONG MultiBootMagic, PLOADER_PARAMETER_BLOCK _LoaderBlock)
|
||||
/*
|
||||
|
|
|
@ -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
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -940,7 +940,12 @@ LdrPEProcessModule(PVOID ModuleLoadBase,
|
|||
CPRINT("Failed to allocate a virtual section for driver\n");
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
#if 0
|
||||
DbgPrint("DriverBase for %wZ: %x\n", FileName, DriverBase);
|
||||
#else
|
||||
DbgPrint("DriverBase for %wZ", FileName);
|
||||
DbgPrint(": %x\n", DriverBase);
|
||||
#endif
|
||||
CHECKPOINT;
|
||||
/* Copy headers over */
|
||||
memcpy(DriverBase, ModuleLoadBase, PEOptionalHeader->SizeOfHeaders);
|
||||
|
|
Loading…
Reference in a new issue