Hi All,
Could any one give me pointer on “how to control load order of the drivers on different device stack”?
Thanks in advance.
Anand
You cannot control the load order if your driver is a PnP Driver since the
PnP Manager loads the driver only when the appropriate Bus Driver get
loaded and detects the device. Old style Drivers, i.e. non-pnp drivers,
load order can be control by load order group and order within that group.
–Mark
“xxxxx@juno.com” wrote in news:xxxxx@ntdev:
> Hi All,
> Could any one give me pointer on “how to control load order of the
> drivers on different device stack”? Thanks in advance.
> Anand
>
>
>
> Attachment decoded: untitled-2.txt
> ---- JWM J41c6.167eS.2781M
>
Hi All,
>
Could any one give me pointer on “how to control load order of the
> drivers on different device stack”?
Thanks in advance.
>
Anand
>
>
>
> Attachment decoded: untitled-3.htm
> ---- JWM J41c6.167eS.2781M–
> You cannot control the load order if your driver is a PnP Driver since the
PnP Manager loads the driver only when the appropriate Bus Driver get
loaded and detects the device. Old style Drivers, i.e. non-pnp drivers,
load order can be control by load order group and order within that group.
Mark (or someone else who knows), can you elaborate on the folowing: assume
we have
- a PnP .sys which has a non-PnP filter and/or a dependency to
.sys, which, in turn, has its group/tag, say, , ;
- there are at least two other non-PnP drivers in , namely
.sys and .sys with tags - 1
and + 1, respectively; for simplicity assume that these two are not
anyone’s dependencies;
- there also are non-empty groups and
, that sit … well, you got the idea, and all
drivers in each of these two groups are non-PnP.
All drivers mentioned above are marked kernel boot start.
What would the load order be?
In other words, how do PnP and non-PnP load hierarchies interact?
It’s pretty much clear how the PnP machinery works; the same is true about
the non-PnP group/tag algorithm; what if the two have to cooperate?
I’m too lazy to experiment myself, thanks in advance for saving me a couple
[of dozens of] BSODs.
Regards,
Alex Shvedov
----- Original Message -----
From: “Mark Cariddi”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Friday, September 09, 2005 8:46 AM
Subject: Re:[ntdev] Driver load order
> You cannot control the load order if your driver is a PnP Driver since the
> PnP Manager loads the driver only when the appropriate Bus Driver get
> loaded and detects the device. Old style Drivers, i.e. non-pnp drivers,
> load order can be control by load order group and order within that group.
>
> --Mark
>
>
> “xxxxx@juno.com” wrote in news:xxxxx@ntdev:
>
>> Hi All,
>> Could any one give me pointer on “how to control load order of the
>> drivers on different device stack”? Thanks in advance.
>> Anand
>>
>>
>>
>> Attachment decoded: untitled-2.txt
>> ---- JWM J41c6.167eS.2781M
>>Hi All,
>>Could any one give me pointer on “how to control load order of the
>> drivers on different device stack”?Thanks in advance.
>>Anand
>>
>>
>>
>> Attachment decoded: untitled-3.htm
>> ---- JWM J41c6.167eS.2781M–
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@bellsouth.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
Simply stated, drivers are not to be dependent on load order. This has been discussed here many times and a simple search should provide a lot of information. But, another good question is “what are you trying to do”?
–
The personal opinion of
Gary G. Little
wrote in message news:xxxxx@ntdev…
Hi All,
Could any one give me pointer on “how to control load order of the drivers on different device stack”?
Thanks in advance.
Anand
A PnP driver has to have a PnP filter, otherwise things are broken. At this
point the rest of your assumptions are nonsense.
–
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Remove StopSpam from the email to reply
“xxxxx@Home” wrote in message news:xxxxx@ntdev…
>> You cannot control the load order if your driver is a PnP Driver since
>> the
>> PnP Manager loads the driver only when the appropriate Bus Driver get
>> loaded and detects the device. Old style Drivers, i.e. non-pnp
>> drivers,
>> load order can be control by load order group and order within that
>> group.
> Mark (or someone else who knows), can you elaborate on the folowing:
> assume we have
>
> - a PnP .sys which has a non-PnP filter and/or a dependency to
> .sys, which, in turn, has its group/tag, say, ,
> ;
>
> - there are at least two other non-PnP drivers in , namely
> .sys and .sys with tags -
> 1 and + 1, respectively; for simplicity assume that these two are
> not anyone’s dependencies;
>
> - there also are non-empty groups and
> , that sit … well, you got the idea, and all
> drivers in each of these two groups are non-PnP.
>
> All drivers mentioned above are marked kernel boot start.
>
> What would the load order be?
>
> In other words, how do PnP and non-PnP load hierarchies interact?
> It’s pretty much clear how the PnP machinery works; the same is true about
> the non-PnP group/tag algorithm; what if the two have to cooperate?
>
> I’m too lazy to experiment myself, thanks in advance for saving me a
> couple [of dozens of] BSODs.
>
>
> Regards,
> Alex Shvedov
>
>
>
> ----- Original Message -----
> From: “Mark Cariddi”
> Newsgroups: ntdev
> To: “Windows System Software Devs Interest List”
> Sent: Friday, September 09, 2005 8:46 AM
> Subject: Re:[ntdev] Driver load order
>
>
>> You cannot control the load order if your driver is a PnP Driver since
>> the
>> PnP Manager loads the driver only when the appropriate Bus Driver get
>> loaded and detects the device. Old style Drivers, i.e. non-pnp
>> drivers,
>> load order can be control by load order group and order within that
>> group.
>>
>> --Mark
>>
>>
>> “xxxxx@juno.com” wrote in news:xxxxx@ntdev:
>>
>>> Hi All,
>>> Could any one give me pointer on “how to control load order of the
>>> drivers on different device stack”? Thanks in advance.
>>> Anand
>>>
>>>
>>>
>>> Attachment decoded: untitled-2.txt
>>> ---- JWM J41c6.167eS.2781M
>>>
Hi All,
>>>
Could any one give me pointer on “how to control load order of the
>>> drivers on different device stack”?
Thanks in advance.
>>>
Anand
>>>
>>>
>>>
>>> Attachment decoded: untitled-3.htm
>>> ---- JWM J41c6.167eS.2781M–
>>
>>
>> —
>> Questions? First check the Kernel Driver FAQ at
>> http://www.osronline.com/article.cfm?id=256
>>
>> You are currently subscribed to ntdev as: xxxxx@bellsouth.net
>> To unsubscribe send a blank email to xxxxx@lists.osr.com
>>
>
>
>
The latest beta WDK has a fairly clear description of the ordering
rules.
Note that dependencies in load ordering are IGNORED for boot/system
start devices. Non pnp drivers can continue to use NT4 load order rules,
but you have some confusion of NT4/Pnp drivers and you seem to want to
have a deterministic load ordering and that could be a problem.
Also note that for PnP drivers, loading refers simply to image load and
DriverEntry invocation. AddDevice/StartDevice occur based on PnP device
enumeration. If your bootstart PnP driver has its device enumerated in
the bootstart phase then AddDevice/StartDevice will get invoked,
otherwise they won’t.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@Home
Sent: Friday, September 09, 2005 10:43 AM
To: Windows System Software Devs Interest List
Subject: Re: Re:[ntdev] Driver load order
You cannot control the load order if your driver is a PnP Driver since
the
PnP Manager loads the driver only when the appropriate Bus Driver get
loaded and detects the device. Old style Drivers, i.e. non-pnp
drivers,
load order can be control by load order group and order within that
group.
Mark (or someone else who knows), can you elaborate on the folowing:
assume
we have
- a PnP .sys which has a non-PnP filter and/or a dependency to
.sys, which, in turn, has its group/tag, say, ,
;
- there are at least two other non-PnP drivers in , namely
.sys and .sys with tags
- 1
and + 1, respectively; for simplicity assume that these two are
not
anyone’s dependencies;
- there also are non-empty groups and
, that sit … well, you got the idea, and all
drivers in each of these two groups are non-PnP.
All drivers mentioned above are marked kernel boot start.
What would the load order be?
In other words, how do PnP and non-PnP load hierarchies interact?
It’s pretty much clear how the PnP machinery works; the same is true
about
the non-PnP group/tag algorithm; what if the two have to cooperate?
I’m too lazy to experiment myself, thanks in advance for saving me a
couple
[of dozens of] BSODs.
Regards,
Alex Shvedov
----- Original Message -----
From: “Mark Cariddi”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Friday, September 09, 2005 8:46 AM
Subject: Re:[ntdev] Driver load order
> You cannot control the load order if your driver is a PnP Driver since
the
> PnP Manager loads the driver only when the appropriate Bus Driver get
> loaded and detects the device. Old style Drivers, i.e. non-pnp
drivers,
> load order can be control by load order group and order within that
group.
>
> --Mark
>
>
> “xxxxx@juno.com” wrote in news:xxxxx@ntdev:
>
>> Hi All,
>> Could any one give me pointer on “how to control load order of the
>> drivers on different device stack”? Thanks in advance.
>> Anand
>>
>>
>>
>> Attachment decoded: untitled-2.txt
>> ---- JWM J41c6.167eS.2781M
>>Hi All,
>>Could any one give me pointer on “how to control load order of the
>> drivers on different device stack”?Thanks in advance.
>>Anand
>>
>>
>>
>> Attachment decoded: untitled-3.htm
>> ---- JWM J41c6.167eS.2781M–
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@bellsouth.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@stratus.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
> The latest beta WDK has a fairly clear description of the ordering
rules.
I did not look in it yet, thanks for the hint.
Note that dependencies in load ordering are IGNORED for boot/system
start devices.
drivers are not to be dependent on load order. This has been discussed
here many times
Not in this context, I gather. I did the serach, and I watched the related
thread that was here a while ago.
I can not say I understand this statement: “drivers are not to be dependent
on load order”.
Do you mean just that “if one.sys uses two.sys as a DLL, like disk.sys uses
classpnp.sys, then the load order is determined automatically”?
But what if one.sys builds an irp to a device created by some non-PnP,
NT4-styled two.sys, and does so in one.sys’s DriverEntry (read - early
enough)? Assume that all you have is two.sys’s binary and INF but not the
source so a conversion is not an option.
Is it possible to make sure that two.sys is loaded and enetered before the
same happens with one.sys?
When to load and enter one.sys is a PnP thing.
When to load and enter two.sys is not a PnP thing.
How will the two interact?
A PnP driver has to have a PnP filter
Correct, what I typed was not what I wanted, see above.
you seem to want to have a deterministic load ordering
and that could be a problem
No, I do not want it to be completely, 100% determenistic.
But, another good question is “what are you trying to do”?
Nothing special at this time, just to understand the relationship, if any,
between two unrelated protocols.
It’s a “what if”.
Regards,
Alex Shvedov
----- Original Message -----
From: “Roddy, Mark”
To: “Windows System Software Devs Interest List”
Sent: Friday, September 09, 2005 11:19 AM
Subject: RE: Re:[ntdev] Driver load order
The latest beta WDK has a fairly clear description of the ordering
rules.
Note that dependencies in load ordering are IGNORED for boot/system
start devices. Non pnp drivers can continue to use NT4 load order rules,
but you have some confusion of NT4/Pnp drivers and you seem to want to
have a deterministic load ordering and that could be a problem.
Also note that for PnP drivers, loading refers simply to image load and
DriverEntry invocation. AddDevice/StartDevice occur based on PnP device
enumeration. If your bootstart PnP driver has its device enumerated in
the bootstart phase then AddDevice/StartDevice will get invoked,
otherwise they won’t.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@Home
Sent: Friday, September 09, 2005 10:43 AM
To: Windows System Software Devs Interest List
Subject: Re: Re:[ntdev] Driver load order
> You cannot control the load order if your driver is a PnP Driver since
the
> PnP Manager loads the driver only when the appropriate Bus Driver get
> loaded and detects the device. Old style Drivers, i.e. non-pnp
drivers,
> load order can be control by load order group and order within that
group.
Mark (or someone else who knows), can you elaborate on the folowing:
assume
we have
- a PnP .sys which has a non-PnP filter and/or a dependency to
.sys, which, in turn, has its group/tag, say, ,
;
- there are at least two other non-PnP drivers in , namely
.sys and .sys with tags
- 1
and + 1, respectively; for simplicity assume that these two are
not
anyone’s dependencies;
- there also are non-empty groups and
, that sit … well, you got the idea, and all
drivers in each of these two groups are non-PnP.
All drivers mentioned above are marked kernel boot start.
What would the load order be?
In other words, how do PnP and non-PnP load hierarchies interact?
It’s pretty much clear how the PnP machinery works; the same is true
about
the non-PnP group/tag algorithm; what if the two have to cooperate?
I’m too lazy to experiment myself, thanks in advance for saving me a
couple
[of dozens of] BSODs.
Regards,
Alex Shvedov
----- Original Message -----
From: “Mark Cariddi”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Friday, September 09, 2005 8:46 AM
Subject: Re:[ntdev] Driver load order
> You cannot control the load order if your driver is a PnP Driver since
the
> PnP Manager loads the driver only when the appropriate Bus Driver get
> loaded and detects the device. Old style Drivers, i.e. non-pnp
drivers,
> load order can be control by load order group and order within that
group.
>
> --Mark
>
>
> “xxxxx@juno.com” wrote in news:xxxxx@ntdev:
>
>> Hi All,
>> Could any one give me pointer on “how to control load order of the
>> drivers on different device stack”? Thanks in advance.
>> Anand
>>
>>
>>
>> Attachment decoded: untitled-2.txt
>> ---- JWM J41c6.167eS.2781M
>>
Hi All,
>>
Could any one give me pointer on “how to control load order of the
>> drivers on different device stack”?
Thanks in advance.
>>
Anand
>>
>>
>>
>> Attachment decoded: untitled-3.htm
>> ---- JWM J41c6.167eS.2781M–
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@bellsouth.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@stratus.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
—
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
“xxxxx@Home” wrote in message news:xxxxx@ntdev…
> But what if one.sys builds an irp to a device created by some non-PnP,
> NT4-styled two.sys, and does so in one.sys’s DriverEntry (read - early
> enough)? Assume that all you have is two.sys’s binary and INF but not the
> source so a conversion is not an option.
>
> Is it possible to make sure that two.sys is loaded and enetered before the
> same happens with one.sys?
>
> When to load and enter one.sys is a PnP thing.
> When to load and enter two.sys is not a PnP thing.
> How will the two interact?
The two will interact poorly. You cannot guarantee that two.sys and
initialized before one.sys is loaded. Forget this approach.
–
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Remove StopSpam from the email to reply
> The two will interact poorly. You cannot guarantee that two.sys and
initialized before one.sys is loaded. Forget this approach.
As I already mentioned, it was a “what if” question.
Regards,
Alex Shvedov
----- Original Message -----
From: “Don Burn”
Newsgroups: ntdev
To: “Windows System Software Devs Interest List”
Sent: Friday, September 09, 2005 1:11 PM
Subject: Re:[ntdev] Re:Driver load order
>
> “xxxxx@Home” wrote in message news:xxxxx@ntdev…
>> But what if one.sys builds an irp to a device created by some non-PnP,
>> NT4-styled two.sys, and does so in one.sys’s DriverEntry (read - early
>> enough)? Assume that all you have is two.sys’s binary and INF but not
>> the source so a conversion is not an option.
>>
>> Is it possible to make sure that two.sys is loaded and enetered before
>> the same happens with one.sys?
>>
>> When to load and enter one.sys is a PnP thing.
>> When to load and enter two.sys is not a PnP thing.
>> How will the two interact?
>
> The two will interact poorly. You cannot guarantee that two.sys and
> initialized before one.sys is loaded. Forget this approach.
>
>
> –
> Don Burn (MVP, Windows DDK)
> Windows 2k/XP/2k3 Filesystem and Driver Consulting
> Remove StopSpam from the email to reply
>
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@bellsouth.net
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>