DiskDrive UpperFilter

Hi,

I’m trying to build a new UpperFilter for the DiskDrive class, and I’m currently testing it on Windows Vista 64-bit.

I’m using the KMDF Filter Driver from (http://www.osronline.com/article.cfm?id=446) as a starting point. I’ve added my filter to the list of UpperFilters for DiskDrive using devcon. The ServiceGroupOrder has the WdfLoadGroup in the 3rd position in the List.

My Windows Vista however BSODs immediately on startup. The error code is INACCESSIBLE_BOOT_DISK. The stack trace is

nt!DbgBreakPointWithStatus
nt!HeadlessDispatch+0x192
nt!KeEnterKernelDebugger+0x73b
nt!KeBugCheckEx+0x104
nt!FsRtlCreateSectionForDataScan+0x1759
nt!TmInitSystem+0xda49
nt!TmInitSystem+0xf9e4
nt!TmInitSystem+0x10d0c
nt!IoReplacePartitionUnit+0x1119
nt!ProbeForRead+0xbd3
nt!_misaligned_access+0x4e6

I’m not even seeing the breakpoint on DriverEntry.

It would be great if someone pointed me in the right direction.

Regards,
Mridul.

Typically this BSOD happens when the device name added to the
upperfilters can not be loaded for some reason.

Usual reasons include not copying it to the right place or not
creating the correct service entry in the registry. However, since
this 64-bit, there’s a pretty good chance that you’ve forgotten to
test-sign the driver. Since you installed the driver manually the
system doesn’t get to check for the driver being signed until you ask
it to boot from it - the system isn’t going to let you get around
signing that easily.

Mark.

At 23:20 14/04/2008, xxxxx@mediafour.com wrote:

Hi,

I’m trying to build a new UpperFilter for the DiskDrive class, and
I’m currently testing it on Windows Vista 64-bit.

I’m using the KMDF Filter Driver from
(http://www.osronline.com/article.cfm?id=446) as a starting point.
I’ve added my filter to the list of UpperFilters for DiskDrive using
devcon. The ServiceGroupOrder has the WdfLoadGroup in the 3rd
position in the List.

My Windows Vista however BSODs immediately on startup. The error
code is INACCESSIBLE_BOOT_DISK. The stack trace is

nt!DbgBreakPointWithStatus
nt!HeadlessDispatch+0x192
nt!KeEnterKernelDebugger+0x73b
nt!KeBugCheckEx+0x104
nt!FsRtlCreateSectionForDataScan+0x1759
nt!TmInitSystem+0xda49
nt!TmInitSystem+0xf9e4
nt!TmInitSystem+0x10d0c
nt!IoReplacePartitionUnit+0x1119
nt!ProbeForRead+0xbd3
nt!_misaligned_access+0x4e6

I’m not even seeing the breakpoint on DriverEntry.

It would be great if someone pointed me in the right direction.

Regards,
Mridul.

Good advice. In addition, the filter driver has to be loaded at boot time by
the boot loader - so it had better be boot start or it won’t be available
regardless of its signed/unsigned state.

On Tue, Apr 15, 2008 at 1:25 AM, Mark S. Edwards
wrote:

>
> Typically this BSOD happens when the device name added to the upperfilters
> can not be loaded for some reason.
>
> Usual reasons include not copying it to the right place or not creating
> the correct service entry in the registry. However, since this 64-bit,
> there’s a pretty good chance that you’ve forgotten to test-sign the driver.
> Since you installed the driver manually the system doesn’t get to check for
> the driver being signed until you ask it to boot from it - the system isn’t
> going to let you get around signing that easily.
>
> Mark.
>
>
>
> At 23:20 14/04/2008, xxxxx@mediafour.com wrote:
>
> > Hi,
> >
> > I’m trying to build a new UpperFilter for the DiskDrive class, and I’m
> > currently testing it on Windows Vista 64-bit.
> >
> > I’m using the KMDF Filter Driver from (
> > http://www.osronline.com/article.cfm?id=446) as a starting point. I’ve
> > added my filter to the list of UpperFilters for DiskDrive using devcon. The
> > ServiceGroupOrder has the WdfLoadGroup in the 3rd position in the List.
> >
> > My Windows Vista however BSODs immediately on startup. The error code is
> > INACCESSIBLE_BOOT_DISK. The stack trace is
> >
> > nt!DbgBreakPointWithStatus
> > nt!HeadlessDispatch+0x192
> > nt!KeEnterKernelDebugger+0x73b
> > nt!KeBugCheckEx+0x104
> > nt!FsRtlCreateSectionForDataScan+0x1759
> > nt!TmInitSystem+0xda49
> > nt!TmInitSystem+0xf9e4
> > nt!TmInitSystem+0x10d0c
> > nt!IoReplacePartitionUnit+0x1119
> > nt!ProbeForRead+0xbd3
> > nt!_misaligned_access+0x4e6
> >
> > I’m not even seeing the breakpoint on DriverEntry.
> >
> > It would be great if someone pointed me in the right direction.
> >
> > Regards,
> > Mridul.
> >
>
>
> —
> 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
>


Mark Roddy

Thank you for your replies.

The driver is signed. I can confirm that by placing the driver in the UpperFilters for the CD/DVD drives and stepping through the DriverEntry and AddDevice callback.

I had specified both boot start and demand start with the same BSOD for the driver.

I found the solution though. I was using the WDFFLTRINSTALL.exe specified in http://www.osronline.com/article.cfm?id=446. Since I changed the wdf coinstaller from wdfcoinstaller01000.dll to wdfcoinstaller01005.dll, I should have changed the ‘KmdfLibraryVersion = 1.0’ to ‘KmdfLibraryVersion = 1.5’. Once I changed that and used it to install the driver, everything is working fine.

Just an FYI to anyone with similar problems, it might be quicker to register the driver as an upperfilter using devcon.exe.

Thanks for your replies.

Regards,
Mridul.

You can’t actually ship a product with ‘use devcon’ as the installation
mechanism. For testing it’s fine.

On Tue, Apr 15, 2008 at 11:42 AM, wrote:

> Thank you for your replies.
>
> The driver is signed. I can confirm that by placing the driver in the
> UpperFilters for the CD/DVD drives and stepping through the DriverEntry and
> AddDevice callback.
>
> I had specified both boot start and demand start with the same BSOD for
> the driver.
>
> I found the solution though. I was using the WDFFLTRINSTALL.exe specified
> in http://www.osronline.com/article.cfm?id=446. Since I changed the wdf
> coinstaller from wdfcoinstaller01000.dll to wdfcoinstaller01005.dll, I
> should have changed the ‘KmdfLibraryVersion = 1.0’ to ‘KmdfLibraryVersion =
> 1.5’. Once I changed that and used it to install the driver, everything is
> working fine.
>
> Just an FYI to anyone with similar problems, it might be quicker to
> register the driver as an upperfilter using devcon.exe.
>
> Thanks for your replies.
>
> Regards,
> Mridul.
>
> —
> 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
>


Mark Roddy

And it’s not going to make the issue any better. Suck as it might, the
entire reason for the article and hokey installer is that there’s no other
way to get the WDF co-installer called during a class filter install.

We’ll look into the 1.0 vs 1.5 bug (that’s what we get for trying to be
helpful and autogenerate the INF stub).

-scott


Scott Noone
Software Engineer
OSR Open Systems Resources, Inc.
http://www.osronline.com

“Mark Roddy” wrote in message news:xxxxx@ntdev…
You can’t actually ship a product with ‘use devcon’ as the installation
mechanism. For testing it’s fine.

On Tue, Apr 15, 2008 at 11:42 AM, wrote:

Thank you for your replies.

The driver is signed. I can confirm that by placing the driver in the
UpperFilters for the CD/DVD drives and stepping through the DriverEntry and
AddDevice callback.

I had specified both boot start and demand start with the same BSOD for the
driver.

I found the solution though. I was using the WDFFLTRINSTALL.exe specified in
http://www.osronline.com/article.cfm?id=446. Since I changed the wdf
coinstaller from wdfcoinstaller01000.dll to wdfcoinstaller01005.dll, I
should have changed the ‘KmdfLibraryVersion = 1.0’ to ‘KmdfLibraryVersion =
1.5’. Once I changed that and used it to install the driver, everything is
working fine.

Just an FYI to anyone with similar problems, it might be quicker to register
the driver as an upperfilter using devcon.exe.

Thanks for your replies.

Regards,
Mridul.


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


Mark Roddy