Share via


Citrix Application Hosted Control Process

The Citrix Application Hosted Control uses the following process to launch the executable file (also called the GenericStub). (This is a high-level overview; for details, refer to the subsections that follow.)

  1. Client-side: CitrixApplicationHostedControl starts. It uses the configured .ica file (specified in the initString) to launch the configured Citrix-published application.
  2. Server-side: The server-side executable file is started and immediately requests the CCF application’s initString from the client.
  3. Server-side: If the application initString request times out (RecvTimeoutInMilliseconds), the GenericStub determines that this instance of the Citrix-published application is not a CCF–hosted application and terminates.
  4. Server-side: Using information provided by the initString, the GenericStub then acquires the process of the Citrix-published application. That is, it attempts to identify which NT process contains the launched Citrix-published application. If it cannot identify the process, the GenericStub continues to run and sends a message to the client that can be viewed if when tracing has been turned on. The process skips step 5 (below), and goes to step 6.
  5. Server-side: After it acquires the process, the GenericStub identifies the designated top window of the application. The configuration commonly used for external applications is referenced by the GenericStub, and it can be used to select a non-default top window. If it cannot find the top window, the GenericStub continues to run and sends a message to the client that can be viewed if tracing has been turned on.
  6. Server-side: Finally, the configured application adapter (which is specified in the received initString) is instantiated. The found process and top window are provided to the adapter at this point. If the process could not be found, the value will be null. If the process is found but the top window could not be found, the value will be 0. If the adapter could not be instantiated, the GenericStub continues to run and sends a message to the client that can be viewed if tracing has been turned on.

At this point, all adapter operations are routed between the client and the server. If the process and/or the top window could not be found, the adapter will have a null value for the Process, and a 0 value for the top-window handle. When the Citrix-published application is closed (when the session closes in Agent Desktop), the GenericStub is also terminated.