Results 1 to 2 of 2

Thread: VISTA: CA calling standard DLL

  1. #1
    Join Date
    Dec 2005
    Posts
    8

    VISTA: CA calling standard DLL

    I have a custom action that calls a function in a standard DLL that is installed with the product. I'm moving the DLL to %WINDIR%\System32 and running it from there.

    The CA runs correctly in XP, but on VISTA Beta2 the CA always fails with:

    InstallShield DLL Custom Action
    ! Unknown source "mydll.dll".

    The relevent portion of the log file looks like this:

    MSI (s) (48:28) [01:39:31:929]: Executing op: FileCopy(SourceName=mydrv~1.DLL|mydll.dll,SourceCabKey=mydll.dll,DestName=mydll.dll,Attributes=16384,FileSize=57344,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=-168601052,HashPart2=-459143132,HashPart3=2044559537,HashPart4=1005687676,,)
    MSI (s) (48:28) [01:39:32:038]: File: C:\Windows\system32\mydll.dll; To be installed; Won't patch; No existing file
    MSI (s) (48:28) [01:39:32:038]: Source for file 'mydll.dll' is compressed
    InstallFiles: File: mydll.dll, Directory: C:\Windows\system32\, Size: 57344
    MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: Verifying object --> 'C:\Windows\Installer\38a30.msi' against software restriction policy
    MSI (s) (48:28) [01:39:32:038]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
    MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: C:\Windows\Installer\38a30.msi is not digitally signed
    MSI (s) (48:28) [01:39:32:038]: SOFTWARE RESTRICTION POLICY: C:\Windows\Installer\38a30.msi is permitted to run at the 'unrestricted' authorization level.
    MSI (s) (48:28) [01:39:32:038]: Note: 1: 2318 2: C:\Windows\system32\mydll.dll
    MSI (s) (48:28) [01:39:32:054]: Note: 1: 2360
    MSI (s) (48:28) [01:39:32:054]: Executing op: SetTargetFolder(Folder=C:\Windows\system32\drivers\)
    MSI (s) (48:28) [01:39:32:054]: Executing op: SetSourceFolder(Folder=1\System32\drivers\)
    MSI (s) (48:28) [01:39:32:054]: Executing op: FileCopy(SourceName=mydrv.sys,SourceCabKey=mydrv.sys,DestName=mydrv.sys,Attributes=16384,FileSize=18816,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,Version=1.0.0.0,Language=1033,InstallMode=58982400,,,,,,,)
    MSI (s) (48:28) [01:39:32:195]: File: C:\Windows\system32\drivers\mydrv.sys; To be installed; Won't patch; No existing file
    MSI (s) (48:28) [01:39:32:195]: Source for file 'mydrv.sys' is compressed
    InstallFiles: File: mydrv.sys, Directory: C:\Windows\system32\drivers\, Size: 18816
    MSI (s) (48:28) [01:39:32:226]: Note: 1: 2318 2: C:\Windows\system32\drivers\mydrv.sys
    MSI (s) (48:28) [01:39:32:242]: Executing op: CacheSizeFlush(,)
    MSI (s) (48:28) [01:39:32:242]: Executing op: ActionStart(Name=Install_My_Service,,)
    Action 1:39:32: Install_My_Service.
    MSI (s) (48:28) [01:39:32:257]: Executing op: CustomActionSchedule(Action=Install_My_Service,ActionType=3073,Source=BinaryData,Target=DLL3,CustomActionData=C:\Windows\system32\drivers\mydrv.sys)
    MSI (s) (48:28) [01:39:32:351]: Creating MSIHANDLE (12) of type 790536 for thread 2088
    MSI (s) (48:EC) [01:39:32:398]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI9D1F.tmp, Entrypoint: DLL3
    MSI (s) (48:4C) [01:39:32:398]: Generating random cookie.
    MSI (s) (48:4C) [01:39:32:413]: Created Custom Action Server with PID 3068 (0xBFC).
    MSI (s) (48:B8) [01:39:33:195]: Running as a service.
    MSI (s) (48:B8) [01:39:33:195]: Hello, I'm your 32bit Elevated custom action server.
    MSI (s) (48:EC) [01:41:28:694]: Closing MSIHANDLE (12) of type 790536 for thread 2088
    Action ended 1:41:28: InstallFinalize. Return value 3.

    At this point the rollback procedure starts.

    What is different about Vista that won't allow the CA to find the dll that I installed? It's calling the correct entry point in my DLLWrap.ini file and all of the arguments are correct. But it always terminates before it executes the call..

    Thanks,

    HavaCuppaJoe

  2. #2
    MichaelU's Avatar
    MichaelU is offline InstallShield Software Engineer
    Join Date
    Jan 2004
    Location
    Schaumburg, IL
    Posts
    4,265
    Hmm. I'm not aware of any differences either in our DLL wrapper or on Vista that would necessarily result in this. Is it possible your DLL has a dependency that is missing on Vista? Are you running on 32-bit systems in both cases?
    I'll try running a sample here just as a sanity check; I'd appreciate any more details that would let me come closer to reproducing your scenario.
    Michael Urman - Staff Software Engineer - Flexera Software: InstallShield Team

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •