Upper filter and INACCESSIBLE_BOOT_DEVICE bugcheck

Hello folks,

I was just playing with my upper filter, and set it to filter the “Disk drives” class.
It seems to work fine, but it gives me a bugcheck 7B when rebooting the machine.

Could it be that the system cannot load the filter, as its path is “\windows\system32\drivers\test.sys”?
Do I need to set the path to the native format, something as “\device\harddisk…”?

BTW, bugcheck data points to “\ArcName\multi(0)disk(0)rdisk(0)partition(1)”.

Also, is it necessary to set the “Group” registry key to “PnP Filter”?

Thanks in advance.

wrote in message news:xxxxx@ntdev…
> Could it be that the system cannot load the filter, as its path is
> “\windows\system32\drivers\test.sys”?

I suspect that the \windows is messing you up, try just:

“system32\drivers\test.sys”

(When in doubt just look at the ImagePath value for disk)

Also, make sure that you’re set to boot start.

-scott


Scott Noone
Consulting Associate
OSR Open Systems Resources, Inc.
http://www.osronline.com

wrote in message news:xxxxx@ntdev…
> Hello folks,
>
> I was just playing with my upper filter, and set it to filter the “Disk
> drives” class.
> It seems to work fine, but it gives me a bugcheck 7B when rebooting the
> machine.
>
> Could it be that the system cannot load the filter, as its path is
> “\windows\system32\drivers\test.sys”?
> Do I need to set the path to the native format, something as
> “\device\harddisk…”?
>
> BTW, bugcheck data points to
> “\ArcName\multi(0)disk(0)rdisk(0)partition(1)”.
>
> Also, is it necessary to set the “Group” registry key to “PnP Filter”?
>
> Thanks in advance.
>
>

xxxxx@yahoo.es wrote:

Hello folks,

I was just playing with my upper filter, and set it to filter the “Disk drives” class.
It seems to work fine, but it gives me a bugcheck 7B when rebooting the machine.

Could it be that the system cannot load the filter, as its path is “\windows\system32\drivers\test.sys”?
Do I need to set the path to the native format, something as “\device\harddisk…”?

There is no need for an absolute path. In fact, I recommend against
it. Just use “\SystemRoot\system32\drivers\test.sys”, or
“system32\drivers\test.sys”. If the service has the same name as the
driver binary (without the .sys), then you shouldn’t need an ImagePath
at all.

BTW, bugcheck data points to “\ArcName\multi(0)disk(0)rdisk(0)partition(1)”.

Also, is it necessary to set the “Group” registry key to “PnP Filter”?

Most of the Services values (including Group) are ignored for a filter
driver.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thanks guys, will try :slight_smile:

> Could it be that the system cannot load the filter, as its path is “\windows\system32\drivers\test.sys”?

ImagePath in the SC registry is not mandatory for drivers.

The default is \SystemRoot\system32\drivers\YourServiceName.sys, which is usually OK.

Also, is it necessary to set the “Group” registry key to “PnP Filter”?

No need. For anything PnP, it is ignored, just set the start type to Boot.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

Tried that, but i’m still getting the 7B bugcheck when booting, any ideas?

Your filter needs to be in the images loaded at bios level boot. So a) it
has to be boot start and b) it may need to be in the registry
CriticalDeviceDatabase. (a) is required, (b) perhaps not.

Mark Roddy

On Fri, Aug 20, 2010 at 4:27 AM, wrote:

> Tried that, but i’m still getting the 7B bugcheck when booting, any ideas?
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Is your filter loaded or not? You can check the loaded module list with lm
(lmv mtest).

-scott


Scott Noone
Consulting Associate
OSR Open Systems Resources, Inc.
http://www.osronline.com

wrote in message news:xxxxx@ntdev…
> Tried that, but i’m still getting the 7B bugcheck when booting, any ideas?
>

>Tried that, but i’m still getting the 7B bugcheck when booting, any ideas?

Put DbgBreakPoint in DriverEntry of your filter and see if the driver is loaded.
One reason of getting 7B bugcheck is delay of accessibility of booted disk. Check if your filter bring delay of processing IRP during the boot.

Igor Sharovar

No, my driver is not even loaded, DriverEntry is not entered.
I have also checked that the start type is boot.

I will try the CriticalDeviceDatabase setting during the weekend…

Thanks guys.

>may need to be in the registry CriticalDeviceDatabase. (a) is required, (b) perhaps not.

Not required at all. CriticalDeviceDatabase is a trivial replacement of \windows\inf directory for boot phase.

What is required (pre-Vista???) that the driver filename must be 8.3


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

Have you double checked to ensure that all requests are being forwarded through the filter? If not, the boot manager will not be able to access the system disk at all, which is usually on the disk with that ARC name.

What is LoadOrderGroup set to?

Max: yes, the driver is 8.3.

Sean: the filter is not even loaded, so I can’t see any request at all.

Eriksson: I didn’t set any group, is it mandatory for an upper filter?

Thanks guys.

There is not magic things here. If your stuff work fine without filter driver and doesn’t work with the filter it means you broke something. Try to test your stuff on check build version of Windows with enable debug messages. Test your stuff with the filter driver and without.You may see at least sequence of loading drivers and processing before crash.

Igor Sharovar

Did you set it to boot start?
Mark Roddy

On Sat, Aug 21, 2010 at 3:26 AM, wrote:

> Max: yes, the driver is 8.3.
>
> Sean: the filter is not even loaded, so I can’t see any request at all.
>
> Eriksson: I didn’t set any group, is it mandatory for an upper filter?
>
> Thanks guys.
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Yes, start type is set to boot (zero value in the registry).

The filter is attaching to disks drives (I try by pluggin some usb pen drive), but gives bugcheck when booting the machine. I am double checking that DriverEntry is not called, both with a breakpoint and debug trace messages.

Is it mandatory to install the filter with an INF file?

I have installed my driver with SC CREATE, specifying “kernel” as type and “boot” as start type, and then manually adding the name of the driver to the “Control\Class{guid}\UpperFilters” registry value, so there’s no “LEGACY_TEST” key under “CurrentControlSet\Enum\Root”.

Could it be the cause of my problem? If so, why does the filter work when I add new disk drives?

Thanks guys for your patience.

Ok, I tried to install my driver with an INF file, and it worked fine.

I should have tried this before asking, sorry for that and a huge thanks to all of you.

> What is LoadOrderGroup set to?

Ignored for PnP.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com