none
EmulateFindHandles - app compatibility issue RRS feed

  • Question

  • Hello.

    I'm writing installation using InstallShield. There is an application compatibility fix EmulateFindHandles which is set on Vista SP1 and Windows 2008 Server SP1 for InstallShield (pre-12) iKernel.exe.
    This fix hooks up some Windows API functions: FindFirstFileA, FindClose and RemoveDirectory. It ensures that all find handles opened by FindFirstFileA are closed before call to RemoveDirectory. Calls to these functions redirected to aclayers.dll where all functionality implemented. I think that this fix creates some kind of find handles map in aclayers.dll.


    The problem is that FindFirstFileW function call is not hooked up and when I call it from C++ program (loaded from InstallShield project), I call kernel32.dll function directly, instead of aclayer.dll and this handle is not getting added to find handle map in aclayers.dll.
    So, when I call FindClose it actually does not find my handle in a map and I'm leaking my handle. Files and folders are getting locked because of opened find handles and InstallShield program fails.

    Is it possible to fix this?

    Just support FindFirstFileW function in aclayers.dll

    Wednesday, October 8, 2008 3:36 PM

All replies

  • Hi,

     

    I am researching on the issue and will update you at the earliest.

     

    Thanks,

    Leena

     

    Tuesday, October 14, 2008 11:29 PM