I am working on Dokan driver (only available open source project )… It has lots of problem that i have seen…I want to overcome those problem and want to re-implement that in KMDF. I have read on MSDN that KMDF can be used for any kind of software only driver… as i am not accessing any hardware to get content. It will not have any FAST IO stuff. It will work by getting content from user mode by using inverted call.
So my question is
Is it ok to go with KMDF…? Should i stick to WDM??
Is it possible to use METHOD_NEITHER to get buffer from User mode because i do not want to make extra copy of buffer by using METHOD_BUFFERED…??
if MEHTOD_NEITHER is not a good choice then …is it possible to copy MDL buffer to another MDL??
How to insure valid buffers…??
KMDF is not designed to facilitate file system development, so using KMDF
won’t make your life any easier (in fact, it would probably be more
complicated).
Implementing Dokan properly is a massive, complicated project (for example,
our implementation of FUSE for Windows is around 150,000 lines of code). You
can start by reading the Windows NT File System Internals book:
https://store.osr.com/product/osrs-classic-reprints-windows-nt-file-system-internals/
And the FASTFAT source from the WDK samples:
https://code.msdn.microsoft.com/windowshardware/Windows-8-Driver-Samples-5e1aa62e
The book and the sample ultimately contain answers to your additional
questions, though don’t expect the answers to come quickly. You need a
better fundamental understanding of the environment before you start
thinking about how you’re going to handle the I/O path optimally.
Good luck!
-scott
OSR
@OSRDrivers
wrote in message news:xxxxx@ntfsd…
I am working on Dokan driver (only available open source project )… It
has lots of problem that i have seen…I want to overcome those problem and
want to re-implement that in KMDF. I have read on MSDN that KMDF can be used
for any kind of software only driver… as i am not accessing any hardware to
get content. It will not have any FAST IO stuff. It will work by getting
content from user mode by using inverted call.
So my question is
Is it ok to go with KMDF…? Should i stick to WDM??
Is it possible to use METHOD_NEITHER to get buffer from User mode because i
do not want to make extra copy of buffer by using METHOD_BUFFERED…??
if MEHTOD_NEITHER is not a good choice then …is it possible to copy MDL
buffer to another MDL??
How to insure valid buffers…??