Out-of-Process COM Servers in 32-bit TestStand and 64-bit TestStand

TestStand 2019 Help

Edition Date: May 2019

Part Number: 370052AA-01

»View Product Info
Download Help (Windows Only)

Because COM inherently supports inter-process communication across architectures, only a single instance of an out-of-process COM server might be necessary to support the same adapter step in 32-bit TestStand and in 64-bit TestStand. By default, if only one version of the server is registered, TestStand automatically locates that version of the server. If a 32-bit version and a 64-bit version of the server are registered, 32-bit TestStand locates the 32-bit server, and 64-bit TestStand locates the 64-bit server. You can change this default behavior in the registry on a per-server basis to require matching bitness, but changing this behavior affects all clients of the server on the computer, not just TestStand. For out-of-process COM servers, TestStand relies on the launch behavior specified for the server in the Microsoft Windows Registry. There is no way within TestStand to control which bitness of an out-of-process COM server TestStand uses. The particular functionality and performance requirements of the server and the application determine any migration tasks you must perform.

Although out-of-process servers do not have to match the bitness of TestStand, problems might arise depending on the design and expected behavior of the server when the server bitness does not match the bitness of TestStand. For example, if a 64-bit version of the server is expected to be registered but is missing, TestStand automatically locates the 32-bit server by default. In this scenario, the step might function correctly during basic testing but might have poor performance, run out of memory unexpectedly, or exhibit other subtle differences in behavior.

Another issue to consider is that when you register a 32-bit version and a 64-bit version of a singleton server, the server is actually a doubleton composed of two separate singleton servers. 64-bit clients share a single instance of the 64-bit server, and 32-bit clients share a separate single instance of the 32-bit server. The design and functionality of the server determine the issues you must resolve.

Use bitness-conditional code with the ActiveX/COM Adapter when the 32-bit version and the 64-bit version of COM interfaces differ.

WAS THIS ARTICLE HELPFUL?

Not Helpful