if you want to load your driver on a boot device you need to set the
service start value to 0 (boot). Drivers cannot be demand started until
the storage stacks have been constructed (otherwise the boot loader
would need to bring in every single driver)
what’s happening is that PNP is putting off starting the volume device
stack because a necessary filter (yours) isn’t loaded yet. Since we
can’t read the boot volume the system bugchecks.
on the lighter side, this does imply that PNP understands it should be
loading your filter onto the stack 
-p
-----Original Message-----
From: Rajeev Rao [mailto:xxxxx@yahoo.co.in]
Sent: Wednesday, May 08, 2002 11:37 PM
To: NT Developers Interest List
Subject: [ntdev] RE: ftdisk and load order.
Thanks for the instructions. I’ve read the Document on Specifying load
order. However we still have problems.
As I mentioned earlier, we’re writing a lower filter
driver to the volumes provided by ftdisk. After
reading the Mr.Roddy’s instructions and the document i concluded that
only necessity was to set the my filter drivers starttype as demand
start. nothing else seemed to be required.
We then set our driver as the lower filter driver to
storage volume (using filterman from osr).
However when we boot we get the following error.
(Unhandled Kernel mode exception)
Error=7B (INACESSIBLE_BOOT_DEVICE) P1=F141B84C
P2=C000000E P3=0 P4=0
Parameter 1: Pointer to device object or UNICODE ARC
name = F141B84C
How should I proceed. Is there something wrong with my
driver?
Rajeev
From :Device Installation: Windows DDK
Specifying Driver Load Order
"To reinforce the importance of setting the correct
StartType value, the
following list describes how Setup and the PnP
Manager use the StartType
entries in INF files:
On system boot, the operating system loader loads
drivers of type
SERVICE_BOOT_START before it transfers control to
the kernel. These drivers
are in memory when the kernel gets control.
Boot-start drivers can use INF LoadOrderGroup
entries to order their
loading. (Boot-start drivers are loaded before most
of the devices are
configured, so their load order cannot be determined
by device hierarchy.)
The operating system ignores INF Dependencies
entries for boot-start
drivers.
The PnP Manager calls the DriverEntry routines of
the SERVICE_BOOT_START
drivers so the drivers can service the boot devices.
If a boot device has child devices, those devices
are enumerated. The child
devices are configured and started if their drivers
are also boot-start
drivers. If a device’s drivers are not all
boot-start drivers, the PnP
Manager creates a devnode for the device but does
not start the device yet.
After all the boot drivers have loaded and the boot
devices are started, the
PnP Manager configures the rest of the PnP devices
and loads their drivers.
The PnP Manager walks the device tree and loads the
drivers for the devnodes
that are not yet started (that is, any nonstarted
devnodes from the previous
step). As each device starts, the PnP Manager
enumerates the children of the
device, if any.
As it configures these devices, the PnP Manager
loads the drivers for the
devices, regardless of the drivers’ StartType
values, and starts the
devices. Many of these drivers are
SERVICE_DEMAND_START drivers, but they
can have any StartType.
The PnP Manager ignores registry entries that were
created as a result of
INF Dependencies entries and LoadOrderGroup entries
for drivers that it
loads in this step. The load ordering is based on
the physical device
hierarchy.
At the end of this step, all of the devices have
been configured, except
devices that are not PnP-enumerable and the
descendants of those devices.
(The descendants might or might not be
PnP-enumerable.)
The PnP Manager loads drivers of StartType SERVICE_SYSTEM_START that
are not yet loaded.
These drivers detect and report their nonPnP
devices. The PnP Manager
processes registry entries that are the result of
INF LoadOrderGroup entries
for these drivers. It ignores registry entries that
were created as a result
of INF Dependencies entries for these drivers.
The Service Control Manager loads drivers of
StartType SERVICE_AUTO_START
that are not yet loaded.
The Service Control Manager processes the service
database information with
respect to the services’ DependOnGroup and
DependOnServices. This
information is from Dependencies entries in INF
AddService entries. Note
that the Dependencies information is only processed
for nonPnP drivers
because any necessary PnP drivers were loaded in an
earlier step of system
startup. The Service Control Manager ignores INF
LoadOrderGroup information.
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf
Of Rajeev Rao
> Sent: Wednesday, May 08, 2002 12:28 PM
> To: NT Developers Interest List
> Subject: [ntdev] ftdisk and load order.
>
>
> Hi,
> I just don’t get this load order rationale.
After
> looking at the registry entries for ftdisk.sys,
I’m
> confused further.
>
> Ftdisk entry is as follows.
> Type=SERVICE_KERNEL_DRIVER
> Start=SYSTEM_BOOT_START
> Group=System Bus Extender
>
> 1. shouldn’t ftdisk have a dependancy on disk.sys?
Or
> are the two independent(not likely)?
>
> 2. I’ve noticed (win2k safemode) that ftdisk is
> actually loaded before disk. How is this possible?
>
> If I have to setup a filter to ftdisk volumes
(lower
> filter), should my filter driver load before or
after
> ftdisk. If after, should the driver load as
BOOT_START
> or SYSTEM_START.
>
> Finally, do i need to add some sort of dependancy?
>
> Rajeev
>
>
> __________
> For live cricket scores download Yahoo! Score
Tracker
> at:
http://in.sports.yahoo.com/cricket/tracker.html
>
> —
> You are currently subscribed to ntdev as:
> xxxxx@hollistech.com To unsubscribe send a blank
email to
> %%email.unsub%%
>
You are currently subscribed to ntdev as: xxxxx@yahoo.co.in
To unsubscribe send a blank email to
%%email.unsub%%
For live cricket scores download Yahoo! Score Tracker
at: http://in.sports.yahoo.com/cricket/tracker.html
You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to %%email.unsub%%