The StartMessageSubsystem method provides a way for an application to programatically launch the local PI message subsystem service if it is not running. The method first attempts to determine if the subsystem is already running, either as a service or a regular process. If it does not have permission to detect this or finds it is already running it returns an appropriate error. If the subsystem is not running the method attempts to start it as a service. The success or failure of this action is returned. To successfully start the message subsystem the process must have sufficient privileges.