This driver implements custom display functionality for Apple Touch Bar (DFR) on Windows 10. Touch Bar is a USB composite device with two configurations. The first configuration implements basic function and media key input. Windows always takes the first configuration by default.
With proper configuration in the USB composite device driver stack, it is possible to select the second configuration for achieving advanced display and input functionalities.
This driver implements the display (iBridge Display). The composition device also exposes a HID-compliant Touch Pad (actually, a Touch Screen). It does report Y-axis data but such data are useless due to the form factor of Touch Bar. For more information about the HID digitizer, see DFRContentHost for further details.
Keep myself busy during the last few weeks of my internship (thank you LinkedIn & Microsoft)
I should register this project to //oneweek/ next time
No official signed binary will be built at this moment. To build the driver, a
few software needs to be installed including Visual Studio 2019 (with C/C++
workload) and Windows 10 Driver Kit, Version 1903. Install DFRUsbCcgp.inf
for the "Apple Touch Bar" device first, then install DFRDisplayKm.inf
for the
"iBridge Display" device.
You need to turn off Secure Boot as described in the Apple Knowledge Base.
Two IOCTLs are provided:
IOCTL_DFR_UPDATE_FRAMEBUFFER
: Update the FrameBuffer.IOCTL_DFR_CLEAR_FRAMEBUFFER
: Clear the FrameBuffer.
Check the badly-written user-mode application example DFRDisplayUm.Utility.Console
for detailed usage.
- Only Apple T2-based MacBook Pro(s) are confirmed supported. T1 support is added but not yet tested.
- The driver might fails to load on T2 cold boot. Reboot the computer once and it should work.
UDCL
read acknowledgement is implemented, but I have not yet intensively tested.- FrameBuffer update/clear are synchronous calls.
Copyright (c) Bingxing Wang. All rights reserved.
Licensed under the MIT License.