Darwin Setup Development Notes for Testing Releases 00-12-29 eugend Bug 261198: On Win64, Darwin now removes keys in the 32-bit hive. 00-12-18 eugend Bug 152754: When installing 32-bit packages on Win64 we fix up hardcoded directory names that would land files belonging to 32-bit components into 64-bit binary directories. 00-12-18 eugend Bug 214525: On Win64, Intel property is set to the same ProcessorLevel value that GetSystemInfo API returns when called from a 32-bit process (currently 5, i.e. Pentium processor). 00-12-18 chetanp bug 146464: support rollback of assemblies across reboots. 00-12-18 mattwe Bug 261050: Migrate10CachedPackage API is now stubbed in to allow Office 10 setup on Whistler. 00-12-18 cnapier Bug 259080: fix assert in DebugDumpIxo 00-12-17 chetanp bug 217058: Added new DisableUserInstalls machine policy that will cause the following - 1> All our APIs currently search for product "visibility" in the order - per user managed, then per user non-managed, then per machine - Setting this policy will cause the APIs to ignore the per user managed and per user non-managed registration and only use the per machine information. 2> During an install, at the time of script execution, if the installation is being attempted as per user, then we will pop up an error message and abort the installation. This will be at the same place as where we currently we check that the current user is an admin if the install being attempted os for all users (So this will allow ample opportunity for a CA or such to muck with the ALLUSERS property). We will recommend that on TerminalServer in AppServer mode this policy be set. 00-12-16 bench Bug 253820: fix a compat problem with existing but poorly authored packages. We now tolerate invalid DefaultDir values in root rows of the Directory table. These errors were tolerated in 1.1, and many packages have these errors, so we continue to tolerate these errors for packages that don't require 1.5 Windows Installer. 00-12-16 bench Bugs 258778, 259265: fixed a couple of BVT/Setup/Boot breaks caused by the multiple user api changes. 00-12-16 mattwe Bug 146230: ODBC configuration for non-elevated installs now occurs in the impersonated custom action server, similarly to 32 bit configuration on 64 bit machines. 00-12-16 mattwe Bug 188786: Our Inprocserver32 entries are now marked explicitly with the apartment threading model. 00-12-16 chetanp bug 198377: COM+ Fusion: WI prematurely uninstalls assembly shared across products if componentid is not same. We now enumerate through all the published descriptors for the assembly to check if any point to a installed component (no matter what the component id) before unpinning the assembly 00-12-16 cgouge Bug 239108: Impersonated custom action servers now grant interactive users COM execute rights. 00-12-16 cgouge Bug 227396: Install-mode check now works on Windows 2000. 00-12-15 cgouge Bug 212570: Orca installer now registeres new MergeMod CLSIDs. 00-12-15 cnapier Bug 169494: Adjust shortcut paths to user profile shell folders when ALLUSERS is changed in the UI sequence. 00-12-15 cgouge Bug 212570: Orca installer now registeres new MergeMod CLSIDs. 00-12-14 cnapier Checked in build 223 of msi.chm and msi.chi 00-12-14 mattwe Bug 146292: Internet downloads of cabinets are now also cleared from the cache when no longer needed 00-12-14 mattwe Bug 215380: We now put copies of InstMsi (unicode and ansi) in %_NTPOSTBLD%. They're named InstMsiA.exe and InstMsiW.exe 00-12-14 eugend Bugs 221770, 248662, 248663 & 248664: MsiGetComponentPath, MsiGetProductCode, MsiQueryProductState & MsiLocateComponent APIs had been modified as to handle products installed by other users. 00-12-14 cnapier Bug 256337: SAFER assert was firing on Win9X. The assert was disabled for non-Whistler platforms since SAFER isn't applicable to those platforms. The assert is still present on Whistler. 00-12-13 cgouge Bug 192809: UISequence custom actions now receive tokens with the same privileges sets as the client. Impersonated execute sequence actions still only receive tokens with privileges that were pre-enabled in the client. 00-12-13 mattwe Bug 214189: InstMsi now puts its temp files again in the windows\Installer sub-dir. Engine now only asserts if resolving source in exactly windows\installer, not subdirs. 00-12-13 chetanp Bug 213093: COM+ Fusion: Rollback on global assembly works inaccuratly in Multi-user scenario 00-12-12 cgouge Bug 199268: When installing from media, the actual media relative path is used even if the media contains an admin image with a path in the AdminProperties stream. (We register the path we know you have). 00-12-12 bench Bug 163146: we now handle a mismatch between the registered package code and the package code in the cached database. this mismatch can occur when installing one package then advertising another. 00-12-12 bench Bug 252656: move some calls to SAFER around to avoid allocating too many SAFER tokens at one time in multi-threaded scenarios. 00-12-12 mattwe Bug 252440: Crash in msi.dll after calling SRSetRestorePoint 00-12-11 chetanp Bug 146429: Isolated file with condition=false is still installed 00-12-11 cnapier Bug 238762: get msidb to work on downlevel platforms in GUI mode 00-12-11 cnapier Bug 180824: msizap shouldn't leave Installer keys in bad state when acl'ing for admin. Now msizap adds admin full control and ownership, but leaves permissions for system and everyone alone. 00-12-11 cnapier Bug 238789: move msimsp.exe to Patching folder in WI SDK 00-12-11 cnapier Bug 213286: Change product and package codes for orca, msival2, and SDK msi's. 00-12-11 cgouge Bug 219616: Source resolution dialog was not generating disk prompt correctly for media sources. 00-12-08 cnapier Checked in build 222 of msi.chm and msi.chi 00-12-07 cgouge Bug 146223: Reworked ICE30 to use parameter queries so that directory names with apostrophe's will not cause invalid query strings during validation. 00-12-07 cgouge Bug 240029: Prefix bug in msiregmv. 00-12-07 cgouge Bug 146516: Fixed problem with self-unreg of mergemod when the reg keys were already missing. 00-12-06 chetanp Bug 232103: remove cleanup code of class registration since its not needed for new per user component mgmt logic. 00-12-06 cgouge Bug 146515: Configuration of long strings in a CMSM would cause AV writing to log file during merge process. 00-12-06 cgouge Bug 227396: Detect per-user installs on TS when in install mode and block with new ship error 1730. 00-12-03 chetanp Bug 146375: Rename MsiURTAssemblySupport MsiNetAssemblySupport 00-12-03 mattwe Bug 146292: Flat files downloaded from URL sources are now deleted from the URL cache as soon as they're in place. (WININET::DeleteUrlCacheEntry) 00-12-02 cnapier Bug 238750: added version and copyright info to msimig.dll and msimig.exe 00-12-02 cnapier Bug 238802: moved copyright info to first line in msizap 00-12-02 cnapier Bug 192765: web bootstrap no longer uses private header 00-12-02 cnapier Bug 31791: Add mirroring support for BiDi dialogs on Win2K and greater 00-12-01 mattwe Bug 151680: Only enable SE_RESTORE_NAME and SE_TAKE_OWNERSHIP_NAME token privileges during restoration of failed installs (rollback.) This prevents gratuitous use of unnecessary privilege. (And associated auditing if turned on.) 00-12-01 chetanp Bug 168798: pvt Win32 assemblies support in WI. See text file attached to bug for details of the changes. 00-12-01 mattwe Bug 146390: System Restore on Whistler now uses nested checkpoints for installs. 00-12-01 mattwe Bug 245366: Cabinet files are now extracted from threads which correctly impersonate. Prevents files from being created with LocalSystem privileges. 00-12-01 cgouge Bug 218473: msidbCustomActionTypeHideTarget hides CustomActionData script field as well from log files (in addition to Target field) 00-12-01 cgouge Bug 222706. Orca now handles an invalid string in an integer column by showing an error messoge instead of silently corrupting the data. 00-12-01 cgouge Bug 148579, 185298. Fixed stall in custom action launch caused by service threading model. Simultaneously fixed CA server shutdown issue when the apartment is kept alive across install sessions. 00-12-01 cnapier Bug 245583: fixed SelfReg when ALLUSERS != 1. Problem was caused by the SAFER implementation. 00-12-01 rahulth Bug 210402: MsiProcessAdvertiseScript[A/W] are now public functions. Also, MsiProcessAdvertiseScript[A/W], MsiAdvertiseProduct[A/W], MsiAdvertiseScript[A/W], MsiGetProductInfoFromScript[A/W] and MsiIsProductElevated[A/W] will now only run on Win2K and higher platforms. For lower platforms, they return ERROR_CALL_NOT_IMPLEMENTED. 00-11-30 cgouge Bug 210919: Client-side DLL custom actions now use the exact environment block used by the client. The block is passed to the service and used during process creation. Multiple client contexts with different users now gives each server the correct block. 00-11-30 bench Bug 241687: as part of allowing non-admins to run the 2nd phase of ForceReboot installs, we are now prepending our RunOnce value names with "MSI_". the shell will run these commands even when the user is a non-admin. 00-11-30 bench Bug 244739: added MSICHECKCRCS and FASTOEM to the list of properties that can be passed to the service even when the EnableUserControl policy is not set. 00-11-29 mattwe Bug 146390: System Restore check-pointing is now enabled on Whistler, with the same feature set as our support on Millennium. No, your install has not hung, the check-pointing is slow. Restore team is working on perf, and on builds prior to 2407, you'll see a second blank-checkpoint created for the end of the install. 00-11-29 cgouge Bug 228782: Prefix bug in mergemod directory table merge. 00-11-29 chetanp Bug 244331: Fix Assembly code to honour File_Mainfest column, when non-null (as opposed to always treating the key path of the component as the manifest file for the assembly. 00-11-29 chetanp Bug 146375: Define 2 new properties - MsiURTAssemblySupport and MsiWin32AssemblySupport set to the file versions of the underlying infrastructure files fusion.dll and sxs.dll resp. On m/cs that do not have the corr. support these properties will remain unset. 00-11-29 cnapier Bug 224383: PSDK sample scrub of wireadme.txt 00-11-29 bench Bug 162066: don't set DISABLEMEDIA during admin install in some cases. 00-11-27 cnapier Checked in build 221 of msi.chm, msi.chi 00-11-27 cnapier Bug 143544: Improve Basic UI cancel button. If the cancel button is clicked, the button is disabled (grayed-out) and the banner text "Canceling..." is displayed. 00-11-27 mattwe Bug 206040: Installer auto-retries when downloading a file from URL fails. Bug 146391: Installer now sends "keep alive" messages during database caching from a URL, and downloading individual files. 00-11-27 bench Bug 146227: added support for patching fusion assemblies. 00-11-22 cnapier Bug 146566: Fixed costing of MsiSetFeatureState with Feature="ALL" 00-11-22 chetanp Bug 184661: AD: Once a failure to install an applicaiton is fixed, the icon is always incorrect. 00-11-22 cnapier Bug 163155: Implement Msi / Safer interaction. Windows Installer will call SAFER to determine if a package, patch, or transform is fully trusted. Only fully trusted ("unrestricted") objects can be installed. 00-11-20 chetanp Bug 198439: Fixed shared component/Shared dll logic for Win9x 00-11-15 eugend Bug 233716: Darwin client reports mem. leaks when closed via ExitProcess. 00-11-15 cnapier Checked in build 220 of msi.chm, msi.chi 00-11-15 cnapier bug 146479 - MsiFiler fails when related package is on system. 00-11-15 cnapier bug 217744 - MsiOpenPackageEx API 00-11-15 cnapier bug 146201 - do not reboot if creating an advertise script 00-11-15 cnapier bugs 228805, 228806 - fixed Prefix issues in setup.exe web bootstrap tool 00-11-14 cnapier bug 225495 - fixed misspellings in License Agreement dialog in UISample and MSI SDK 00-11-14 cgouge Bug 222748: MergeMod backwards compatibility of Merge function during merge of table with a merge conflict. 00-11-14 eugend Bug 217795 & 220325: No more assertions if Control table is missing and VirtualMemory property is set correctly on Win64 machines. 00-11-14 mattwe We now build the SDK automatically in the builds. The post build must be run to finish. Bug 191120: MsiSpy has been removed from normal builds. 00-11-14 eugend Bug 203377: ship Darwin stopped reporting info message 2898 as "internal error 2898" in the log file. 00-11-14 cgouge Bug 172261: Added MSM 1.5 constants to mergemod.h 00-11-14 cgouge Bug 175567: At EXE CA that AVs does not trigger any Windows error dialogs. 00-11-13 eugend Bug 185528: Cabinet extraction doesn't fail anymore when a CD drive returns invalid data, but retries the operation. 00-11-13 eugend Bug 146363: Full UI scales now when larger/smaller monitor fonts are in use. 00-11-09 mattwe Bug 146541, 213456, 211779: The current fix is to simply use the same environment block for both elevated and impersonated custom actions. The block will start as the system's. To this, everything from the user's environment will be added EXCEPT the path. This ultimately results that the temp will always be the user's, and the path will always be the machine's. 00-11-09 mattwe Bug 181120: Fixed the console window that appeared running InstMsi in yet another new and exciting way. This appears to have finally given us the "old" behavior. 00-11-09 cnapier Checked in build 219 of msi.chm, msi.chi 00-11-08 cgouge Bug 146564: implemented detection of custom action stack corruption in ship builds. A message is sent to debug output when a problem is detected. 00-11-08 mattwe Bug 220353: InstMsi now correctly builds incrementally. You should be able to nmake /f %_NTPOSTBLD%\instmsi\[ansi | unicode]\instmsi.mak directly without running msi.cmd 00-11-08 mattwe Bug 204570: MsiExec /regserver now creates description for service on Windows 2000 and later versions of NT 00-11-06 cgouge Bug 129548: implemented non-secure transform migration during Win9X upgrades for non-profile scenarios where apps move from per-machine to per-user. 00-11-06 bench Bug 146334: fix intermittent crash during ForceReboot with /L*V!. 00-11-06 cgouge Bug 146484: Orca would get confused with read-only files and the MRU list. 00-11-02 cnapier Checked in build 218 of msi.chm, msi.chi 00-11-02 cnapier Checked in build 217 of msi.chm, msi.chi 00-10-31 cgouge Bug 205994: MsiRegMv creates the SharedDll key if one does not exist. 00-10-31 chetanp bug 198439 - revert back cfg. data layout on Win9x to 1.1/1.2 format 00-10-31 mattwe Bug 181120: Fixed InstMsi console window that appeared 00-10-31 cnapier Bug 146397: MsiAdvertiseProductEx API for architecture simulation during advertise script creation 00-10-31 cnapier Removed PatchWiz Src from SDK. Added MSI 1.5 Beta 1 SDK batch file to %_NTTREE%\admin\darwin\src\sdk 00-10-31 bench Bug 211736: fix problem applying overlapping patches to an admin image. 00-10-28 cgouge Bug 146649: MSI CA manager now ensures appropriate process ACLs before launching CA server for both client and service actions. 00-10-27 cgouge Bug 205551: Fixed big memory leak in Orca and tweaked column-width code to support new storage format. 00-10-27 cgouge Bug 199772: Immediate custom actions are back to being denied elevation rights. 00-10-27 mattwe Bug 146330: InstMsi now places its temporary files in a subdirectory from the temp folder, and secures it with the same DACL as the windows\installer folder. InstMsi should now be ready for test consumption on all platforms. 00-10-26 cgouge Bug 205563: Win9X upgrade migration now handles the case where a user name is the same as the machine name when profiles are turned on. 00-10-25 cnapier MsiSpy no longer includes pdb files. 00-10-25 mattwe Bug 146330: InstMsi will now prompt for a reboot on Windows 2000 appropriately, Removed static linking to setupapi.dll 00-10-25 cnapier Bug 207156: fix msizap to actually zap the product from the Uninstall key (if no one else has the product installed) 00-10-24 cnapier Checked in build 216 of msi.chm, msi.chi -- this how now been declared the Windows Installer 1.5 Beta 1 build due to some technical content that needed to be changed prior to release 00-10-24 eugend Bug 146325: Darwin does not display drives that are hidden via system policy. 00-10-23 cnapier Checked in build 215 of msi.chm, msi.chi -- first Beta 2 build 00-10-23 cnapier Bug 195470: Better error message for case where registered product language differs from package language (happens in recache case) 00-10-23 cgouge Bug 146624: Client CAs now call AllowSetForegroundWindow to pass foreground rights to the CA server before invoking the CA. 00-10-23 cnapier Bug 210375: Setup.Exe internet download bootstrap now takes advantage of the instmsi delay reboot option (instmsi /c:"msiinst /delayreboot") and loads msi.dll from the registered Windows Installer folder now written to HKLM\SW\MS\Windows\CV\Installer InstallerLocation: REG_SZ 00-10-23 cnapier Bug 146616: Automated MsiGetFileSignatureInformation API (it's now the FileSignatureInfo method of the Installer object) 00-10-20 eugend Bug 138538: I've uncommented the 2 FailAssertMsg calls in IMEMORY.CPP. 00-10-20 cgouge Bug 198943, 192292. Prefix fixes in migration. 00-10-19 cnapier Bug 157550: Support for Null DestFolder in DuplicateFiles table 00-10-19 chetanp Bug 175378: We now do not uninstall the files in a COM+ or URT assembly ourselves Instead we rely on the fusion interface to do this for us. 00-10-19 chetanp Bug 186912: we have stopped using the logo3 guid for darwinized shortcuts 00-10-19 chetanp Bug 208456: Darwin generates fatal error if attempting to repair broken assembly 00-10-19 chetanp Bug 146169: Prevent multiple closing of registry handles in RegKey object. 00-10-19 chetanp Bug 206805: Allow further enumerating of products via MSiEnumProducts even if we encountered a corrupt product code entry. 00-10-19 cgouge Bug 146500: trigger immediate TS reg propogation to current user after closing the registry window during an install. This prevents endless repair of shortcuts that verify HKCU keypaths until the next logon. 00-10-19 bench Bug 206811: fix multi-threaded access to global IMsiServices pointer. 00-10-19 eugend Bug 146153 again: Darwin is displaying the right message if it comes across a corrupt cabinet. 00-10-18 cgouge Bug 146477: Reboot call from the client to the service now authenticates using the correct COM impersonation token. 00-10-17 bench Bug 146311: the AFTERREBOOT property is now set from the In-Progress information rather than the RunOnce key. 00-10-17 bench Bug 146329: in our event log entry for failed component detection, we now include the actual resource (file, folder, regkey or regvalue) that we couldn't find. 00-10-16 cnapier Checked in build 214 of msi.chm, msi.chi. This is the Windows Installer 1.5 Beta 1 SDK release build. 00-10-16 cgouge 200235 - orca shadow table pane is now cleared when closing the database while a shadow table is active. 00-10-16 eugend Bug 194081: debug Darwin loads symbols only if it has a memory leak to report. 00-10-16 cnapier Checked in build 213 of msi.chm, msi.chi 00-10-13 mattwe Bug 146330: InstMsi will now install its main bits via an Exception INF on Windows 2000 InstMsi will not run on Whistler 00-10-13 eugend Bug 185588 again: fixed an AV in ship builds and modified the process to build a .LIB file instead of a .DLL. 00-10-13 cnapier Checked in build 212 of msi.chm, msi.chi 00-10-11 cgouge Bug 202286: Orca data corruption on add of new row in localizable column. 00-10-11 cgouge Bug 199778: The MsiBreak environment variable is ignored for non-admin users (since they don't have permissions to debug a CA anyway.) 00-10-11 cgouge Bug 146179: Commit custom actions now elevate based on the isaElevate flag in the script, which is itself set based on the original scripts m_fRunScriptElevated member. 00-10-11 mattwe Bug 146330 (partial fix) Changes to InstMsi builds to create catalog and exception INF. 00-10-11 cgouge Bug 198942: Prefix: returning pointer to freed memory in CSIDPointer 00-10-11 cgouge Bug 197267: Better logging for execution scheduling options. 00-10-10 eugend Bug 185588: I've provided a workaround for the broken MsiGetShortcutTarget API in ANSI builds < 1.20.1710 00-10-10 cgouge Bug 192293. Prefix: leaked memory in writecfg.cpp. 00-10-10 cgouge Bug 194454. Fixed endless loop in source resolution no UI mode when media source is invalid. 00-10-09 cnapier Checked in build 211 of msi.chm, msi.chi 00-10-09 cgouge Bug 171016: Prefix: using uninitialized memory in migsecur.cpp 00-10-06 cnapier Checked in build 210 of msi.chm, msi.chi 00-10-06 eugend Bugs 181468: Listbox controls in Darwin UI can display horizontal scrollbars now. 00-10-04 cnapier Fixed building of msispy in order to properly create the type library. 00-10-03 cnapier Checked in build 209 of msi.chm, msi.chi 00-10-02 cnapier Bug 146647: add ICE76 to source depot 00-10-02 eugend Bugs 166442: SelectionTree control displays now icons when the control is authored to be displayed on a dialog run in reinstall mode. 00-10-02 cnapier Bugs 191416, 194810: fix ICE03 regression (194810) and fix ICE03 so as to not error on type 37 and 38 custom actions where the formatted Target column is treated as literal script text rather than formatted text 00-10-02 bench Bug 194988: MsiFiler now dynamically binds to MsiGetFileHash, so the tool will still work on Win2000 (with 1.1 Darwin). also the MsiFileHash table is not populated at all (even if the table exists) unless the -h option is supplied. 00-10-02 cgouge Bug 187505: Leaked Handle message is not posted when the CA is called from a dialog control event to prevent deadlocks in the message handler. The handles themselves are still closed. 00-10-02 cgouge Bug 146509: MsiRegMv no longer creates a backup hive during upgrade migration unless in a debug build with the -backup flag specified. 00-09-30 chetanp Bug 146127: Fixed registry limitation for inprogress key on Win9x, got psdk installation going. 00-09-30 chetanp Bug 164462: Changed multi-user component management rules to remove component if installed to the same location. 00-09-29 cnapier Bug 146149: update msicert for use with SDK -- new command line options for populating the MsiDigitalSignature and MsiDigitalCertificate tables. msicert -d {database} -m {media entry diskId} -c {digitally signed cabinet} [-H] 00-09-29 cnapier Bug 193877: fix uisample.msi to properly handle selection of Repair option in MMode 00-09-28 eugend Bug 146342 & 146607: two fairly minor full UI issues. 00-09-27 bench Bug 146105: added the MsiNTProductType, MsiNTSuiteBackOffice, MsiNTSuiteDataCenter, MsiNTSuiteEnterprise, MsiNTSuiteSmallBusiness, MsiNTSuiteSmallBusinessRestricted, and MsiNTSuitePersonal properties. 00-09-27 eugend Bug 146247: IOD (actually, the network connection) dialog has the correct text when browsing is disabled. 00-09-27 bench Bug 146589: MsiFiler will now optionally create the MsiFileHash table if it doesn't already exist. Also changed the command-line for msifiler so that every argument has its own switch 00-09-27 cnapier Update schema.log file in %sdxroot%\admin\darwin\data\schema.idt. This is the log of schema changes between Windows Installer versions that ships with the SDK 00-09-27 eugend Bug 146205: I've removed Wx86 code branches from the code. 00-09-26 cnapier All SDK files are now available in the darwin source tree. The SDK Msi package is built at the same time as all other packages (although some tweaks are still needed for postbuild). 00-09-22 bench Bug 182375: on Win2K and above, we call the GlobalMemoryStatusEx api, which gives more accurate information for the PhysicalMemory and VirtualMemory properties. 00-09-22 bench Bug 182386: we no longer set the following undocumented properties: MemoryBytes, TotalPageFile, TotalVirtualMB, TlsIndex, AvailablePageFile, AvailablePhysical, AvailableVirtual, TotalPhysical, TotalVirtual 00-09-21 cnapier Bug 185272: Fix setting of Intel property to include IA64 (backwards compat) and fix setting of Intel64 property to be dependent upon g_fWinNT64 rather than compilation as 64-bit 00-09-21 cnapier Bug 146632: Fix MsiSip problems on Win98 Gold due to bad version of ole32.dll (4.71) 00-09-20 bench Bug 146246: fix internal error when patch applied to sfc-protected or acl'ed file 00-09-20 bench Bug 146307: fix internal error when installing file to innaccessible folder 00-09-20 bench Bug 183364: we now properly handle a missing companion file when patching 00-09-20 cnapier Bug 146306: Fix AV in SetInstallLevel when package contains 0 components 00-09-19 cnapier Bug 146155: Allow for FILE_FLAG_DELETE_ON_CLOSE when using MsiRecordSetStream (requires specifying FILE_SHARE_DELETE whenever we attempt to open the file) 00-09-18 chetanp Bug 146139: Calling MsiProvideComponent with INSTALLMODE_NOSOURCERESOLUTION flag on local broken component incorrectly returns ERROR_INSTALL_FAILURE. Fixed to now behave similar to INSTALLMODE_NODETECTION and return ERROR_SUCCESS. 00-09-18 weiruc Bug 146365: ICEM12 added to validate module sequence tables. All custom actions and dialogs must have BaseAction and After values, all standard actions must have sequence numbers. Bug 146378: ICEM07 added error message to distinguish a non-existent file in the cab file from a badly sequence numbered one. Bug 146396 ICE23 uses MsiOpenDatabase which can not be remoted which causes the ice itself not being remoted. Instead of using a temporary database, instead use the existing one, but generate a random name for the temp table to avoid name collision. Also uses retry when the random number didn't work out. Bug 164784: ICE78 added to validate the AdvtUISequence table is either empty or does not exist. 00-09-18 cnapier Bug 176137: unchecking all features in UI still installs on NT 00-09-18 chetanp Bug 146167: msiexec /ju was not setting ALLUSERS property on command line 00-09-15 mattwe Bug 184285: mspatcha.dll is now on our SFC bypass exception list for Windows 2000 00-09-14 cnapier Bug 146198: Inaccurate error message when accessing '.Features' property of Windows Installer object 00-09-14 bench Bug 181813: we now correctly impersonate when determining if the user is an admin. This bug was exposed when source resolution was delayed until the point where the service elevates to perform a managed install. 00-09-14 cnapier Bug 181324: Install RFS shared component during reinstall if at least one feature is requesting a reinstall local or is explicitly going local 00-09-14 bench Bug 146580: when patching an admin image where the .msi is read-only, we take the read-only attribute off (along with hidden and system) temporarily while update the .msi and put the original attributes back when finished. 00-09-13 cnapier Bug 146316: A component is not disabled if the keypath is an unversioned file whose existing file on the system is modified (though file install versioning rules will still come into play) 00-09-13 cnapier Bug 172334: OutOfRbDiskSpace message updated. The cost in KB is now formatted according to CurrentUserLocale (i.e. instead of 1460000 KB, you'll get 1,460,000 KB on US or 1.460.000 KB on Italian systems) 00-09-13 mattwe Bug 146137: We no longer attempt to load SFC.DLL on NT4 (caused problems when another app installed a file by this name.) 00-09-13 chetanp Bug 177454: use ManagedLocalPackage instead of LocalPackage to register cached msi for user assigned apps. 00-09-12 bench Bug 182050: new error for general SfcInstallProtectedFiles failure that isn't for a particular file. 00-09-12 bench Bug 146486: we no longer complain about failing to remove a product during an upgrade if the error table happens to have 2 rows for the same existing product. 00-09-12 cgouge Bug 157268: MSI now filters return codes from custom action DLLs and scripts. Anything that is not an approved return code is mapped to failure instead of triggering some random result. 00-09-11 bench Bug 146122: the "installation completed successfully (or failed)" event log entry is now more specific about the type of install that happened. we have different entries for install, uninstall, advertise and configure. 00-09-11 bench Bug 30867: when an install is invoked as an uninstall (so that the installer knows its an uninstall at the beginning) the basic UI dialog says "Preparing to remove..." instead of "Preparing to install..." 00-09-11 bench Bug 166964: changed "failed to create temp file" error from debug to ship. 00-09-11 bench Bug 181624: we don't ignore failure to write extension registry goop any longer. 00-09-11 bench Bug 169413: some global const strings were not defined as const, causing some perf issues. 00-09-11 cnapier Bug 179330: Report user cancelled setup if user selects cancel during instmsi upgrade with internet download bootstrapper. Note that this is still blocked by bug 146117 where msiexec is returning ERROR_SUCCESS instead of ERROR_INSTALL_USEREXIT. 00-09-11 cgouge Bug 181309: Win9X failure in MergeMod MergeEx call due to wrong string API. 00-09-10 cgouge Bug 171012: Fix prefix bug, uninitialized memory in mergemod RegisterServer call. 00-09-10 cnapier Bug 146126: Fix crash in CMsiEngine::GetFileInstalledLocation if Component table is not loaded. 00-09-09 cgouge Bug 166969. Non-admin users could not use secure cached transforms because we were not elevating inside ixfSecureTransformCache when generating the temp filename in the \Installer directory. 00-09-09 cgouge Bug 171013, 171015, 171017, 171018: various PREFIX problems in migration security code. 00-09-09 cgouge Bug 171007: PREFIX memory leak in custom action server. 00-09-07 cnapier Bug 171498: MsiCreateAndVerifyInstallerDirectory works properly on Win9X. (No security verification is performed, but an attempt is made to create the directory. An already existing directory is still considered a success as well.) 00-09-01 mattwe Bug 176427: MsiInst in InstMsi.exe now re-sizes its process token buffers to correctly detect Admins. 00-09-01 cgouge Bug 167102: Fixed problem with new packagecode-only disk 1 verification where packages not at the root of the disk were not being validated correctly. 00-09-01 bench Bug 167847: fix bug in handing a missing cached patch, which prevented some roaming-user scenarios from working. 00-09-01 bench Bug 168364: use the proper package name when deploying a package while it is also installed on the local machine (using a different package name). 00-09-01 cnapier Bug 170063: Added functionality for executing instmsi when a Windows Installer upgrade is needed during the internet download setup exe execution. 00-08-31 cnapier Bug 146151: Ability to add new components to existing features during minor patches and upgrades. 00-08-31 cgouge Bug 146291: Don't use crypto DLL to generate CA connection to avoid holding the DLLs in use. This resulted in endless reboots when running Outlook after 9x->NT upgrades 00-08-31 cgouge Bug 154275: Preliminary MSI 9x to Whistler migration DLL to unblock home user. 00-08-31 mattwe Bug 159861: InstMsi on NT now calls MsiRegMv.exe to migrate data 00-08-31 eugend Bug 146153: Former debug errors 2351 & 2355 are ship 1334 & 1335 now. 00-08-31 mattwe 146199: Unicode InstMsi is now build with an MSI.DLL that doesn't use /robust IDL. This version of the msi.dll is binplaced to _NTTREE\instmsi\unicode. 00-08-31 eugend Bug 146312: latebind's DLL unbindings are in try-except statements. 00-08-31 eugend Bug 146494: Darwin writes now eventlog messages that have distinct IDs. 00-08-31 eugend Bug 174543: Bitmaps display with the correct colors now. 00-08-30 eugend Bug 146428: Clicking on the last item (partially) displayed in the SelectionTree control doesn't affect anymore the state of the item just below it. 00-08-30 eugend Bug 173668: Darwin doesn't log hidden properties anymore on the "MSI (c) (nn:nn): Switching to server:" line. 00-08-29 eugend Bug 148574: Automation doesn't hang anymore if the product key (in the registry) is longer than 38 characters, but returns ERROR_BAD_CONFIGURATION. 00-08-25 eugend Bug 146461: Comboboxes in full UI got vertical scrollbars now. 00-08-22 bench Bug 165354 - bumped the default timeout value for chk builds from 1 minute to 10 minutes. The timeout has been seen several times on the latest whistler builds, and 1 minute is just too short. 00-08-21 mattwe Bug 146330 - InstMsi will now run on Whistler/Windows 2000. Note that the regular build process no longer competely builds instmsi. In addition, you will have to run a post build step. (see later check-in notes.) This requires that the core msi files have been signed with a valid certificate accepted by SFC. 00-08-21 cgouge Bug 165275. Fix Orca crash when running a search with no selected table. 00-08-16 cnapier Bug 163152. Remove WinVerifyTrust call for digital signature policy. In Beta2, we will be using SAFER. The infrastructure remains in place; however, no policy decisions are ever made w.r.t. digital signatures. External cabinet digital signature checks are STILL performed. 00-08-15 eugend Bug 163009: CMsiBitmap::DoUnpackBitmap was passing an unaligned pointer to GDI32!CreateDIBitmap. 00-08-15 cgouge Bug 146549. The Custom Action Manager now detects leaked handles and posts an info message saying that handles have been leaked. The leaked handles are then closed. 00-08-14 cnapier Bug 100163, 146450, 146397, 153738. 64-bit package must be marked with schema 150. Mixed platfrom packages (Intel & Intel64) are explicitly not supported. Advt scripts for 64-bit packages fail when run on a 32-bit OS. Temp copy of Msi is deleted if MSI digital signature check fails. 00-08-11 cgouge Bug 157952. Dropped OpenThread API for Win9X/NT4 support, instead using a list of active custom actions and their associated suspended threads. 00-08-11 bench Bug 146404: fixed AV when writing to 0-byte wininit.ini file (Win9X only) 00-08-10 bench Bug 146614: added the Install.FileHash automation for the MsiFileHash api. 00-08-09 bench Bug 33731: properly fail when writing to a script file with no available disk space and no UI. 00-08-08 cgouge Bug 146578. Added pcp files to Orca file dialog filters. Added "Edit with Orca" verb to .pcp extension in Orca.Msi. 00-08-08 cgouge Bug 146298. InstMsi/CopyMsi will now fail on NT4 before SP3 with a launch condition error. 00-08-08 cgouge Bug 146103. Primary checkin for Orca transform viewing functionality. 00-08-07 cgouge Bug 146517. In CMSMs, the target of a configurable key item was being deleted if not prompted uses of the item existed, regardless of the attribute. The row is now marked for deletion only after the first prompted item with the no-orphan attribute is encountered. Later items may still flip the row back to not be deleted. 00-08-07 cgouge Bug 153857 (again), 148731, 146547 (again). Errors 2737, 2740, 2742, 2743 have now been dropped and new pure-ship errors 1720, 1721, 1722, and 1723 added. 1723 is now propogated correctly for remoted custom DLL custom actions. 00-08-05 cgouge Bug 146458, Explorer was caching source paths indefinitely for shortcut targets, resulting in invalid paths when RFS source validity changed. We now ignore the global cache for all descriptor based source resolutions. This is also a 1.1 QFE (WINSE 8803/8857) 00-08-04 cgouge Bug 148731, idbgCustomActionLoadLibrary prameters were backwards in the log file. 00-08-03 chetanp bug 146433 - Fixed MsiGetPatchInfo API 00-08-03 cgouge Bugs 153857, 146547: Debug Errors 2740, 2742, and 2743 "turned ship" and are now in error.enu these strings will need to be localized in the next LOC pass. 00-08-02 cnapier Fixed building of instmsi to properly import ActionText and Error tables. Added building of enumsi.res for localization drops. 00-08-01 chetanp bug 150107 - Fixed uninstall of an app does not remove HKCU registry keys if the app is installed for another user 00-08-01 cnapier Bug 152548: MsiApplyPatch Regression fix. 00-08-01 cnapier Bug 152897: Authoring errors for digital signatures for cabinets now reference proper table in which error occurs (idbgBadForeignKey). 00-07-31 eugend Bug 152813: Regression to fix for 10030. 00-07-26 eugend Bug 146218: I've removed the restriction of 1024 characters on the length of properties entered on the command line. 00-07-26 chetanp bug 146278 - COM <-> COM+ interop support work: Added support for IOD of COM assemblies when invoked by COM classic clients. Check specs for more info 00-07-26 bench Bug 146426: detect and resolve conflicts between patches that use the same DiskID and Sequence values. This fix is huge and greatly impacts the way patches and standalone transforms are applied. 00-07-25 cnapier Bug 146645: Send imtError instead of imtUser for LaunchCondition and CustomAction type 19 errors. 00-07-25 cnapier Bug 146652: Multiple digital signature eventlog messages with verbose information were added instead of relying on one. An admin can now pinpoint the reason why the failure occurred (invalid hash, rejected cert, etc.) 00-07-25 mattwe Bug NT 146100: After a suspended install, when a different user logs in and starts a new install, we now attempt to rollback the partial install for the other user. Previous behavior simply discarded all rollback info and continued. 00-07-24 eugend Bug 146114: hitting Esc during rollback has no effect now. 00-07-24 eugend Bug 146431: MsiZap supports now the new per-user registry data format. 00-07-24 dkays More prefix fixes. 00-07-21 mattwe Bug NT 146541: Custom Actions that are elevated will now only receive the system environment block, rather than the user's block. 00-07-20 cgouge Re-enable compiler warning 4701 - uninitialized local variable. 00-07-18 eugend Bug 11227: AV in handler when two successive dialogs have the TrackDiskSpace attribute set. 00-07-14 cgouge Bug 11070: Before launching a custom action server for a non-admin, we ensure that INTERACTIVE_RID group has SYNCHRONIZE access on the service process. Otherwise the CA server thinks the process is gone and shuts itself down. 00-07-11 chetanp Bug 10516: Added support for IOD for pvt and global COM+ assemblies. Check specs for more info 00-07-10 cgouge Bug 10714: When passed a package path on the command line (if the path can't be gleaned from registration) we convert the path to LFN during engine initialization to ensure the SourceList registration contains a path that can be used on sources where the SFN representations of the package are not the same. 00-07-10 eugend Bug 10030: We've stopped writing private properties into the log file, as well as all passwords from ServiceInstall table and the Target column for some custom actions. 00-07-10 eugend Bug 10511: AppSearch and CCPSearch actions have been modified as to be able to look for 64-bit apps in the registry. 00-07-10 cnapier Bug 10884: Digital Signatures. Redistribution of msisip.dll and msipol.dll via instmsi. Note that msipol.dll is conditioned for VersionNT >= 500 since it will only be distributed on Win2K. However, currently instmsi has a launch condition to block installs on Win2K. The Client-Side-Extension registry entries were added to the Registry table for instmis for the policy provider DLL. Additionally, there are two new in-script, non-impersonated custom actions for registering the Sip and Policy provider DLLs with crypto. The Sip registration custom action also removes the old structured storage Sip registration if present. 00-07-09 cnapier Bugs 11104, 11105, 11169, 11172: Digital Signatures. Reduced WinVerifyTrust calls on open of package to only occur when at least one of the following three conditions are true: 1. Product is unknown (not installed or advertised) 2. Local cached Msi is missing 3. Explicit recache specified (REINSTALLMODE option) Additionally, a WVT check will be performed when accessing the source Msi to extract an embedded cabinet (although no check is performing when validating the source) 00-07-08 chetanp Bug 11200: Added support for privatized win32 components 00-07-08 eugend Bug 9242: MsiEnumComponentCosts is a new API for getting the costs incurred per disk drives by the installation of a component. 00-07-07 cnapier Bug 11179: New API for creating and verifying the Installer directory -- MsiCreateAndVerifyInstallerDirectory. This is a private API that is used by the service when it verifies ACLs on the %systemroot%\Installer directory and by msipol if the directory is not present when the group policy client-side extension runs during winlogon. The OpenMsiCertStore API also makes use of this API call. MsiCreateAndVerifyInstallerDirectory requires that the callee be an admin or local system. 00-07-07 cnapier Bug 11178: New API for extracting the signer certificate and hash from a signed Msi, Mst, Msp, or Cab. MsiGetFileSignatureInformation. The hash extraction is optional. Provided for Admin policy UI in GPE and for tools like VSE, InstallShield to use in authoring the MsiDigitalSignature and MsiDigitalCertificate tables. 00-07-07 chetanp Bug 11071: Fixed code to prevent removal of any entity (like registry entries, self reg, ...) during uninstall of GUIDless components. This behaviour is now consistent with what is documented. 00-07-07 chetanp Bug 11199: Added code to redirect loading of fusion.dll via the shimming dll (mscoree.dll). We no longer need fusion.dll to be in the system folder any more. 00-07-06 t-shanj Bug 10785: Added ICE77. Verifies that the in-script CAs are scheduled between InstallInitialize and InstallFInalize in InstallExecuteSequence table and AdminExecuteSequence table. 00-07-06 cgouge Bug 11052: Switched to a 2-phase DLL custom action launch procedure. Phase 1 sets up the action in a suspended state, whereas phase 2 runs the action and retrieves the result. In between the phases the thread information is passed to the CA manager so the message context can correctly filter synchronous custom action messages to avoid deadlock. 00-06-30 cgouge Bug 10837: Fixed ICE46 crash on non-matched left bracket in property. 00-06-29 cnapier Bug 11139: Not calling WVT on all patches. 00-06-29 cnapier Bug 11171: Package signed with expired certificate still installed if InstallKnownPackages policy was 1. Fixed Msi_FinalPolicy to call Authenticode's final policy function so that the certificates in the chain are evaluated against the HKCU WVT registry policies dealing with expired and revoked certificates. 00-06-28 cgouge Bug 11079: Folded IMsmGetFiles into IMsmMerge2, since there is no longer a reason to maintain a seperate interface. the CLSID_MsmMerge object still implements IMsmGetFiles for backwards compatibility. 00-06-28 cgouge Bug 10874: All new CMSM errors now cause MergeEx to return E_FAIL, not S_FALSE. This is because these errors result in partial merges (unlike the other S_FALSE error cases). An error object is still added to the error enumerator. 00-06-28 cgouge Bug 11075: A leaked handle in mergemod was keeping the module in use during a CMSM merge. The handle is now closed. 00-06-27 cgouge Bug 10685: we now use only the package to validate Disk1 (the volume label is ignored) in both engine and execute resolution. We use the "same volume label" check that was earlier used for the special-case label registration to determine what media table entries constitute "physical disk 1". 00-06-27 bench Bug 11066: we now perform a FileHash check on companion files when the version check on the parent file tells us to install the companion file. 00-06-27 dkays Switch msiexec to use new comctl32 v6 controls for new shell UI look. 00-06-26 mattwe Bug 6500: During rollback, we now simply log errors and continue on. All error and warning dialogs are suppressed, and just sent to the log. The rollback will continue on, for better or worse. 00-06-23 bench Fixed Whistler bug 130132: crash when rolling back after ODBC failure 00-06-23 dkays Split msi.h into public and private header. Msi.w, msiquery.w, and msidefs.h can now be found in admin\published\msi. This is where these files should be modified and built from to update public\sdk\inc. Msi.w is split into public\sdk\inc\msi.h and public\internal\admin\inc\msip.h. 00-06-21 cnapier Bugs 11138: Digital Signature error now properly returned in the case of a file split across two cabinets. 00-06-20 cnapier Bugs 11100, 11102, 11103: Digital Signatures. Changed interpretation of MsiDigitalSignature table. The DigitalCertificate_ column is now non-nullable. When patching an admin image, the digital signature is removed from the MSI at the admin install point. New error messages for policy rejection of transforms (ERROR_INSTALL_TRANSFORM_REJECTED) and patches (ERROR_PATCH_PACKAGE_REJECTED). Additionally, two new event log templates were added with their own message Id's (EVENTLOG_TEMPLATE_WINVERIFYTRUST_UNAVAILABLE and EVENTLOG_TEMPLATE_DIGITAL_SIGNATURE). 00-06-20 mattwe Bug 10665: Only non-password protected screen savers are now disabled during long installs. 00-06-19 cgouge Bug 11044, orca command line processing was openining the merge module before determining the language and then complaining that the language was not known. Language detection was moved back before database open. (where it was before UI integration.) 00-06-19 cgouge Bug 11130, a CMSM temporary column was type INT, which limited bitfield masks to 16 bits. The column is now LONG (32 bits). 00-06-19 cgouge Bug 11070, incorrect parsing of escaped characters in Orca CMSM UI. 00-06-19 cgouge Bug 11058 part 2, fix button to be correctly enabled after the browse dialog returns. 00-06-18 bench Bug 10776: checked in version 1.97 of mspatcha.dll and mspatchc.dll. 1.97 contains a small backward compatibility fix over 1.96. namely in 1.97 the PATCH_OPTIONS_USE_BEST flag behaves the same way as it did in 1.94, where is behaved differently in 1.96. 00-06-18 bench Bugs 10950,11110: more patchwiz fixes from Office MOSE team. 00-06-18 bench Bugs 10817,11109,11111: integrated patchwiz fixes from Office MOSE team. 10817 deserves special note: you can now specify in the .pcp file to create smaller patches for large files, with the caveat that the patches won't work with 1.94 mspatch (which shipped with 1.1 MSI). see the bug for more info. 00-06-16 cgouge Fixed bug 11124. Removed ShellNew commands from _BadRegData table in CUB file. 00-06-16 cgouge Fixed bug 11125. Changed Shortcut.ShowCmd validation to 1;3;7 00-06-15 cnapier Bug 10963: MsiFiler fails if the call to MsiGetSourcePath fails. 00-06-14 cnapier Bug 11097: MsiOpenPackage now properly terminates the initialized message context if it fails to create an engine. 00-06-13 bench Bug 10996: in FindRelatedProducts, fix version comparison so that a version number with major version = 128 doesn't look negative. 00-06-13 cgouge Bug 10547: fix regression where the DisableMedia policy was being checked per-machine. It is actually a per-user policy. 00-06-13 cnapier Bugs 11073, 11089: fixed regression in error message for File Not Found. Fixed problem with msifiler and validation not being able to create an engine via MsiOpenPackage. The problem was due to a WinVerifyTrust call on the package (for security) and it failing because the SIP requires opening the storage for reading while denying write access and the package had been opened for writing. The fix was to short-circuit the WinVerifyTrust call such that an unsigned package opened for writing with the DWORD policy allowing unsigned packages can create an engine object. 00-06-12 cgouge Bug 11058: fix crash in orca when no path is specified for the module path path in the merge module dialog box ----------------------------- RI to VBL04 for 1.50.2240 ----------------------------- 00-06-05 bench Bug 10384: file hashes for unversioned files can be stored in the MsiFileHash column and used during version checking to save unecessary file copies. 00-06-05 cnapier Bug 9920: Implemented digital signature infrastructure for verifying digital signatures on MSIs, MSTs, and MSPs during installation actions. Trust is determined by a set of policies that are evaluated by the MSI policy trust provider (identified via GUID in the WinVerifyTrust call). 00-06-02 dkays Integrate from vbl04 to private branch. 00-06-02 dkays Prefix bug fixes. 00-06-02 cgouge Bug 10547: fixed source validation on engine start to correctly respect Media and Browse policies for both initial installs and maint installs. 00-06-01 dkays Instmsi and various build changes. Remove uses of UMABSENTRY in sources. 00-06-01 eugend Bug 9953: Darwin checks now the corectness of CRC checksums of files that are marked as having a checksum. Bug 10299: Windows File Protection error 1931 is displayed only once, all subsequent occurences are recorded in the eventlog and in the log file. 00-06-01 cnapier Bug 9925: Enable digital signatures for cabinets via authoring of the MsiDigitalSignature and MsiDigitalCertificate tables. 00-05-30 cnapier Bug 10834: The custom action samples for the SDK (tutorial.dll, process.dll, remove.dll, and create.dll) now build in Source Depot. Additionally, the call to the rollback custom action was changed so that it proceeds the call to the deferred custom action (process.cpp) so as to be in agreement with the docs. 00-05-25 cgouge Bug 10945: we now create a Products\\Usage key with read/write ACLs during product registration. 00-05-25 cgouge Bug 10895: Service no longer creates Products\Secure key on start. 00-05-24 chetanp Bug 10814: fixed COM+ assemblies installation support break. 00-05-24 cnapier Bug 9925: MsiCert.Exe tool to aid in testing of digital signatures for cabinets. The tool will populate the MsiDigitalCertificate and MsiDigitalSignature tables of an MSI package with information extracted from a signed cabinet. 00-05-22 cgouge Bug 10939: Fixed hang in msival2 caused by a buffer overrun inside the MSI cursor when a possible property reference in a formatted string was not terminated within 260 characters. The buffer is now resized appropriately. 00-05-19 eugend Touched bug 10507 again: I've fixed up the APIs called in the 32-bit process as to return %systemroot%\syswow64 instead of %systemroot%\system32. 00-05-19 eugend Bug 10806: the refcounting mechanism got extended as to handle 64 and 32-bit components. On Win64, for 32-bit components we update info in the 32-bit SharedDLLs key and for 64-bit, in the regular SharedDLLs key. On Win32, the behaviour is unaltered. 00-05-19 cgouge Bug 10972: Made ContextData, DefaultValue, DisplayName columns in ModuleConfiguration table localizable. 00-05-19 cgouge Bug 10879: Dropped MMI/MPI support from Orca. 00-05-18 cgouge Bug 10600: Added support for the Intel64 summary property to Orca. 00-05-18 cgouge Bug 10980: Fixed Multi-User Migration tool (msiregmv) to correctly migrate secure-full-path transforms. The transforms are registered in the mapping key under their full-paths to avoid potential name collisions. 00-05-17 cnapier Bug 10826: fixed the tools so that they have version resources and map to the build. Copyrights for the /? option and Help->About have been updated to include 2000. Added msimsp and msiloc to the build process and fixed the msispy builds to handle version resources. 00-05-17 bench Bug 10953: fixed patchwiz.dll to propertly compare 2 product versions. There should be no more bogus warnings about mismatched product versions when creating a patch. 00-05-17 cgouge Bug 10380: Fixed LastUsedSource checks to resolution to actually check only the last used source. 00-05-12 bench Bug 10954: Fixed source resolution code to work for msifiler.exe. 00-05-10 bench Bug 9321: second and final piece to this bug. Fixed RegisterProduct action to not resolve the source during a QFE patch. Fixed ixfFileCopy to skip source resolution when not copying or moving a file. 00-05-10 chetanp fixed bug 10898 - MsiGetShortcutTarget was failing (in ANSI builds) because of lack of null termination in read buffer. 00-05-09 cgouge Bug 10889: Multi-User migration now deletes old cached transforms on migration. It also tries to delete the SecureTransforms directory and the product GUID directory, but doesn't if other files exist there (such as cached icons). 00-05-09 cnapier Bug 10907: Fixed incorrect grammar in ICE61 error message. 00-05-09 cnapier Bug 10628: Fix crash in CMsiDatabase destructor with corrupted database 00-05-09 cgouge Bug 10823: Updated ICE45 _ReservedBits table to allow 64bit attribute in Component table. 00-05-09 cnapier Bug 10254: Refit of static text with dynamic properties upon repaint. 00-05-09 cnapier Bug 10296: SecureCustomProperties fixed to only allow the specific list. (Inccrrectly allowed all properties if value contained two semi-colons in a row or ended with a semi-colon) 00-05-08 cnapier Bug 10698: Fix for ICEs 35, 39, 45, 66, 73 -- cannot use NULL for output parameters for MSI API (MsiSummaryInfoGetProperty in particular). This was originally fixed but was not migrated to Source Depot. 00-05-08 cgouge Bug 10487: Updated ICE45 _ReservedBits table to allow Sunken and Enabled for all controls. 00-05-08 cgouge Bug 10745: Added new ICEM11 to verify that Configurable Merge Modules have ModuleConfiguration and ModuleSubstitution in the ModuleIgnoreTable table. 00-05-08 bench Bug 9876: if the ScheduleReboot or ForceReboot actions were run prior to the install failing or being cancelled, reboot would still happen. This has been fixed by clearing the appropriate flags upon an unsuccessful end to the install. 00-05-08 bench Bug 10871: applying a major-upgrade patch with REINSTALL=ALL used to register only the patch without registering the rest of the product, leaving the product is an unusable state. this is now fixed. 00-05-08 cgouge Bug 10897: Custom Action Server COM connection is now ACLed differently based on whether the client or server is the owning process. 00-05-07 bench Bug 10693: files that are patched but not pre-copied are now correctly bound by the BindImage action. 00-05-07 bench Bug 10649: fixed misleading log message when patching a file that doesn't need to be copied beforehand. We now describe whether the file will be patched or not in addition to whether it will be copied or not. 00-05-07 bench Bug 8340: it is no longer necessary to set SHORTFILENAMES manually when patching an admin image with short names. the installer does this for you. 00-05-05 cgouge Bug 10890: Fixed typo in ICE47 warning message. 00-05-04 cgouge Bug 10110: Added support to Orca for NULL data in nullable binary columns. 00-05-04 cgouge Bug 7455: Removed invalid (and broken) StartImpersonating call from ValidateSource on RFS components. 00-05-04 bench Bug 10910: we no longer prompt the user to close down an application holding a file in use if the file is actually RFS and the component is being uninstalled. 00-05-04 bench Bug 10831: RFS was improperly disallowed when running from an admin image just because the File table has a file marked as compressed. But in an admin image all files are uncompressed and RFS should always be allowed. 00-05-04 bench Bug 10472: fixed MsiApplyPatch api to close the patch storage when it is done with it, before invoking the patch install, which was preventing reboots from happening during a patch. 00-05-03 cgouge Bug 10816. Fix remoted out buffers to revert to old behavior despite change in underlying proxy code. We now use a temp output buffer when remoting. 00-05-03 cgouge Fix Smoke failure in mergemod relating to directory creation on systems with FAT drives. 00-05-03 cgouge Added support for 64bit directory properties to MergeMod. ----------------------------- RI to VBL04 for 1.50.2228 ----------------------------- 00-05-09 eugend Fixed bugs# 10914 & 10629. 10629: RegCreateKeyExW API works now OK on Win64 so that I've removed our own MsiRegCreateKeyEx workaround. 10914: 64-bit Windows' Wow6432KeyValue special registry value was causing us not to remove product publishing information. 00-04-29 chetanp Bug fixes for Multi-user changes. (10891, 10893) 00-04-30 cgouge Tweaks to 1.5 Migration Tool. Removed debug spooge, turned off transform deletion, fixed owners of keys (bug 10887), switched cached patch and product registration to full path, make backup of hive in Windows folder. 00-04-29 chetanp Multi-user changes. See http://dartools/dardev/specs/multi user(design).htm for schema and functionality changes. There are a few pieces of functionality that is missing for this check in 1> The secure transforms as stil not cached per user. We still work the way we did before. 2> The "Usage" key is not being ACLed to allow everyone read write (though it is being migrated this way, so if it already exists or if the user is an admin, you will see the feature usage counts being updated) 3> The component management code works off the particular user's view for component management instead of the global view (see shared component logic section in specs). What this means is that an uninstallation will still remove the file and machine data for a shared component installation even if there are other users that are clients of the installation. However, if users install to different locations, it works. 4> The external API MsiGetPatchInfo is broken because of the multiuser changes. However, internally all patching has been rewired for the change. So all patch stuff should work. 5> We still register the product information under the Uninstall key as well. While this would be needed for legacy OSes, we will get ARP to go through us for all MSI apps, so that we dont do this registration on Whistler. 00-04-29 bench Bug 9321: first set of changes to delay source resolution as far as possible. This will benefit patch application by not requiring the original source to apply a patch if the source is truly not required. 00-04-29 cgouge Main checkin for Multi-User Migration tool. (MsiRegMv.exe) 00-04-29 eugend InstallODBC and RemoveODBC actions had been modified to handle 64-bit components. Bug # 10508 tracks this. 00-04-28 cnapier Bug 9921: Implemented MSI SIP plug in. MSIs, MSMs, MSTs, and MSPs can now be signed. 00-04-28 eugend RegisterTypelib and SetODBCFolders actions had been modified to handle 64-bit components. Bugs # 10506 & 10507 track this. I've fixed bug# 10614: on 64-bit machines, 32-bit 'Program Files' and 'Common Files' folders are now retrieved correctly. For debugging API calls that are remotely executed in the custom action server, I've added the functionality that checks if 'J' character is set in _MSI_TEST env. var. and if so, and the build is debug, the APIs are remoted. 00-04-28 dkays Initial prefix bug fixes. 00-04-27 bench Bug 10878: fixed misuse of the MsiEnumPatches api. The bug caused some patches using more than 1 set of transforms (2 transforms in a set) to be ignored after first-application. These patches were also ignored during uninstall and the patch registration became orphaned, which prevented further installs of that product (with a ERROR_INSTALL_PACKAGE_REJECTED error) 00-04-22 dkays Precompiled header for src\engine. Currently used for the src\inc files. Could be further enhanced to pull in engine header files. Cuts about 2/3 of the compile time off of the engine build. 00-04-20 chetanp Added COM+ 2.0 support for installation/ reinstallation/ uninstallation of COM+ packages. Added indirection of key paths to COM+ components. Renamed assembly tables to MsiAssembly and MsiAssemblyName. Works with fusion.dll version 5.60.2208.0. 00-04-20 dkays Changed version.h to pick up nt build number for minor version number. Files msiver.h and vertmpl.txt removed, verdate.h is no longer generated. 00-04-20 eugend Fixed bug 10502, 10503 & 10504: [Un]PublishComponent, [Un]PublishFeature and PublishProduct actions have been modified as to handle 64-bit components properly. 00-04-17 cgouge Bug 10746,10747: Added Orca support for Configurable Merge Modules (both UI and command line). 00-04-17 cgouge Bug 10408: Main checkin for Configurable Merge Modules. See the dev spec for details 00-04-14 cgouge Bug 10300: reworked our impersonation/elevation system to solve several problems mentioned in the bug. This includes problems with context switching in client engines, mixed impersonation contexts when multiple users are connected to the service simultaneously, and the addition of some additional debug checks to track down mismatched impersonation calls. Note that StartImpersonating and StopImpersonating are now deprecated. Use the CImpersonate class instead for all new code. 00-04-13 bench Bug 10813: fixed patching problem where a full-file patch would not "take" after a binary patch was applied against the same file. We now ignore patches that are older than the current full-file, using the sequence numbers from the File and Patch tables to make this determination. 00-04-13 bench Bugs 10776, 10784: updated mspatcha.dll in the 1.2 redistributable to version 1.96. This new version can accept new types of patches, so this build now accepts .msps with engine type "2", which would be used to indicate .msps that use the new patches. 00-04-11 eugend Fixed bug 10500 & 10501: RegisterUser and RegisterProduct action have been modified as to handle 64-bit components properly. 00-04-11 eugend Fixed bug 10686: If the OS >= W2K, the OS' memory allocator is used instead of Office's. 00-04-11 eugend Fixed bug 10832: 64-bit Darwin is able now to handle cabinets stored as streams in the package. 00-04-04 cnapier Fixed bug 10819. Removed build spooge from checked build. If an install, uninstall, etc. is successful and no logging policy is set and logging isn't enabled, then there should be no output to the debugger or to debugmon. The requisite policy setting is the DEBUG policy in HKLM. Set to 1 to turn on. 00-04-03 bench Fixed bug 9987: both 32-bit and 64-bit builds use the latest fdi.h, which allows the 32-bit build to now handle file-uncompression on Win64 correctly. ----------------------------- Release 1.1.1529 ----------------------------- 00-03-28 cnapier Fixed bug 8801. RFS features are now patched correctly so that 2 uninstalls are not required. RFS is not available in the UI for a feature with patched or compressed components. 00-03-28 cnapier Fixed bug 10703. Localization. Checked in THA Millennium localization drop. 00-03-28 cnapier Fixed bug 10703. Localization. Checked in Vietnamese drop of Millennium localization from Redmond. 00-03-27 mattwe 10598: updated autoexec.bat processing to accept lines beginning with @, and to concatenate appending/pre-pending variables with %variable% to avoid clobbering existing values. 00-03-23 cnapier Fixed bug 10703. 6 more Ireland languages checked in. CAT, EUQ, HRV, ROM, SKY, SLV. 00-03-23 eugend I've modified the build process as to build Profile[W] binaries that work with IceCAP 4.2 So far they were built for IceCAP 3.6. The affected files are: - \Tools\Inc\ICECAP.H - new file - \Tools\Bin\X86\MSVCRT.DLL - replaced - \Tools\Lib\X86\MSVCRT.LIB - replaced - \Tools\Lib\X86\ICECAP.LIB - new file - \Src\MAKEFILE - modified - \Src\Inc\COMMON.H - modified 00-03-22 cnapier Fixed bug 10703. Localization. Checked in fix to mislocalization of RegisterProgIdInfo in ESN ActionText table. 00-03-22 eugend Fixed bugs # 10496, 10497, 10498 and 10499: RegisterClassInfo, RegisterExtensionInfo, RegisterProgIdInfo and RegisterMIMEInfo actions had been modified as to handle registrations for 64-bit components. 00-03-22 mattwe Bug 10531: Moved IPROPNAME_CUSTOMACTIONDATA into msidefs.h from msiquery.cpp and updated custom action samples in src\samples to use it. ----------------------------- Release 1.1.1522 ----------------------------- 00-03-21 cnapier Fixed bug 10734. Handler. If in reduced or full UI mode but no dialogs are up, the handler returns the parent window as specified by the MsiSetInternalUI call. (Initially, the value is 0 for desktop). 00-03-21 cnapier Fixed bug 10703. Localization. Millennium localization drop of 16 Ireland languages (CSY, DAN, ELL, ESN, FIN, FRA, HUN, ITA, NLD, NOR, PLK, PTB, PTG, RUS, SVE, TRK) 00-03-21 bench Fixed bug 10661: we no longer require a reboot to clean up our files (.msi, .mst, .msp, icons) after an uninstall. Our sequence of steps was juggled to attempt the deletion of these files after we have let them go. This was a problem on Millennium because the System Restore feature doesn't work when there are pending delete/rename-after-reboot operations. 00-03-17 cnapier Fixed bug 10256 (forgot to check in to Whistler). Fixed the formatting issues in the sample source code and made the MSI API calls use explicit W versions. ----------------------------- Release 1.1.1515 ----------------------------- 00-03-14 eugend Fixed bug # 10505: BindImage action had been modified for 64-bit NT. 00-03-13 cnapier Fixed bugs 10254, 10713. Handler. Static text controls with dynamic properties as their text are always re-fitted on paint. No more FormatText calls on errors filterd by the handler's message handler. These errors have already been formatted prior to sending them to the handler. 00-03-13 cnapier Fixed bug 10256. Fixed the formatting issues in the sample source code and made the MSI API calls use explicit W versions. 00-03-10 cnapier Fixed bug 10698 (again.) This time, the problem was in the ICE cub files. Output buffers cannot be NULL. Affected function call was MsiSummaryInfoGetProperty used by ICEs 35, 39, 45, 66, and 73. 00-03-10 cnapier Fixed bug 10717. Changed BugBug comment in CActionThreadData::RunThread() to plain comment (must support backward compatibility). 00-03-10 cnapier Fixed bug 10698. MsiDatabaseIsTablePersistent idl definition fixed to be [in, unique, string] (originally was [in]). Additionally, all [in, string] references were changed to be [in, unique, string]. Now MsiDatabaseIsTablePersistent is remoted correctly. 00-03-09 bench Fixed bug 10574 (again): new fix addresses some security problems experienced by non-admin users, and handles multiple patches to the same file. 00-03-09 eugend Fixed bug # 10664: MsiRegCreateKeyEx function now creates the right key, so that RegOpenKeyEx will be able to open it. ----------------------------- Release 1.1.1508 ----------------------------- 00-03-07 cnapier Localization. First drop of Millennium localization pass checked in. Redmond-based languages -- ARA, CHS, CHT, DEU, HEB, JPN, and KOR. This includes updates to current strings plus InstallSFPCatalog, RegisterProgIdInfo, SR error messages (Installed, Configured, Removed). 00-03-06 cnapier Fixed bug 10640. Removed fDBCS = fFalse as default argument for AllocateString. Fixed all instances of function calls to AllocateString. If in doubt, we default to using fDBCS=fTrue to guarantee that we handle DBCS characters appropriately. This means we have a perf hit on ANSI (separate bug opened on this). On UNICODE, the fDBCS argument is ignored. ----------------------------- Release 1.1.1501 ----------------------------- 00-02-29 eugend Fixed bug # 10663: On Millenium Darwin is no longer recording the restore points if it is running in FASTOEM mode. 00-02-29 eugend Fixed bug # 10416: WriteRegistryValues and RemoveRegistryValues actions had been modified as to work properly on 64-bit OS-es. 00-02-28 cnapier Fixed bug 10667. Validation. ICE76 -- new ICE to validate that files with SFP catalogs are not listed in the BindImage table. This ICE is in the full and merge module validation suites. 00-02-25 eugend Fixed bug # 10652: from now on, whenever a product changes state from advertised into installed, the string "Configured XYZ" will be recorded in PCHealth's UI, instead of "Installed XZY". 00-02-24 cnapier Fixed bug 9843. It is now possible to query the _Streams and _Storages tables multiple times (and across threads). Originally if you wanted to views on the _Streams table, you had to open view, close view, open view, close view. It's now possible to open view, open view, close view, close view. 00-02-23 bench Fixed bug 10574: to handle SFP protected files, when copying a file then patching it, we now copy that file to an intermediate location, then patch the file and copy it back to the original location. This ensures that the first and only time the original file is overwritten, it is done so with a fully updated file, and not an intermediate, unpatched file. ----------------------------- Release 1.1.1423 ----------------------------- 00-02-22 bench Fixed bug 10618: swapped the order of the PatchFiles and DuplicateFiles actions in the recommended sequence in our SDK .msi files. PatchFiles should come first, but wasn't in the previous recommended sequence. 00-02-21 mattwe bug 10241. The CSIDPointer class needed its default copy protected, and a new constructor for SID* to avoid temporary object creation that might over-free a contained SID. 00-02-18 cnapier Fixed bug 10397. An immediate custom action can now call MsiDoAction or DoAction on a custom action that is in the same binary stream as it is. 00-02-18 cnapier Fixed bug 10437. Evalcom.msm and Mergemod.msm now pass the Merge Module validation suite as best they can. Remaining problem is due to bug #10626 scheduled to be fixed later. 00-02-18 cnapier Fixed bug 10252. Updated msitool.hlp to include msizap in the overview and remove the Spy Automation interface link from the overview. 00-02-17 cnapier Fixed bug 10389. Added new SFPCatalog Cost Adjuster for costing SFPCatalogs. This cost adjuster creates a "dummy" shared component to represent all catalog file cost. 00-02-16 cgouge Bug 10612. Memory allocator was very confused because the page size on Win64 is 8K and it was expecting standard 4K x86 pages. 00-02-16 cgouge Bug 10566. Fixed a problem in source resolution where the service was caching volume labels across calls to the source dialog in the client. This resulted in the service incorrectly registering the last used source disk id and thus rejecting the disk even if it is correct. 00-02-15 eugend Fixed bug # 10415: The new System64Folder, ProgramFiles64Folder, CommonFiles64Folder and WindowsNT64 properties get created when Darwin is running on 64-bit NT and on that platform System16Folder does not exist anymore. 00-02-11 eugend Fixed bug # 10558: CBasicUI::CheckDialog will not use now random values for iDialogLeft, iDialogTop, iDialogWidth & iDialogHeight. 00-02-10 cgouge Bug 10236 - added support for LFN extraction to mergemod. By requesting the MsmMerge2 interface you can call ExtractFilesEx and request short or long filenames. This is the first part of the new mergemod interface and required stubbing out the other new functions in an attempt to avoid multiple changes to the inteface. 00-02-10 cnapier Fixed bug 10068. When a bogus path is provided to a transform, we now return ERROR_INSTALL_TRANSFORM_FAILURE instead of ERROR_FILE_NOT_FOUND. The transform failure message includes directions to verify the path to the transform. 00-02-10 cgouge Bug 9808 - The limit of 83 media entries in an install has been eliminated via the addition of a new opcode (ixoSourceListAppend) that tacks additional sources (of any type) on to the end of the existing source list. The opcode can be used for either packages or patches 00-02-10 cgouge Bug 10537 (again). Feature reference in new Assembly table also incleased to length 38. 00-02-10 cnapier Bug 10163. ICE75 -- verfies that Custom Actions referencing the File table are sequenced after CostFinalize. 00-02-10 cnapier Fixed bugs 10198 and 10184. Reports to the debugger (in the service) are only sent if the debug policy is set. Fixed the problem in SetInstallerACLs when deleting a key caused the service to not start. 00-02-09 bench Fixed bug 10596: MsiMsp issues: 1) fixed bug with quoted paths passed to the exe, 2) improved failure message to be a little more friendly, 3) remove the -c option, which was required for success in most cases, with the -k option, which as the opposite effect. 00-02-09 eugend Fixed bug # 10599: Millenium's System Restore strings got more concise now. 00-02-09 cgouge Bug 10537 - updated Feature.Feature and all Feature_ columns to 38 characters. 00-02-09 mattwe Bug 10528 - InstallSFPCatalogFile action now only can run on Win9X systems beginning with Millennium (4.90) 00-02-08 mattwe Bug 10441: Fixed assert when installing invalid catalog files 00-02-07 eugend Fixed bug # 10545: Ship builds of Darwin record now PCHealth strings correctly. ----------------------------- Release 1.1.1406 ----------------------------- 00-02-04 cnapier Fixed bug 10436. ORCA. Made the combo boxes on the Validation dialogs have the CBS_AUTOHSCROLL attribute to allow entering of text longer than combobox boundary. 00-02-04 cnapier Fixed bug 10256. SDK. Created custom action samples for the SDK (Sample 1 is launching an installed file at the end of the install. Sample 2 is creating user accounts on the local machine using a Custom table and deferred and rollback custom actions). Source files are provided in the SDK under Samples. Documentation will be added to msi.chm explaining use and authoring. Relevant files are tutorial.cpp, process.cpp, remove.cpp, and create.cpp in %DARWIN%\src\samples. 00-02-03 chetanp bug 10514 - preliminary COM+ support added in darwin 1.5 The build supports installation of fusion assemblies to the assembly cache via the new fusion apis. A sample package containing a multimod assembly is now built and released (Asm.msi) The table schema that is supported is in the dev specs in http://dartools/dardev/specs/complusasm.doc . Note that in this release we dont make use of the AssemblyName table, which can be omitted.This release does not have support for install on demand/ reinstall/ uninstall of COM+ components.You will run into a quaint debug error if you attempt to run a COM+ package w/o the COM+ URT installed in your system directory (go to http://URT).I have tested installation of uncabbed single mod assemblies, uncabbed multi mod assemblies and cabbed single mod assemblies. The fusion dll against which the code is compiled and works is 5.50.4026.2200 00-02-03 eugend Fixed bug 9985: Fixed platfrom validation as to handle the 64 bit processors as well and relaxed validation on Alpha. 00-02-01 eugend Fixed bug # 10527: more information about SRSetRestorePoint API gets written into the log now. 00-01-31 cgouge Bug 10124,10204,etc. This is the first checkin for the 64bit custom action support in Darwin 1.5. This initial checkin consits of most of the core infrastructure code necessary to support multiple custom action servers and servers that run client-side actions. Specifically: - Implementation of the CustomActionManager class which creates, manages, and destroys up to 4 custom action servers and their associated interfaces. This object lives in the engine of the client and the config manager of the service. - Modification to the IMsiServer interface to support client side requests for a custom action server. - Modifications to the registration system to provide enhanced robustness and security when registering multiple custom action servers. - Providing a back up array-based system for Thread-Id impersonation when running on the client side with no available TLS slots - Additional context information for RemoteAPI calls to enable security checking when sharing an API handler across multiple servers. - Servers now watch for their clients to die, even while idle (no active actions). Thus client processes can die without leaving behind copies of msiexec. - Client, Server and Service now use the GIT for interface management. We now require NT4 SP3+ for unicode builds. - Code to take an arbitrary PE format file and determine if it is 64 or 32 bit. - Explicit registration of msiexec paths at /regserver time so 32bit processes can find the secure copy of the 64bit msiexec and vice-versa - Addition of the msidbCustomAction64BitScript attribute. Still to come: - Security work for multiple simultaneous client calls (waiting on 10300) - full 64-bit functionality for DLLs and CAs (waiting on the OS) - perf optimizations (waiting on some spare time) - Moving COM impersonation to the interface level (waiting to see if needed) New client DLLs will NOT work with the new service. The new service should work with old client DLLs. The service must be registered for client custom actions to run. 00-01-28 eugend Fixed bug # 10530: The call to System Restore API now happens before we lock the server (write the InProgress) key. 00-01-27 cnapier Fixed bug 10319. Makefile. Added dependencies for orca and msival2 cabinets so they could be built. Note, we should probably build these in a post build process since they have dependencies on files built in different flavors. 00-01-24 chetanp bug 10347 - fixed infinite recursion caused when installing fonts with badly formed version string 00-01-24 cnapier Fixed bug #10448. ActionText.Description, ActionText.Template, and Error.Message columns are now of length 0 (infinite) to make localization easier (since many languages have much longer strings than their english counterparts). 00-01-24 bench Fixed bug 10432: the DuplicateFile.DestFolder column was the incorrect size for an identifier column. 00-01-21 chetanp fixed bug 10444. Prevent the IsolateComponents action from running twice (once from the InstallUISequence and once from the InstallExecuteSequence) in the same engine (on Win9x). 00-01-20 cnapier Fixed bug 10400. SDK. Made it possible for uisample.msi, schema.msi, and sequence.msi to be merged together without merge conflicts. Removed reference to dialogs from sequence.msi (other than the typical dialogs denoted by negative sequence numbers). 00-01-19 mattwe Bug 10398: Added validator for InstallSFPCatalogFile to ICE26 and ICE27 00-01-19 bench Fixed bug 10394: fixed case statement that didn't handle the imsAbort return from Message() correctly, causing the installer to behave as if the install failed rather than being cancelled. 00-01-19 bench Fixed bug 10423: added INSTALLPROPERTY_PACKAGENAME which was mysteriously absent although fully supported as an argument to MsiGetProductInfo. 00-01-19 eugend Fixed bug # 10402: in addition to reporting the facename and charset of the fonts it creates, Darwin now also reports the height. It does this also in CMsiServices::SetPlatformProperties when it determines the size of the dialog unit. 00-01-18 cnapier Fixed bug 9670. Removed the unsupported nested install custom actions (type 151 and 55) from Testdb. 00-01-18 cnapier Fixed bug 9292. Property dump messages are now also sent to the External UI handler if present and filtering for the Info messages. 00-01-18 eugend Fixed bug # 10282: from now on the presence of checkboxes on dialogs will not draw the focus to get set to them. 00-01-18 cgouge Bug 10350. Added additional logging to source resolution to assist in detecting source problems. 00-01-18 cgouge Bug 9970. Added null terminator to command line argument array to avoid potential crash in msiexec when given an invalid argument. 00-01-18 bench Fixed bug 10196: under certain conditions when creating a randomly-named log file, the installer would enter a very long loop creating a ton of 0-byte log files. This was caused by a bug in the code that generates the temporary log file names. 00-01-17 cnapier Fixed bug 10252. Updated msitool.hlp for all tools (made it current). 00-01-17 cnapier Fixed bug 10377. Validation. Created a new class CManageTable for ICEs to use for managing hold counts on tables. Guarantees that if an ICE were to fail, the HOLD counts that the class is responsible for are FREED for that table. 00-01-17 cnapier Fixed bug 10319. Validation. New ICE74. Ensures that the FASTOEM property is not authored in the Property table. 00-01-17 cnapier Fixed bug 10368. Validation. Fixed ICE12 to not incorrectly error on Type 39 custom actions. 00-01-17 cgouge Bug 10352. ICE61 did not handle the InclusiveMin and InclusiveMax attributes correctly when validating the upgrade table. 00-01-17 cgouge Bug 10346. Downgraded ICE61 "only older version" error to a warning. This supports products replacing newer versions of themselves. 00-01-17 bench Fixed bug 10414: better verbose logging for code that increments and decrements the counter signifying whether Darwin will reject system shutdown requests or not. 00-01-17 cgouge Bug 10373 - typo in ICE34 error location string 00-01-17 bench Fixed bug 10374: the MsiApplyPatch api was limiting the szCommandLine argument to 1024 characters as it was passing the string through a wsprintf call. We are now avoiding wsprintf, allowing to string to be of unlimited length. 00-01-17 bench Fixed bug 10287: when scheduled custom action exes failed in a certain way, Darwin would attempt to reboot the system. The problem was overloaded return values that weren't getting remapped correctly. This has been fixed. 00-01-14 bench Bug 10206: created a new tool for the sdk: MsiMsp.Exe. This is a command-line tool that wraps PatchWiz.Dll and is used to create patch packages (.msp files). See MsiTool.Hlp for usage and other info. 00-01-14 eugend Fixed bugs # 10317, 10318, 10320 & 10381. All of these were OEM issues. The changes do not allow a FASTOEM installation to occur in upgrade, patch, maintenance and advertise mode installs, but only on first runs. UI or UI preview are not permitted either in FASTOEM scenarios. On NT only per machine installations are allowed in FASTOEM mode. 00-01-14 eugend Fixed bug # 10199: As per instructions for GHeino, I've upgraded RICHED20.DLL to ver. 5.30.23.1200 and USP10.DLL to ver. 1.325.2180.1. 00-01-14 bench Fixed bug 10310: fixed a few calls to IStrCopy that could have passed a null pointer. Doing so causes a crash when running under a debugger. 00-01-13 cnapier Fixed bug 10381. Updated MsiVal2's packagecode, productcode, and productversion due to changes in msival2.exe. These changes are preparatory for the next SDK (probably 1.2). 00-01-13 cnapier Fixed bug 10395. SDK and MsiSpy now install to ProgramFilesFolder by default. 00-01-13 bench Fixed bug 10039: MsiSetPropertyW was not calling the correct thread-safe routine for setting properties. Now it is. 00-01-12 cgouge Bug 10365. Fixed a mismatched Start/StopImpersonating call on a BindImage failure case that was found by code audit. 00-01-12 cgouge Bug 10349. Fixed some mismatched Start/StopImpersonating calls that were causing failures in GetFileChecksum. This problem would result in the impersonation count becoming corrupted and further impersonation calls failing. 00-01-12 eugend Fixed bug # 10361: if rollback is disabled, CMsiOpExecute::InitializeWindowsEnvironmentFiles() doesn't back up AUTOEXEC.BAT anymore. ----------------------------- Release 1.1.1311 ----------------------------- 00-01-11 cnapier Fixed bugs 10192 and 10253. SDK. Our SDK is now ready for the Millennium (or next release). All 110 related files have been archived. The SDK now makes use of the uisample UI. In preparation for the next SDK, the product, package, and product versions have all been updated so that they will be correct when we build the next SDK. Pullsdk.bat was updated to create the additional 110 directories beneath Database (for schema.msi and sequence.msi) and Tools (for the 1.1 logo, darice, and mergemod cube files). Furthermore, the SDK has been somewhat reorganized to have a separate Archive feature which then has the 100 and 110 subfeatures and whose installstate is initially set to absent. 00-01-11 chetanp fixed bug 10263 - we were not releasing source file handle upon a file copy initialization error. 00-01-11 cnapier Fixed bug 10281. Removed msival2's dependency on a hard-wired product code. Instead, MsiVal2 determines its product code at runtime (via MsiGetProductCode) using the component code of its main exe component. This component code will typically not change whereas the productcode typically changes from one SDK release to the next. The only potential gotcha that is handled in the code is that the main exe component is conditionalized on the OS platform (Win9X or WinNT). 00-01-11 cnapier Fixed bug 10309. All localized ActionText and Error tables will now pass validation when imported into an already valid database. Also created the validt.bat batch file in %DARWIN%\src\tools to be run PRIOR to check-in of the localized files. 00-01-11 bench Fixed bug 10366: fixed logic that caused an error when applying a product-code-changing patch to a product with an embedded cabinet. The error was caused when we thought the cached msi we are running from should have contained the cabinet, which cached msis do not. 00-01-10 mattwe Fixed bug 9928: SFP catalogs can now be installed on Millennium platforms. Added tables: SFPCatalog and FileSFPCatalog Added action: InstallSFPCatalog spec: http://dartools/dardev/specs/SFP-Millennium.htm 00-01-07 cnapier Fixed bug 10191. Incorrect cost calculation during Maintenance Mode when toggling the install state of an already local feature in the Selection Tree. Also added new controls to testdb's SelectionDialog to aid in testing of this bug fix. During the toggling of a feature's state, three controls keep track of the PrimaryVolume* properties. 00-01-07 cnapier Fixed bug 10298. Removed the easter egg from MsiSpy. 00-01-07 eugend I've checked in the code that implements Darwin's interactions with Windows Millenium's PC Health feature. Bug # 9929 was tracking this.