#118830 - 01/10/2002 11:29
How do I get Windows 2000 to share IRQs for COMs?
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
In past operating systems, I have been able to share IRQs for COM ports.
For example, I could have a modem on COM2 using interrupt 3, and also have a serial port on COM4 using interrupt 3.
I couldn't use the modem and COM4 at the same time, but at least they would both work independently and any software trying to access COM4 wouldn't complain about it not being available.
However, I'm unable to get Win2k to play nice with this situation. How do I tell 2k to ignore the fact that these two COMs share an IRQ and that it's OK to let them do it?
|
Top
|
|
|
|
#118831 - 01/10/2002 11:37
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: tfabris]
|
pooh-bah
Registered: 15/01/2002
Posts: 1866
Loc: Austin
|
umm. shouldnt you have plenty of availabe irqs to change from, so you dont need them to share?
|
Top
|
|
|
|
#118832 - 01/10/2002 11:43
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: RobotCaleb]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
The COM port is built into the motherboard and the BIOS controls its IRQ, so I can't change it, at least not easily in any way I can see.
I don't want to change the modem's IRQ at the moment, as that involves physically opening the case. I understand this would be an option, but I'm trying to avoid that at the moment because this is clearly a software problem, not a hardware problem. I don't like the idea of having to resort to hardware changes that I shouldn't need to make.
|
Top
|
|
|
|
#118833 - 01/10/2002 11:45
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: tfabris]
|
pooh-bah
Registered: 15/01/2002
Posts: 1866
Loc: Austin
|
|
Top
|
|
|
|
#118834 - 01/10/2002 11:47
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: RobotCaleb]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
That is the one that I saw from Google, too. Only I can't open the page, not even google's cached copy of the page. I don't know why. If you can open the page, I'd love it if you could paste any relevant text into this thread.
|
Top
|
|
|
|
#118835 - 01/10/2002 11:53
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: tfabris]
|
carpal tunnel
Registered: 25/12/2000
Posts: 16706
Loc: Raleigh, NC US
|
I realize that this is a legitimate gripe, and I feel for you ( maybe you should choose another operating system), but, really, maybe you should upgrade some of these decade-old hardware devices you're using.
_________________________
Bitt Faulk
|
Top
|
|
|
|
#118836 - 01/10/2002 11:55
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: tfabris]
|
pooh-bah
Registered: 15/01/2002
Posts: 1866
Loc: Austin
|
yeah, googles cache tries to pull from the page, and the page takes forever to load.
snip
have to install win2k on a system that has 4 comports built onto the motherboard. The comports can only be set to IRQ 3 and 4 in the BIOS setup. All 4 comports have been verified to work properly under Windows 98 and NT. However, even though Windows 2000 detects all 4 comports, it gives an error in the hardware manager that there is a conflict between two ports on IRQ 3 and two ports on IRQ 4. Win 2000 then happily disables all four comports and I can't get any of them to open. If I use just COM 1 and 2 and remove COM 3 and 4, both COM 1 and 2 ports work just fine. However, I need all four to work. I've played with the BIOS settings as well, going from Auto PnP to Manual, without success. Note, that COMS 1 and 3 will not be utilized at the same time, and COMS 2 and 4 will not be utilized at the same time.
Anybody have a solution for installing 4 COM ports at the same time under Windows 2000 that share IRQ 3 and 4?
---------------
In your BIOS you will be able to select the settings for your 2 COM Ports(which is really all you have by the way, unless you have some special hardware that simulates four). Sometimes it won't say COM Port, and may say Serial Port instead. Here you can change the resources for the Input/Output Range. COM 1 should be 03F8-03FF with IRQ 4, and COM 2 should be 02F8-02FF with IRQ 3.
After reading your question again, I notice you say you need all 4 to work. Why? Your modem can use COM 2. And if you have a Serial mouse, it can use COM 1. A PS/2 Device does not use any COM Port. If these 2 ports are full, use a USB device instead.
If all else fails, change the resources manually for every one of your devices until you find a pattern that best suits you. However, this is VERY RISKY and should not be messed with unless you are an expert or at least willing to learn some hard lessons.
------------------
Aleinss:
I tried manually assigning COM3 and COM4 to different IRQ's so they wouldn't conflict with COM1 and COM2. COM3 will change to a new IRQ, but COM4 seem to be sticky. It's very odd, but still doesn't work. Yes, you are correct that technically COM1/3 and COM2/4 are technically a no-no using the same IRQ. However, I'm not using COM1 and 3 at the same time. Nor am I using COM2 and 4 at the same time. So in that case, it is ok.
-------------------
New info found. There is a key in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Serial\PermitShare DWORD set to 0 by default. Even though Windows NT is also set to 0, NT will still allow 4 COM ports that share 2 IRQs. Under 2000, it's worth a try changing it from 0 to 1 ...
------------------------
Nope, changing PermitShare in the registry didn't matter. However, I was able to get COM3 and COM4 to different IRQs (7 and 9). It took 2 reboots to get COM4 to leave it's happy home of IRQ 3, but it finally changed. At that point, COM1 and COM2 worked, but COM3 and COM4 usage just locks the current application and the only way to kill it is through task manager.
I have the source code to the serial driver. I'm going to modify it so it cannot tell the OS that there are any conflicts. Of course, this is a bit on the extreme side, but I gotta get this working. More to follow...
--------------------
I modified the device driver so it supposedly would allow IRQ sharing. Not only were PnP functions modified, but also some legacy functions. Primary functions that I modified were IOConnectInterrupt() and IoReportDetectedDevice(). After applying the modified driver and rebooting the system, it turned out that my changes did absolutely nothing to remedy the situation. Perhaps the driver cannot tell the OS to mark an IRQ as sharable under Win 2000? (This must be bug # 44848477446373)
What did end up working is this:
First, I removed ALL serial ports in the hardware manager and rebooted the system. I then added the first serial port MANUALLY. NO, DO NOT LET THE SYSTEM DETECT IT! (One would have thought that this is equivalent to turning off the "use automatic settings" option and entering the port/IRQ manually. But that doesn't seem to work in this case). Once the first port was added, I rebooted the system again. After that, I added the 2nd serial port MANUALLY and rebooted the system again. At this point, a very bizarre thing happened. After the system came back up, the last 2 COM ports magically appeared and installed as PnP devices (where the first two serial ports are showing legacy devices). Very bizarre, but all 4 ports work together now.
Windows 2000 needs some serious help. It will be a while before I switch to it.
--------------------------
Well, don't be so hard on Windows 2000. It is an infant OS that's only been out for a few months. With 50 million lines of code, expect little nuances here and there. The only COM trouble I have had was with Beta 3. I had to, like you did, manually add the COM port myself, as Windows 2000 wouldn't find it. After I did this and rebooted, it found my modem. This problem was gone by the RCs.
--------------------
You're lucky. I'm still at work and it's 12:30am. It turns out that the motherboard modification was soldered to the wrong IRQ pin on the Winbond chip. I've been troubleshooting it for the last six hours wondering why I couldn't get any data back from COM4.
More info: the motherboard modification given to me from the board manufacturer does not allow it to share IRQ's 3 and 4. It actually moves the second two COM ports up to IRQ's 10 and 11.
Thus, sharing IRQ's 3 and 4 under 2000 seem to require a driver modification, and then manually adding them.
Yes, 2000 is an infant OS, I agree. But the QA guy for 2000 is a hosehead.
--------------
that should be most of the pertinent info.
|
Top
|
|
|
|
#118837 - 01/10/2002 12:00
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: tfabris]
|
veteran
Registered: 19/06/2000
Posts: 1495
Loc: US: CA
|
Comment from Brain2000 03/28/2000 07:42AM PST
I modified the device driver so it supposedly would allow IRQ sharing. Not only were PnP functions modified, but also some
legacy functions. Primary functions that I modified were IOConnectInterrupt() and IoReportDetectedDevice(). After
applying the modified driver and rebooting the system, it turned out that my changes did absolutely nothing to remedy the
situation. Perhaps the driver cannot tell the OS to mark an IRQ as sharable under Win 2000? (This must be bug #
44848477446373)
What did end up working is this:
First, I removed ALL serial ports in the hardware manager and rebooted the system. I then added the first serial port
MANUALLY. NO, DO NOT LET THE SYSTEM DETECT IT! (One would have thought that this is equivalent to turning off
the "use automatic settings" option and entering the port/IRQ manually. But that doesn't seem to work in this case). Once
the first port was added, I rebooted the system again. After that, I added the 2nd serial port MANUALLY and rebooted the
system again. At this point, a very bizarre thing happened. After the system came back up, the last 2 COM ports magically
appeared and installed as PnP devices (where the first two serial ports are showing legacy devices). Very bizarre, but all
4 ports work together now.
Windows 2000 needs some serious help. It will be a while before I switch to it.
Edit: Damn, just a little too slow. Stupid dial-up! Sad that my network and internet connection at my house is better than the one here at work. :P
Edited by ricin (01/10/2002 12:03)
_________________________
Donato MkII/080000565 MkIIa/010101253 ricin.us
|
Top
|
|
|
|
#118838 - 01/10/2002 13:01
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: RobotCaleb]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
Thank you for posting that information.
Doesn't do me much good, as I don't have the ability to modify the source code for the serial port driver.
|
Top
|
|
|
|
#118839 - 01/10/2002 14:41
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: tfabris]
|
veteran
Registered: 19/06/2000
Posts: 1495
Loc: US: CA
|
According to his post, it didn't work anyway. The second part of his post is what got it to work, which doesn't require mucking with the drivers.
_________________________
Donato MkII/080000565 MkIIa/010101253 ricin.us
|
Top
|
|
|
|
#118840 - 01/10/2002 16:08
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: tfabris]
|
pooh-bah
Registered: 15/01/2002
Posts: 1866
Loc: Austin
|
did you try the registry value he said dint work?
|
Top
|
|
|
|
#118841 - 01/10/2002 16:27
Re: How do I get Windows 2000 to share IRQs for COMs?
[Re: RobotCaleb]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
did you try the registry value he said dint work?
No, because he said it didn't work.
I'll try the manual adding of COM ports and see if that does it.
|
Top
|
|
|
|
|
|