load order

hi all,

can some one explain how windows decides the laod order of drivers.

Ok, within a goup there can be load orders specified, like upperFilters and
LowerFilters reg entries, but how are the boot time driver hierarchy
decided. Is it random, or predecided and hard coded?

Also, in legacy filters which attach to a specific driver, say an FS driver,
how are their load orders decided? based on nomencleature? a then b then
c…z?

bedanto

read this

http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q115486

it reads the registry key

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList
and decides what to load when according to the tag value

On 1/9/07, Bedanto wrote:
> hi all,
>
> can some one explain how windows decides the laod order of drivers.
>
>
> Ok, within a goup there can be load orders specified, like upperFilters and
> LowerFilters reg entries, but how are the boot time driver hierarchy
> decided. Is it random, or predecided and hard coded?
>
> Also, in legacy filters which attach to a specific driver, say an FS driver,
> how are their load orders decided? based on nomencleature? a then b then
> c…z?
>
>
> bedanto— Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256 To unsubscribe,
> visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer

that is fine, i had read this article before also…but it still doesnt
answer my question fully.

It says…

According to the ServiceGroupOrder, device drivers in the group “SCSI
class” load after all device drivers in the group “Primary disk” and before
device drivers in the group “SCSI CDROM class” load.

What i am curious to know is, if there are two drivers with
ServiceGroupOrder set to SCSI Class then how does the OS select which one to
load first? Is that random?

On 1/9/07, raj_r wrote:
>
> read this
>
> http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q115486
>
> it reads the registry key
>
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList
> and decides what to load when according to the tag value
>
>
> On 1/9/07, Bedanto wrote:
> > hi all,
> >
> > can some one explain how windows decides the laod order of drivers.
> >
> >
> > Ok, within a goup there can be load orders specified, like upperFilters
> and
> > LowerFilters reg entries, but how are the boot time driver hierarchy
> > decided. Is it random, or predecided and hard coded?
> >
> > Also, in legacy filters which attach to a specific driver, say an FS
> driver,
> > how are their load orders decided? based on nomencleature? a then b then
> > c…z?
> >
> >
> > bedanto— Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256 To unsubscribe,
> > visit the List Server section of OSR Online at
> > http://www.osronline.com/page.cfm?name=ListServer
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Tags. If we are referring only to legacy style driver loading and not on
demand PnP enumeration driven driver loading, then drivers in the same
group use their service tag value and the GroupOrderList entry for their
group to further refine load order. This is way old legacy NT4 stuff and
generally only affects when driver entry is called. Drivers (legacy or
boot load drivers) in the same group with the same tag value load in an
undefined order.


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Bedanto
Sent: Tuesday, January 09, 2007 10:53 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] load order

that is fine, i had read this article before also…but it still doesnt
answer my question fully.

It says…

According to the ServiceGroupOrder, device drivers in the group “SCSI
class” load after all device drivers in the group “Primary disk” and
before device drivers in the group “SCSI CDROM class” load.

What i am curious to know is, if there are two drivers with
ServiceGroupOrder set to SCSI Class then how does the OS select which
one to load first? Is that random?

On 1/9/07, raj_r wrote:

read this

http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q115486

it reads the registry key

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList
and decides what to load when according to the tag value

On 1/9/07, Bedanto < xxxxx@gmail.com mailto:xxxxx >
wrote:
> hi all,
>
> can some one explain how windows decides the laod order of drivers.
>
>
> Ok, within a goup there can be load orders specified, like
upperFilters and
> LowerFilters reg entries, but how are the boot time driver hierarchy
> decided. Is it random, or predecided and hard coded?
>
> Also, in legacy filters which attach to a specific driver, say an FS
driver,
> how are their load orders decided? based on nomencleature? a then b
then
> c…z?
>
>
> bedanto— Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256 To unsubscribe,
> visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 To unsubscribe, visit the
List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx>

Mark,

“in the same group with the same tag value load in an undefined order.”

What exactly does undefined mean? It is a computer program that loads a
driver, so how is specifically done!!! Are thre multiple threads
oading drivers together? So that within the group, which ever thread gts the
time slice to load off a driver finishes operations first?

I am curious!

amitr0

I mean it is not specified what the order is in that case. You could
test to determine what actually happens and decide that is the order,
but there is no guarantee that future OS releases will do the same
thing.


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of amitr0
Sent: Tuesday, January 09, 2007 11:22 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] load order

Mark,

“in the same group with the same tag value load in an undefined order.”

What exactly does undefined mean? It is a computer program that loads a
driver, so how is specifically done!!! Are thre multiple threads
oading drivers together? So that within the group, which ever thread gts
the time slice to load off a driver finishes operations first?

I am curious!

amitr0

— Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256 To unsubscribe, visit the
List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

> driver, so how is specifically done!!! Are thre multiple threads

oading drivers together?

In XP and later - yes.


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com