Download for free here 👉: this video, you will learn how to mirror the screen of your iPhone or iPad wirelessly on a Hisense TV.
Starting with Windows 8, mirror drivers will not install on the system. Mirror drivers described in this section will install and run only on earlier versions of Windows.
However, a special GDI accessibility driver model is available starting with Windows 8 to developers who want to provide mirror driver capabilities in assistive technologies for customers with disabilities or impairments. To learn more about this special driver model, please contact acc_driver@microsoft.com.
A remote display driver model that is based on the mirror driver architecture can also run starting with Windows 8, but has been removed in Windows 10, version 2004. For more information, see Remote Display Drivers.
Note
As of Windows 10, GDI accessibility drivers are no longer recommended for new products and Microsoft will remove support in a future OS version. Support for GDI remote display drivers has already been removed in Windows 10, version 2004. However, creating a remote display solution is still possible by building a custom Remote Protocol Provider and an Indirect Display Driver.
A mirror driver is a display driver for a virtual device that mirrors the drawing operations of one or more additional physical display devices. It is implemented and behaves much like any other display driver; however, its paired video miniport driver is minimal in comparison to a typical miniport driver. See Mirror Driver Support in Video Miniport Drivers (Windows 2000 Model) for more information about miniport drivers in mirroring systems. The Windows Driver Kit (WDK) through the Windows 7 edition (Version 7600) contains a sample mirror driver which includes component source files that are contained in three directories.
Directory | Contains Source Files For |
---|---|
srcvideodisplaysmirrordisp | The mirror driver. |
srcvideominiportmirrormini | The miniport driver. |
srcvideodisplaysmirrorapp | The user-mode service. Also contains mirror.inf. |
GDI supports a virtual desktop and provides the ability to replicate a portion of the virtual desktop on a mirror device. GDI implements the virtual desktop as a graphics layer above the physical display driver layer. All drawing operations start in this virtual desktop space; GDI clips and renders them on the appropriate physical display devices that exist in the virtual desktop.
A mirror device can specify an arbitrary clip region in the virtual desktop, including one that spans more than one physical display device. GDI then sends the mirror device all drawing operations that intersect that driver's clip region. A mirror device can set a clip region that exactly matches a particular physical device; therefore, it can effectively mirror that device.
Note
In Windows 2000 and later, the mirror driver's clip region must include the primary display device.
In Windows Vista and later, the Desktop Windows Manager (DWM) will be turned off when the mirror driver is loaded.
The mirror driver code sample illustrates how to implement a mirror driver. For more information that will help you understand the sample:
Add the REG_DWORD registry entry Attach.ToDesktop to your driver's services keys.
Set this key's entry to 1 (one).
To disable the mirror driver, set this entry to 0 (zero).
As mentioned previously, the driver is installed and operates in a drawing layer that resides above the device layer. Because the mirror driver's coordinate space is the desktop coordinate space, it can span more than one device. If the mirror driver is intended to mirror the primary display, its display coordinates should coincide with the primary display's desktop coordinates.
After the mirror driver is installed, it will be called for all rendering operations that intersect the driver's display region. On a multiple-monitor system, this might not include all drawing operations if the mirror driver overlaps only the primary display device.
It is recommended that a user-mode service be used to maintain the mirror driver's settings. This application can ensure that the driver is loaded correctly at boot time and it can respond appropriately to changes to the desktop by getting notifications of display changes via the WM_DISPLAYCHANGE message.
GDI calls the mirror driver for any 2D graphics DDI drawing operation that intersects the driver's bounding rectangle. Note that GDI does not perform a bounding rectangle check if the surface is a device format bitmap; that is, if the SURFOBJ has an iType of STYPE_DEVBITMAP.
As always, the mirror driver must be implemented without the use of global variables. All state must exist in the PDEV for that particular driver. GDI will call DrvEnablePDEV for every hardware device extension created by the video miniport driver.
The mirror driver should not support DirectDraw.
A mirror driver must set the GCAPS_LAYERED flag to TRUE in the flGraphicsCaps member of the DEVINFO structure.
An accessibility mirror driver must set the GCAPS2_EXCLUDELAYERED and GCAPS2_INCLUDEAPIBITMAPS flags to TRUE in the flGraphicsCaps2 member of the DEVINFO structure.
A mirror driver can optionally support brush realizations by implementing DrvRealizeBrush.
GDI allows the same driver to run on both a single and multiple-monitor system. A driver in a multiple-monitor system need only track its position within the global desktop. GDI provides this position to the driver whenever a Win32 ChangeDisplaySettings call occurs, such as when a user dynamically changes the monitor's position in the desktop by using the Display program in Control Panel. GDI updates the dmPosition member of the DEVMODEW structure accordingly when such a change occurs. A driver can receive notification of such a change by implementing DrvNotify. See Mirror Driver Installation for more information.
Note
Mirror drivers are not required to render with pixel-perfect accuracy when rendering on the client side with such accuracy may be difficult. For example, the adapter/monitor receiving the mirrored image is not required to render Grid Intersect Quantization (GIQ) line drawing and polygon fills with the same precision as the adapter/monitor being mirrored.