I work at a security company and one of our products provides additional
protection beyond built-in access controls in Windows. The end result of
all of this additional protection is that the installer I'm maintaining
cannot simply use some of the built-in tables/actions in Windows Installer
because I need to request and get access.

The current version of the installer has custom actions to get access and
modify the system accordingly. Unfortunately, the resources
modified/created/etc are hard coded in the custom actions and not
associated with components, etc. I think there's an opportunity to make the
custom actions more robust by rewriting them as proper data-driven custom
actions but that would require re-implementing standard actions for
registry and services.

I'd really like to avoid re-implementing WriteRegistryValues,
DeleteRegistryValues, InstallServices, DeleteServices, StartServices,
StopServices standard actions just to request access from our protection
module. Using WriteRegistryValues as an example, could I implement a custom
action to acquire all the protection handles I need, then run
WriteRegistryValues action, and then in another custom action close all the
protection handles. For this to work, I'd need to somehow pass the handles
from the first custom action to the last custom action.

Something like

* SchedAcquireProtectionHandles - immediate CA that reads tables and
determines which resources require protection handles, sets
CustomActionData for ExecAcquireProtectionHandles and schedules
ExecAcquireProtectionHandles.
* ExecAcquireProtectionHandles - deferred CA that acquires protection
handles for resources listed in CustomActionData, handles are passed to
ExecReleaseProtectionHandles (magic?)
* ExecReleaseProtectionHandles - deferred CA that release protection
handles acquired by ExecAcquireProtectionHandles
* SchedAcquireProtectionHandles is scheduled before WriteRegistryValues
* ExecAcquireProtectionHandles is scheduled after WriteRegistryValues

Logically, there would also be a rollback CA to release the protection
handles in case of failure.

Is something like this feasible? Or is my only option to re-implement
WriteRegistryValues to acquire/release the protection handles before/after
creating registry keys and/or setting registry values.

-- 
Edwin G. Castro
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to