[Last Call] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2958
  • Last Modified:

COM PORT-- need utility to determine process that has taken control of COM1

I'm looking for an inexpensive utility to show me what program or process has taken control of a com port.  I have a Fujitsu laptop (with port replicator-- since there is no access to the external serial port on the laptop itself) and need to use com1 for a proprietary program that communicates through the serial port.

The external serial port is correctly set to com1 in bios.  However, when I use hyperterminal to test the availability of com1, it says that com1 is already in use.  The internal modem is using com2 (I've also tested with modem as COM3).  When I change the external serial port to com2 in bios-- hyperterminal behaves as expected-- it takes control of com2 and transmits data through the external serial port.

Bottom line-- some process that I can't identify has control of com1, and I need to figure out what process this is.
1 Solution
try Disabling  com1 in bios.
Com1 and 3 BOTH uses the same IRQ. Presumably you have an IRQ conflict. They're somewhat rare in this day and age with plug'n'play and all that, but it's most likely that you have a piece of hardware using the IRQ for com 1/3. Change the IRQ to something that you DONT have to share with another resource and it should work.
bermanmfAuthor Commented:
Thank you for these suggestions.  However, I can't disable the serial port in the bios, because I need com1 to communicate through the serial port.

And yes, I'm sure it is an address or IRQ conflict with some unknown process.  I can start killing off processes, but that will take forever.  I can't switch to a different IRQ (different COM port) because the proprietary software we use is programmed to only work with COM1.

I suppose there is no utility that sniffs the serial port IRQs and addresses to see what processes are controlling them.  This type of utility is what I'm after.

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Dude... no, that's what I'm saying,.. it's not a conflict with a PROGRAM. It's a conflict with HARDWARE. Go to your BIOS and/or hardware properties and find the "items" that use the same IRQ as your COM1. Then MOVE them to another IRQ. As I recall, com1/2 runs on IRQ 3/4. Sometimes you'll have a USB device, a soundcard, a secondary Network card, a DMA controller, SOMETHING that's using IRQ 3, and if that's the case, then you CAN'T use the COM port at the same time, because a legacy program doesn't support shared IRQs like modern programs can. This is a problem with the architecture of the program and the PC. This is also the reason why it's a good idea to disable the COM/LPT ports in the BIOS if you're not going to use them, legacy programs take up loads of resources and may hang if there's a conflict.

HOWEVER, disable the hardware that USES your IRQ and you should be able to access it just like "normal".

Example of an "old school" IRQ table:

0 System timer
1 Keyboard
2 Programmable interrupt controller
3 COM2
4 Modem or COM1
5 Sound card
6 Floppy controller
7 LPT1
9 Sound card
10 Network card
12 PS/2 Mouse
13 Numeric Data Processor
14 IDE Controller
15 IDE Controller

Now imagine you need room for a second (and maybe also third) HDD controller, a couple fo DMA controllers, a second network card (wireless maybe) & a USB controller    and you'll have a modern day PC.... As you can clearly tell, there's just not enough IRQs to go around. So resources will have to share.
However, if your application doesn't like to share, then you're going to have to MOVE the IRQs manually. Disabling floppy, secondary com and LPT port is a good place to start if you dont need these.
Reboot and go through windows resource assignments. Presumably you'll find a DMA controller sharing resources with COM1. Either MOVE COM1's IRQ to 4 (previously used by COM2 which you disabled, but which you also earlier stated that you could access), or move the DMA controller to IRQ4 and reboot.
bermanmfAuthor Commented:
OK.  I understand these suggestions, but I have disabled everything that can be disabled in bios-- and COM1 still does not work.  I've been over this with Fujitsu tech support for 45', and they could not get COM1 to work after going though a variety of bios settings.  I'm  left with my original question-- does anyone know of an inexpensive utility that can list the resources that are using a com port (or a program that lists the resources that are using the various interupts and addresses in a PC; thus diagnosing a conflict with a COM port.)

Since no one has responded, I'm gong to assume there is no such program.  
Use process explorer from here: http://www.microsoft.com/technet/sysinternals/utilities/ProcessExplorer.mspx
Under find  menu, find handle or DLL. type:

bermanmfAuthor Commented:
Kudos to RePC for this answer.  Process Explorer does find processes that are attached to the serial ports.  I tested this on a different computer with HyperTerminal attached to com1-- and Process Explorer listed hyperterminal as the result of the search.

Unfortunately for me, Process Explorer  returned nothing when I did this on the laptop with the com1 problem.  Thus, there must be a conflict in the bios that even Fujitsu can't find.

But RePC provided an answer to my question, so I'm going to close out this query.

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now