Re: FS Minifilters to sync with remote server



Take a look at the discussion about Feasibility: Virtual drive on this
newgroup. The Eldos stuff may be ok for you, otherwise this is a huge
project.


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply


"Holger Grund" <holger.grund@xxxxxxxxxxxxxxx> wrote in message
news:C3A7BA87-4988-4003-B4D0-88BD811BF3B1@xxxxxxxxxxxxxxxx
Hi everyone,

I'm trying to evaluate some options for a shell namespace extension that
for
reason you can't want me to explain pretends to be part of the file
system.
However, actually files are kept on a server with a private communication
protocol.

While I worked on compiler codegen and core OS-level development things
I'm
really not much of a driver guy and have virtually no experience with
Windows
filesystem drivers.

Anyway, I'd like to try some things out, specifically I'm thinking about
something like this. I'd have a directory as root of "my own file system"
somewhere. On that one, I'd set a reparse point. A minifilter would then
trap
create and close requests and somehow communicate with some user-mode code
to
hook into these operations.

Does that make at all sense (I have to admit I have not really written or
debugged a single line of code yet)?

What's no clear to me is how this reparsing actually works. Can I set the
reparse point just on the directory and then get a notification for files
below that path or do I have to set reparse points on all files? Or are
there
better options (e.g. creating a virtual drive for the work area and filter
all requests there)?

Ideally, when there is the first open request with read access, I'd like a
user-mode application to chime in, grab the file and then allow the create
to
complete. Accordingly, last close should propagate changes to the server.

Renames/moves should also be handled accordingly. Is there a problem when
request take a long time to complete (e.g. consider the user-mode app
would
show some GUI or something)? I take it, you can't have infinitely many
outstanding requests.

I see how someone with little Windows driver background shouldn't really
try
to do things himself. But then, I wonder whether I can come up with a
reasonably simple initial implementation (maybe just starting from a
sample)
as a proof-of-concept. Browsing of the MiniSpy sample it looks like it
shouldn't be too hard, but then I'm probably lacking some of the more
basic
concepts here and would appreciate some input.

Thanks
-hg




.



Relevant Pages

  • Re: Combining IoCsqRemoveNextIrp with own Cancellation Routine?
    ... Completion order is not defined in Windows, but reordering the requests after ... they were got to the driver and before they are actually executed is a VERY BAD ... idea for any driver with "serialized stream" semantics - TCP socket, ... Maxim Shatskih, Windows DDK MVP ...
    (microsoft.public.development.device.drivers)
  • Re: [PATCH 1/2] lld busy status exporting interface
    ... they detect busy state on its low-level device like host/bus/device. ... If the request stacking driver dispatches and submits requests to ... stacking driver can check it and stop dispatching requests if busy. ... Stacking drivers like request-based dm don't. ...
    (Linux-Kernel)
  • Re: Windows Update & System restore
    ... history" on the windows update page still lists the update. ... "phantom usage" relating to the unused portions of memory allocation ... the memory allocation requests that are issued by Windows components, ...
    (microsoft.public.windowsxp.general)
  • Re: Multimedia Timer
    ... First, as already observed, WIndows is *not* a real-time system, and 20ms events are ... Does the recipient of the serial port data need to receive one "chunk" ... delete buffer; ... That's because I need those 20ms delay between two requests. ...
    (microsoft.public.vc.mfc)
  • Re: which kind of driver to design for AoE protocol?
    ... With your idea of having requests distributed to ... We do have working ATA-over-Ethernet driver shipping. ... drivers have been very concerned about overlapping ... overlapping of CPU operations to really make things fly. ...
    (microsoft.public.development.device.drivers)