Thank you for the detailed answer it cleared some things for me.
Another thing which confuses me is from the article “What Happens to File Systems During System Boot” from IFS Kit.
"Drivers are loaded in order of the load order groups to which they are assigned. Among file system filters, those that are assigned to one of the new file system filter driver load order groups are loaded before all other filter drivers. These load order groups are described in detail in File System Filter Driver Load Order Groups.
Then all drivers in the “filter” load order group are loaded. Note that the “filter” group includes storage filter drivers as well as file system filter drivers, and it includes third-party as well as built-in filter drivers. "
As it comes from this statement my storage filter driver may be started later than FS filter drivers. Is this correct?
P.S. Originally my questions arised because I need to know if I can access a file system from my boot start storage filter driver. Probably it’s a bad idea because of possibility of infinite loops, however I consider it as one of the possibilities for my storage filter driver to work (I want to save settings in a file)
Thank you,
Roman
boot start drivers are loaded as part of the OS load (bootstrap ) mechanism before the OS is run. The service group and group order stuff determines load order (and driver entry invocation order) for boot start drivers and for other drivers that are not demand start. All non boot start pnp drivers are supposed to be demand start, so outside of boot start drivers the load order stuff really applies to legacy non-pnp nt4 style drivers.
AddDevice/StartDevice are invoked by the PnP manager as it sees fit, based on bus enumeration.
Your design should not depend on load order at all, with the exception that if you need to be present because you are part of the second phase of the boot process (i.e. when the boot filesystem is started) you are a boot start driver and you should set your service load type appropriately. Even then, within the set of legitimate boot start drivers, depending on load order is not a good idea.
Mark Roddy DDK MVP
Windows 2003/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Roman Kudinov
Sent: Wednesday, June 22, 2005 3:02 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] driver load and start order
Hi,
Can someone explain the order boot drivers are loaded and started?
Here is what IFS Kit says about driver loading
“On system boot, the OS loader loads the boot file system, the RAW file system, and all drivers of type SERVICE_BOOT_START BEFORE IT TRANSFERS CONTROL to the kernel. These drivers are in memory when the kernel gets control”
…
- The PnP Manager calls the DriverEntry routines of the RAW file system and all SERVICE_BOOT_START drivers.
If a SERVICE_BOOT_START driver is dependent on other drivers, those drivers are loaded and started as well."
I have a storage filter driver which has a type SERVICE_BOOT_START. Do I understand correctly that my storage filter will be in memory along with the boot file system and other boot drivers when the control is transferred to the kernel? What is the purpose of ServiceGroupOrder and GroupOrderList options if a driver doesn’t get control until all other boot drivers are loaded??? Are these values used to determine the order in which PnP maanger calls DriverEntry?
Do I miss something?
Thank you,
Roman
Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com