Now who's using my COM port?
Yes, in Process Explorer, the application using the port will have a "File" handle called \Device\SerialN
where N is a zero-based index.
Update:
The "N" in "serialN" is not the COM port number, it's the index into the list of active ports. If you only have one port in use, it will always (?) be "serial0", and the second one you open will be "serial1". If you open them in the opposite order, the numbers will be reversed.
Check out the QueryDosDevice API. You should be able to iterate through COM1...COM? and get the "\device\serialN" entry for each open port. I'm not aware of a utility that will do this, you may need to roll your own.
There's a more COM-port-specific example here.