Talk:PMDD.SYS
Correction to earlier revisions of this page
Earlier revisions of this page described PMDD.SYS as the driver that received all input "whether from keyboard, mouse or other input devices such as touch-sensitive screens and digitizers", converted it into messages, and placed those messages on the system input queue; and described PMDD.SYS as "the interface layer between the presentation manager and the device drivers", also serving "sound cards, PCMCIA, or SCSI devices".
Those claims were wrong, and every one of them belongs to a different component:
- Turning scan codes and mouse reports into queue events is done by KBDBASE.SYS (the keyboard driver, device KBD$, which IBM's own source describes as the "Single Input Queue driver") and by MOUSE.SYS (device MOUSE$). Neither is PMDD.
- The input queue itself belongs to the session manager / WIN32K, not to PMDD. PMDD's only touch with the input stream is that it rewrites mouse move (MEvent) packets and injects altkey-break events on behalf of the pointer machinery.
- PMDD does not mediate sound cards, PCMCIA or SCSI devices. Category 03h is a per-device namespace: a sound-card driver is free to implement its own category-03h IOCtls on its own device name without any involvement from PMDD.
- The paragraph about blank screens and trap screens was a troubleshooting note about a symptom (a display driver failing during PM startup), not a description of this driver.
The confusion is understandable: category 03h is named IOCTL_SCR_AND_PTRDRAW in BSEDEV.H, under the comment "Screen/Pointer-Draw Control". "Pointer-Draw" here means the Presentation Manager's software pointer-drawing service - the code that draws the arrow - not a pointing device.