Question UMDF filter drivers

I’m not sure if there is a UMDF-dedicated list or not (?) so I’ll ask it
here. I’m trying to understand the behavior of UMDF filter drivers, but
the UMDF documentation doesn’t say much so it’s unclear to me. In the
“User-Mode Driver Framework: Windows Driver Kit” it states:

A driver stack cannot be split across processes. All function and filter
drivers for a given device must run in the same driver host process.

This means, I assume, that UMDF filter drivers can only be used for
devices entirely handled within UMDF and cannot be used to for a device
that has a kernel-mode driver? In other words, you can’t use a UMDF
filter driver to interact with a “real” file system (e.g., SCSI, ATAPI,
etc.)? By real here, I mean an actual file system that is handled by a
kernel-mode component like atapi.sys.

Thanks!

Yes and no.

All of the user-mode drivers for a device have to be in the same host,
and they have to be above all kernel-mode drivers for the device, but
you can have user and kernel drivers in the same device stack.

However UMDF drivers also cannot accept any kernel-mode I/O, so you
still can’t put UMDF filters into any sort of storage stack.

It’s not entirely clear what you want to do but since you’re talking
about storage I’m going to guess that UMDF isn’t an option right now.
You can access a storage device from your driver if you need to, but you
can’t be in the path of any storage I/O.

-p

PS: I’ll also point out (pedantically) that SCSI & ATAPI aren’t file
systems. They’re systems for accessing raw blocks of storage. The file
system is a layer on top of that. J

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Matthew Conover
Sent: Tuesday, November 28, 2006 4:42 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Question UMDF filter drivers

I’m not sure if there is a UMDF-dedicated list or not (?) so I’ll ask it
here. I’m trying to understand the behavior of UMDF filter drivers, but
the UMDF documentation doesn’t say much so it’s unclear to me. In the
“User-Mode Driver Framework: Windows Driver Kit” it states:

A driver stack cannot be split across processes. All function and filter
drivers for a given device must run in the same driver host process.

This means, I assume, that UMDF filter drivers can only be used for
devices entirely handled within UMDF and cannot be used to for a device
that has a kernel-mode driver? In other words, you can’t use a UMDF
filter driver to interact with a “real” file system (e.g., SCSI, ATAPI,
etc.)? By real here, I mean an actual file system that is handled by a
kernel-mode component like atapi.sys.

Thanks!


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 has a kernel-mode driver? In other words, you can’t use a UMDF

filter driver to interact with a “real” file system (e.g., SCSI, ATAPI,

Correct. UMDF drivers are for protocol-driven buses like USB, and cannot touch
the hardware directly - they can only submit the requests down.

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