Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTFSD

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


activesync integration woes

Mark_CookMark_Cook Member Posts: 33
Hello all
we're experiencing problems with our a file system minifilter driver installed on an Exchange 2003 box. While the filter is running, active sync fails to synchronise but resumes as soon as our driver is unloaded. To try and eliminate the obvious we have developed a basic minifilter driver that does very little beyond retrieving the file name information and printing it to the deubg console but this also exhibits the same problem.

We can also reproduce the problem simply by running the Sysinternals process monitor tool on the Exchange server. Same thing happens - a number of .tmp files are queued up in the temp directory and stay there until we close the tool at which point synchronisation restarts and the .tmp files are dequeued.

Has anybody else experienced this problem ??

Regards

Mark

Comments

  • Doug_NDoug_N Member - All Emails Posts: 120
    Hi Mark --

    I've experienced exactly what you describe. Microsoft has a known issue
    involving ActiveSync and filter drivers, which you are exposing.

    http://www.osronline.com/showThread.cfm?link=192515

    http://support.microsoft.com/kb/2009604

    http://support.microsoft.com/?id=967479

    Doug


    -----Original Message-----
    From: [email protected]
    [mailto:[email protected]] On Behalf Of
    [email protected]
    Sent: Wednesday, November 02, 2011 4:31 PM
    To: Windows File Systems Devs Interest List
    Subject: [ntfsd] activesync integration woes

    Hello all
    we're experiencing problems with our a file system minifilter driver
    installed on an Exchange 2003 box. While the filter is running, active sync
    fails to synchronise but resumes as soon as our driver is unloaded. To try
    and eliminate the obvious we have developed a basic minifilter driver that
    does very little beyond retrieving the file name information and printing it
    to the deubg console but this also exhibits the same problem.

    We can also reproduce the problem simply by running the Sysinternals process
    monitor tool on the Exchange server. Same thing happens - a number of .tmp
    files are queued up in the temp directory and stay there until we close the
    tool at which point synchronisation restarts and the .tmp files are
    dequeued.

    Has anybody else experienced this problem ??

    Regards

    Mark



    ---
    NTFSD is sponsored by OSR

    For our schedule of debugging and file system 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

    __________ Information from ESET NOD32 Antivirus, version of virus signature
    database 6596 (20111102) __________

    The message was checked by ESET NOD32 Antivirus.

    http://www.eset.com
  • Mark_CookMark_Cook Member Posts: 33
    Hi Doug
    huge thanks for that. I've tried returning FLT_PREOP_SYNCHRONIZE from the preop to verify that this is the same issue and it works a treat.

    Just need to come up with a production quality solution now. I'm thinking along the lines of detecting the specific set of circumstances that lead to this problem (a file opened for asynchronous IO with a synchronous call to a subsequent operation) and returning FLT_PREOP_SYNCHRONIZE only when these criteria are met. Does this sound like a reasonable approach or can anybody suggest anything better ??

    Thanks again. I really appreciate this.

    Mark
  • Alex_CarpAlex_Carp Member Posts: 1,016
    Hi Mark,

    In my opinion the the best way would be to spend the time and find out which operation it is that is broken.

    However, your plan to only synchronize operations that aren't already synchronous doesn't really buy you much. If the operation is already synchronous then FLT_PREOP_SYNCHRONIZE doesn't add much overhead so it doesn't matter. So you could simply always return FLT_PREOP_SYNCHRONIZE instead of FLT_PREOP_SUCCESS_WITH_CALLBACK anyway for the operations that you want to synchronize, regardless of whether it was synchronous or not.

    Thanks,
    Alex.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 16-20 October 2023 Live, Online
Developing Minifilters 13-17 November 2023 Live, Online
Internals & Software Drivers 4-8 Dec 2023 Live, Online
Writing WDF Drivers 10-14 July 2023 Live, Online