locked
Windows 7 - explorer.exe NotifyChangeDirectory RRS feed

  • Question

  • Windows 7 - explorer.exe NotifyChangeDirectory

    <Original title : explorer.exe NotifyChangeDirectory operation now taking long time>

    I am running windows 7 home premium.

    I have an application that programatically downloads files from a website and has been running sucessfully with no

    performance issues until recently when each individual file download time blew out to approximatle 10 seconds each.

    The same application running on another PC runs OK with each file taking about 1 second to download.

    I ran procmon and have narrowed this down to explorer.exe performing a NotifyChangeDirectory operation with

    result=SUCCESS and detail = Filter: FILE_NOTIFY_CHANGE_FILE_NAME, FILE_NOTIFY_CHANGE_ATTRIBUTES,

    FILE_NOTIFY_CHANGE_LAST_WRITE and showing a duration of arround 10 seconds each time it operates on the path where the path value is for the parent directory of the subdirectory where the downloaded files have been written by the application.

    I think the cause of this change in behavior may be related to having unsucesfully tried to download IE 11 which

    did not install to completion.  Could this download have modified the behaviour of explorer.exe?

    If so, how can I roll back to the previous configuration of explorer.exe?

    I have subsequently attempted to use windows update to install the pre-reqs listed on the MS support site for IE11 but the windows update service is broken, showing it is started in services, but reporting that it is not when I attempt to select update.

    I have tried several suggestions involving netstart frm cmd window that I have found by google search, but non of these resolve the problem.

    Tuesday, January 20, 2015 7:31 PM

Answers

  • Hi,

    For IE as example, you can find and delete the temporary files in  Internet Options\General\Delete... (just as I mentioned in my second reply), and I also suggest you check the location you mentioned the "parent directory of the subdirectory where the downloaded files have been written by the application" you found using process monitor.

    If I restore to the oldest system restore point showing on the list, will that restore older system restore points that I can then go back to?

    I don't quite understand what you mean, but I suggest you give a try using a restore point, If you're not satisfied with the restore point, you can undo the changes system restore makes.

    http://windows.microsoft.com/en-hk/windows/system-restore-faq#1TC=windows-7


    Yolanda Zhu
    TechNet Community Support

    • Proposed as answer by Roger Lu Sunday, February 1, 2015 8:31 AM
    • Marked as answer by Michael_LS Friday, February 6, 2015 7:31 AM
    Tuesday, January 27, 2015 8:25 AM

All replies

  • Hi,

    First for the update issue, I suggest you reset the windows update agent, then install updates again, check if issue persisits.

    You can refer to the following guide to use the Fixit or manually reset it

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

    Quote from https://msdn.microsoft.com/en-us/library/windows/desktop/aa364417(v=vs.85).aspx

    FILE_NOTIFY_CHANGE_LAST_WRITE
    0x00000010

    Any change to the last write-time of files in the watched directory or subtree causes a change notification wait operation to return. The operating system detects a change to the last write-time only when the file is written to the disk. For operating systems that use extensive caching, detection occurs only when the cache is sufficiently flushed.

    It seems that the detection is related with the cache, I suggest you check the parent directory of the subdirectory mentioned in process monitor, and check some cache settings in the application.

     


    Yolanda Zhu
    TechNet Community Support

    Wednesday, January 21, 2015 6:54 AM
  • Yolanda,

    Thanks for the quick response. Cache Settings in what application?  The application software I am using that does the file downloads did not change. 

    The problem started after I attempted to install IE11. This install failed. When I tried to follow the remediation suggested by article behind the link referenced by a desktop Icon created when the install failed I could not install the prerequisite updates because MS Update was now broken!

    I have tried the fixit utility. It is unable to fix the problem and suggests a few options like restoring files which I would do if I knew what files to restore, or get help from a friend, or post on a forum like this one!

    "It seems that the detection is related with the cache, I suggest you check the parent directory of the subdirectory mentioned in process monitor, and check some cache settings in the application." I know what the parent directory is, so what would I check for, and how? check some cache settings in the application? which application? and what cache settings? 

    It looks to me like the IE11 install failure left my windows 7 operating system in a compromised state.  Compromised so much that Windows Update is not fixable by the "fixit" tool that your link refers to.

    Happy to try any other suggestions you might have.

    Wednesday, January 21, 2015 10:04 AM
  • Yolanda,  I have also followed the manual steps.  the steps work Ok until

    Reregister the BITS files and the Windows Update files. To do this, at a command prompt, type the following commands.
    Make sure that you press Enter after you type each command.
    o    regsvr32.exe atl.dll
    o    regsvr32.exe urlmon.dll
    o    regsvr32.exe mshtml.dll
    o    regsvr32.exe shdocvw.dll
    o    regsvr32.exe browseui.dll
    o    regsvr32.exe jscript.dll
    o    regsvr32.exe vbscript.dll
    o    regsvr32.exe scrrun.dll
    o    regsvr32.exe msxml.dll
    o    regsvr32.exe msxml3.dll
    o    regsvr32.exe msxml6.dll
    o    regsvr32.exe actxprxy.dll
    o    regsvr32.exe softpub.dll
    o    regsvr32.exe wintrust.dll
    o    regsvr32.exe dssenh.dll
    o    regsvr32.exe rsaenh.dll
    o    regsvr32.exe gpkcsp.dll
    o    regsvr32.exe sccbase.dll
    o    regsvr32.exe slbcsp.dll
    o    regsvr32.exe cryptdlg.dll
    o    regsvr32.exe oleaut32.dll
    o    regsvr32.exe ole32.dll
    o    regsvr32.exe shell32.dll
    o    regsvr32.exe initpki.dll
    o    regsvr32.exe wuapi.dll
    o    regsvr32.exe wuaueng.dll
    o    regsvr32.exe wuaueng1.dll
    o    regsvr32.exe wucltui.dll
    o    regsvr32.exe wups.dll
    o    regsvr32.exe wups2.dll
    o    regsvr32.exe wuweb.dll
    o    regsvr32.exe qmgr.dll
    o    regsvr32.exe qmgrprxy.dll
    o    regsvr32.exe wucltux.dll
    o    regsvr32.exe muweb.dll
    o    regsvr32.exe wuwebv.dll


    A number of these return a dialogue window showing the module failed to load:

    the module muweb.dll failed to load
    the module slbcsp.dll failed to load
    the module wuaueng1.dll failed to load
    the module wucltui.dll failed to load
    the module initpki.dll failed to load
    the module msxml.dll failed to load
    the module wuaueng1.dll failed to load
    the module sccbase.dll failed to load
    the module gpccsp.dll failed to load


    others showed entry-point not found errors:

    the module muweb.dll was loaded but the entry point DIIRegisterServer was not found.
    make sure shdocvw.dll is a valid DLL or OCX file and try again.

    the module qmgr.dll was loaded but the entry point DIIRegisterServer was not found.
    make sure qmgr.dll is a valid DLL or OCX file and try again.

    the module browseui.dll was loaded but the entry point DIIRegisterServer was not found.
    make sure browse.dll is a valid DLL or OCX file and try again.

    the module mshtml.dll was loaded but the entry point DIIRegisterServer was not found.
    make sure mshtml.dll is a valid DLL or OCX file and try again.

    The documentation of my efforts on this can be seen in my post on

    http://answers.microsoft.com/en-us/windows/forum/windows_7-performance/windows-7-explorerexe-notifychangedirectory/3e13b5e8-bd0e-4738-ba2c-7f6491c889ad

    The person responding there ran out of ideas and suggested I post here.

    I can copy and paste everything I posted there if you are unable to access it.  Please let me know if you would like me to do that.

    My next idea was  to find a friend who has the same version of windows 7 that I have and copy all of the DLLs listed in the fix above from their windows\system32 folder and try the manual steps again.  Do you think that is worth trying?

    Wednesday, January 21, 2015 10:17 AM
  • Hi,

    I think I need to make a further confirmation here:

    "I have an application that programatically downloads files from a website and has been running sucessfully with no

    performance issues until recently when each individual file download time blew out to approximatle 10 seconds each.

    The same application running on another PC runs OK with each file taking about 1 second to download."

    Where did you download files? From IE or from the application (some applications have the ability to download files)? If you download files from IE, then you can find cache files under Internet Options\General\Browser history\view files, if you're using some applications to download files, the cache setting is different depending on that application. If I'm misunderstanding something,  please free correct me.

    Anyway, if all the issues only happened recently, then I suggest you simply return the system to a previous state with system restore point, but please note that you will lose some recently settings.

    http://windows.microsoft.com/en-hk/windows7/products/features/system-restore


    Yolanda Zhu
    TechNet Community Support

    Friday, January 23, 2015 1:33 AM
  • Thanks Yolanda,  Yes the application is managing the download itself. Non-Microsoft application software, running on MS Windows 7.  If it is just using the standard internet cache, Can you please tell me what cache settings I can change under Windows 7, and how?

    I have tried the restore option, but it only shows two recent system restore points.  I need to restore to a point dating back more than 1 month.  If I restore to the oldest system restore point showing on the list, will that restore older system restore points that I can then go back to?

    Saturday, January 24, 2015 8:03 PM
  • Hi,

    For IE as example, you can find and delete the temporary files in  Internet Options\General\Delete... (just as I mentioned in my second reply), and I also suggest you check the location you mentioned the "parent directory of the subdirectory where the downloaded files have been written by the application" you found using process monitor.

    If I restore to the oldest system restore point showing on the list, will that restore older system restore points that I can then go back to?

    I don't quite understand what you mean, but I suggest you give a try using a restore point, If you're not satisfied with the restore point, you can undo the changes system restore makes.

    http://windows.microsoft.com/en-hk/windows/system-restore-faq#1TC=windows-7


    Yolanda Zhu
    TechNet Community Support

    • Proposed as answer by Roger Lu Sunday, February 1, 2015 8:31 AM
    • Marked as answer by Michael_LS Friday, February 6, 2015 7:31 AM
    Tuesday, January 27, 2015 8:25 AM