Hello,
Thank you very much Doron and Ray for you answers and detail explanation.
Regards
Mark
-----Original Message-----
From: Doron Holan [mailto:xxxxx@windows.microsoft.com]
Sent: Tuesday, May 18, 2004 8:17 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Headless keyboard problem.
Let me finally chime in with my experience here
On ACPI enabled machines, I have seen that the acpi tables have the ps2
keyboard and mouse hardcoded in them. This is because it is enumerating
the ps2 ports, not the devices attached to them. This means that the
keyboard and mouse will always be enumerated, even if there are no
devices attached to the ports.
On non acpi machines, some have the ps2 devices hardcoded in the bios
area and always report them and some do the detection and selectively
report them to the OS only if there is a device attached to the port.
Then there is usb legacy support which ray refers to. This is where the
bios fakes out the usb HID devices as ps2 devices until the usb
controller is reset. This is the indication to the bios to stop
generating data on the ps2 ports and interrupts.
All of this is independent of OS (win2k, xp, server, etc). What is
dependent on the OS is how the i8042prt driver handles the enumeration
of a ps2 port with no device attached to it. On win2k gold, i8042prt
always failed the pnp start irp for the ps2 devices if there was no
device attached to the port. Starting in win2k sp1, i8042prt had a
setting where it would treat the absence of the device as a successful
start and rely on the hardware to handle a hotplug later. This is, as I
said before, predicated on the bios always reporting the ps2 port on the
machine regardless of what is attached to the port. Further SPs and OSs
added more functionality (like not reporting to the system event log
that the keyboard was missing).
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ray Trent
Sent: Monday, May 17, 2004 9:54 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Headless keyboard problem.
My suggestion for such a situation is to support hot-plugging of USB
keyboards and mice only :-).
It might be possible to force the Win2k3 DDK version of i8042prt to load
and run on 2k (not that I would ever suggest such a heretical thing, of
course :-). If your machines’ BIOS/KBC can handle post-POST
hot-plugging, that is… otherwise you’re stuck almost no matter what
you do.
Some BIOS’s will enumerate a PS/2 keyboard if you set them up to provide
legacy USB keyboard support… you could try that.
There are other possible ugly solutions, of course. You could write your
own bus driver that enumerates a PS/2 mouse and KB during boot if the
BIOS didn’t. Personally, I’d rather drive 17" red-hot vanadium spikes
into my eyeballs than do that…
Mark Shnaider wrote:
Hello,
Thank you very much Ray for your explanation.
Now its clear for me.
If I understand correctly it means that really Win2000 does not
support
hot plug for keyboard, (as described in the article Q262798) because
keyboard
must be connected during POST and can be disconnected only after POST.
I did not found also in the “BIOS SETUP” any options for POST to
solve
this
problem.
We supposed implement hot-plug keyboard for our system (under Win
2000
server)
that started without keyboard and mouse.
Mark
-----Original Message-----
From: Ray Trent [mailto:xxxxx@synaptics.spamblock.com]
Sent: Friday, May 14, 2004 1:40 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Headless keyboard problem.
I should add: this was as of Win2k… Doron has already indicated that
headless support was added at some point. I’m not sure how that
works…
Ray Trent wrote:
> I’m not sure I understand the questions, but I’ll try to answer
them.
>
> 1) I8042prt doesn’t even have a functional Unload routine, so it’s
> resident until the machine shuts down. That’s assuming, of course,
that
> it was ever started in the first place. This will only happen if
the OS
> thinks that a PS/2 keyboard or mouse is present, and this is
determined
> by the BIOS during POST.
>
> 2) Once i8042prt has been told to initialize itself for a keyboard
(i.e.
> it gets an AddDevice), it sits around and watches for hot-plug
events
> (it can’t notice unplugging, though, because PS/2 doesn’t provide
any
> unplug signal). If it sees one, it reinitializes the KB and
everything
> works fine. However, if it never got an AddDevice (ultimately
because
> the BIOS didn’t tell the OS that a keyboard was present), it will
never
> hook itself up to watch for hot-plugs.
>
> Mark Shnaider wrote:
>
>> Thanks Ray,
>>
>> Please clarify for me :
>> 1 How I8042prt can be stay resident,
>> this driver is unloaded to my opinion (I see it in WinDBG
>> after Reset or shut down)
>> (may be I8042prt stay resident only in hibernate mode
?)
>>
>> 2. If during POST keyboard must be connected ,when keyboard can
be
>> removed
>> and plugged into computer ?
>>
>> Mark
>>
>> -----Original Message-----
>> From: Ray Trent [mailto:xxxxx@synaptics.spamblock.com]
>> Sent: Thursday, May 13, 2004 5:55 PM
>> To: Windows System Software Devs Interest List
>> Subject: Re:[ntdev] Headless keyboard problem.
>>
>>
>> This particular situation sounds odd (I don’t know why i8042prt is
being
>> loaded at all in case 2), but in general this is as expected.
>>
>> Typically, the BIOS detects PS/2 keyboards during POST, and then
either
>> does or doesn’t report to the OS that a device with the keyboard’s
PNP
>> ID is present in the system. If it isn’t present, the
configuration
>> manager normally won’t even load i8042prt. If the PNP ID *is*
present in
>> the system, i8042prt is smart enough (these days to stay
resident
>> and wait for a reset response from the device, and therefore will
handle
>> hot-plugging (or more commonly, suspend/hibernate/resume
operations).
>>
>> Mark Shnaider wrote:
>>
>> > Hello,
>> >
>> > I investigated today my headless key problem under Win2000
>> server ,
>> > use I8042prt from last version DDK server 2003. ( and
serial
>> > WinDBG on second computer).
>> > I get very strange results and can not understand it:
>> >
>> > 1. If I remove keyboard during menu of start Operation
System (
>> > 30sec ) :
>> > “Microsoft Windows 2000 server [debugging enabling]”
>> >
>> > and connect after (in Win logon) - “hot plugging” works
OK!!.
>> > In this case I8xInitializeKeyboard routine set registry
value
>> > KeyboardFailedResett =0 and return
>> > STASTUS_DEVICE_NOT_CONNECTED.
>> > and then keyboard works after plugged into computer.
>> > > 2. But If I do following:
>> > - Shut down computer,
>> > - remove keyboard .
>> > - power computer
>> > The driver I8042prt does not work.
>> >
>> > DriverEnrty I8042prt is called and exit with status
>> STATUS_SUCCESS.
>> > but then (instead AddDevice) I8xUnLoad is called.(!!!)
and
>> > Windows unload I8042prt
>> > driver.
>> >
>> > I have problem in understanding . In both cases keyboard was
>> > disconnected before
>> > starting OS.(!!!) and DriverEnrty does not call any hardware
>> depended
>> > functions.
>> >
>> > Thanks for any help.
>> > Mark
>> >
>> >
>> > > >
>> >
>> >
>> > -----Original Message-----
>> > From: Doron Holan [mailto:xxxxx@windows.microsoft.com]
>> > Sent: Tuesday, May 11, 2004 6:39 PM
>> > To: Windows System Software Devs Interest List
>> > Subject: RE: [ntdev] Headless keyboard problem.
>> >
>> >
>> > I think you meant server 2003, not server 2000. Install the
ddk
from
>> > server 2003, it ships the i8042prt driver that is in the build
so
>> you do
>> > have the latest source for the driver. Look in
pnpi8042\i8042dep.c at
>> > the function I8xServiceParameters. If there is a
defaultHeadless
>> local
>> > variable, then you have the most recent sources and you can go
from
>> > there. I8042prt!Globals.Headless is the value that gets set.
>> >
>> > d
>> >
>> > ________________________________________
>> > From: xxxxx@lists.osr.com
>> > [mailto:xxxxx@lists.osr.com] On Behalf Of Mark
Shnaider
>> > Sent: Tuesday, May 11, 2004 6:36 AM
>> > To: Windows System Software Devs Interest List
>> > Subject: [ntdev] Headless keyboard problem.
>> >
>> >
>> > Hello,
>> > I have problem on some computers with motherboard “Intel
>> D865GLCLK” on
>> > Win2000 server
>> > ( driver I8042prt.sys from 06/19/2003).
>> > I add hotplugging capability:
>> > The new value “Headless”=dword:1
>> > “ReportResetErrors”=dword:1
>> > under key:
>> >
>>
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameter
s]
>>
>> > I understand that may be it is PC/2 controller problem.
>> > Unfortunately the last DDK sample of I8042prt driver
>> > does not contains hotplugging capability,
>> > but I try to investigate this problem (using DDK sample).
>> > I changed I8xInitializeKeyboard and replace I8042prt.sys
driver
>> > In this version I8xInitializeKeyboard routine always return
>> > STATUS_SUCCESS and
>> > “hotplugging keyboard” works.
>> > It seems to me that it is not PC/2 controller problem.
>> > but I do not have source of last version I8042prt.sys in
order to
>> > investigate this problem.
>> > Any thoughts or suggestions would be greatly appreciated.
>> > Best regards
>> > Mark
>> > > —
>> > Questions? First check the Kernel Driver FAQ at
>> > http://www.osronline.com/article.cfm?id=256
>> >
>> > You are currently subscribed to ntdev as:
xxxxx@windows.microsoft.com
>> > To unsubscribe send a blank email to
xxxxx@lists.osr.com
>> >
>> > —
>> > Questions? First check the Kernel Driver FAQ at
>> > http://www.osronline.com/article.cfm?id=256
>> >
>> > You are currently subscribed to ntdev as: xxxxx@arx.com
>> > To unsubscribe send a blank email to
xxxxx@lists.osr.com
>> >
>>
>> –
>> …/ray..
>>
>> Please remove “.spamblock” from my email address if you need to
contact
>> me outside the newsgroup.
>>
>> —
>> Questions? First check the Kernel Driver FAQ at
>> http://www.osronline.com/article.cfm?id=256
>>
>> You are currently subscribed to ntdev as: xxxxx@arx.com
>> To unsubscribe send a blank email to
xxxxx@lists.osr.com
>>
>
–
…/ray..
Please remove “.spamblock” from my email address if you need to
contact
me outside the newsgroup.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@arx.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
–
…/ray..
Please remove “.spamblock” from my email address if you need to contact
me outside the newsgroup.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@arx.com
To unsubscribe send a blank email to xxxxx@lists.osr.com