Citrix Com Port Mapping (Part III) The Misunderstanding

This is where I have to come clean and admit that I did not fully understand the model of how Presentation Server works related to Com Ports.  It turns out that doing a NET USE against a client COM port will automatically attempt to use the new way.

NET USE COM1: \\CLIENT\COM1:

This command is like saying that I want to get access to COM1 and I really don’t mind if it is being done the old or new way.  Internally, the provider code (cdmprov.dll) is checking to see if the COM port supports the new interface.  It if does, it uses it by assigning CLIENTPORT to the name in the symbolic link that is used to open the device within the CDM redirector driver.  If it cannot find the new interface, it will just go back to using the old interface.

So, I was wrong about how CPS does this externally but not internally.

Given this new news, now I have to go back and make PortICA more like CPS with the naming conventions for the NET USE.

This should not be a big deal since it will be all about changing our provider to be smarter about the COM ports so that it will do all of this automatically.  The biggest hassle is enumerating the COM ports which it does already.

Sorry for the confusion.  Just think of this as a journey shared through the inner workings of Client Device Mapping.
Thanks to Marco in Citrix Sydney for pointing this out.

Live near Brisbane, Australia. Software developer currently focused on iOS and Android. Avid Google Local Guide

Posted in PortICA
One comment on “Citrix Com Port Mapping (Part III) The Misunderstanding
  1. Brian Ludden says:

    Thanks for the interesting information on COM port mapping in Citrix. I am currently assisting a customer who is using serial foot pedals for a audio transcription program, and the net use command works great for about 90 percent of the PCs. However, there are several that report error 55:

    ERROR_DEV_NOT_EXIST
    55 The specified network resource or device is no longer available.

    The COM port runs fine when the application is installed locally. On one of the affected machines, we reimaged the computer and it made no difference. I also changed the COM port setting on the machine (a DELL) to force COM1 as the description (vice “auto”)

    The only clues I have gotten are that perhaps there are non-compliant ASICs being used or something like that – the information is maddeningly non existent, and I have noticed a few forum threads with no real resolutions. Do you have any experience with this type of situation?

    Thanks again for all the interesting material!

    Brian

Comments are closed.

Archives
Categories
Follow Red Circle Blog on WordPress.com
%d bloggers like this: