-->
Each video output on the display adapter that has a monitor connected to it is represented by a device node that is a child of the display adapter's device node.
Typically, there are only two device objects in the device stack that represent a (video output, monitor) pair: the physical device object (PDO) and the functional device object (FDO). In some cases, there is a filter DO, associated with a vendor-supplied filter driver, above the FDO. For integrated monitors, such as the built-in flat panel on a laptop computer, there might be a filter DO, associated with the Advanced Configuration and Power Interface (ACPI) driver, above the PDO.
If its a Windows 8 driver, it should still work even under Windows 10. Not all monitors will necessarily be updated with native Windows 10 drivers. What is the make and model of the panel you are using? Same subject matter. If I need a new thread, please advise. I have Windows 10 Pro. I just added a new MSI Optix AG32C monitor, but I have a. Multiple-monitor support is provided by Windows 2000 and later; therefore, display driver writers must not implement any special code to provide this support. Display drivers must be implemented without using global variables. All state must exist in the PDEV for a particular display driver.
The following table shows the device stack for a video output that has a connected monitor.
Device object | Required/Optional | Driver |
---|---|---|
Filter DO | Optional, typically not needed | Filter driver supplied by monitor vendor |
FDO | Required | Monitor class function driver (Monitor.sys) supplied by Microsoft |
Filter DO | Required only for integrated ACPI display panels | ACPI driver (Acpi.sys) supplied by Microsoft |
PDO | Required | Bus driver (display miniport/port pair) supplied by display adapter vendor |
User-mode applications use WMI to invoke the services of the monitor class function driver. Those services include exposing a monitor's identification data and (in the case of an ACPI display) setting the brightness of the display.
A monitor stores its identification and capability information in an Extended Display Identification Data (EDID) structure, a format that lets the display supply the host with information about its identity and capabilities independent of the communications protocol used between the monitor and host. A request, from a user-mode application, to read a monitor's EDID is processed by the function driver (Monitor.sys) in that monitor's device stack. When the monitor function driver receives a request to retrieve the monitor's EDID, it sends a request to the display port/miniport driver pair that is represented by the physical device object (PDO) at the bottom of the monitor's device stack. The display port/miniport driver pair uses the Display Data Channel (DDC) protocol to read the monitor's EDID over the I²C bus, which is a simple two-wire bus built into all standard monitor cables.
The EDID can be obtained using the ACPI_METHOD_OUTPUT_DDC method whose alias is defined in Dispmprt.h. This method is required for integrated LCDs that do not have another standard mechanism for returning EDID data.
For more information about communication between display adapters and monitors, see the following topic:
For details about EDID structures and the DDC protocol, see the following standards published by the Video Electronics Standards Association (VESA):
Enhanced Display Data Channel Standard (E-DDC)
Enhanced EDID Standard (E-EDID)
You can download these standards from vesa.org in the Free Standards section.
For details about the I²C bus, see the I²C Bus Specification published by Philips Semiconductors.
-->This section describes the methods that can be used to install print monitors. (You can install a print monitor with the same INF file that you use to install your printer. For more information about INF files, see Plug and Play and Power Management.)
Installing a Language Monitor
To install a language monitor, add a LanguageMonitor entry to the INF DDInstall section of the INF file. In the LanguageMonitor entry, list the displayed name of the language monitor and the name of its DLL, similar to the following INF example. A LanguageMonitor entry must be included for every printer driver that controls a printer requiring the use of the language monitor. For more information, see Printer INF Files.
The Add Driver wizard or the Add Printer wizard reads this INF file and installs language monitors associated with printer drivers.
Alternatively, custom installation applications can install language monitors by calling the spooler's AddMonitor function, to explicitly install only a specific monitor DLL.
(The AddMonitor function is described in the Microsoft Windows SDK documentation.)
Installing a Port Monitor
Drivers Microsoft Monitors For Windows 10
Drivers Microsoft Monitors For Desktop
To install a port monitor, your installation medium must include a printer INF file (that is, an INF file for which Class = Printer) that contains a PortMonitors section. The single entry in this section points to an install section containing two entries: an INF CopyFiles directive that lists all of the files that make up the port monitor, and a PortMonitorDll entry that specifies which DLL in the previous list implements the port monitor interface. The following example code illustrates these points. The PortMonitors section points to an install section named SamplePortMon. In that section, an INF CopyFiles directive copies three files that make up the port monitor. Following that, a PortMonitorDll entry identifies the DLL that implements the port monitor interface.
To install a port monitor, open the Printers folder in Control Panel. On the Printers folder's File menu, select Server Properties. On the File Server Properties dialog, click the Ports tab, and then click the Add Port... button. On the Printer Ports dialog, click the New Port Type... button. Type the path to the INF file in the text input box, and then click OK.
Drivers Microsoft Monitors App
Alternatively, a custom installation application can install the port monitor DLL by a call to the AddMonitor function as described in Port Monitors.