Device - Sileadinc.com Kmdf Hid Minidriver For Touch I2c
SileadInc KMDF HID Miniport (Touch I2C) — Quick Implementation Guide
This guide provides a concise, practical walkthrough for building and troubleshooting a KMDF-based HID minidriver for SileadInc touch I2C devices (commonly exposed via sileadinc.com device families). It assumes familiarity with Windows driver development, Visual Studio, WDK, KMDF, and the HID and I2C driver models.
Part 7: Security and Driver Signing
As a KMDF driver, silead_touch.sys runs with Ring 0 privileges. An unsigned or malicious driver can compromise the entire kernel.
- Check Digital Signature: Right-click on
silead_touch.sys→ Properties → Digital Signatures. The signer should be “Silead Inc.” or the OEM’s CA. - Windows Defender Application Control (WDAC): If your enterprise uses WDAC, you must add the WHQL signature or the specific
.catfile to the policy. - Avoid Driver Scrapers: Never download drivers from third-party “driver updater” sites. Only use
sileadinc.comor your device manufacturer’s support page.
Scenario C: Repurposed Chromebooks
Some older Chromebooks with Silead touch controllers can run Windows if the correct sileadinc.com KMDF driver is manually injected into the Windows image. sileadinc.com kmdf hid minidriver for touch i2c device
Prerequisites
- Windows 10/11 development machine with Visual Studio and Windows Driver Kit (WDK) installed.
- KMDF (WDF) headers and libraries from WDK.
- Access to the device’s hardware ID and sensor/I2C register documentation (from vendor or INF).
- Test signing enabled / driver signing for deployment.
- usb/i2c debugging tools (Device Manager, WinDbg, IOCTL tools).
Symptom: Driver Conflicts with Windows Update
Windows Update may silently replace sileadinc.com KMDF driver with i2chid.sys. To prevent this:
- Use Group Policy → Administrative Templates → System → Device Installation → “Prevent installation of devices not described by other policy settings”.
- Or hide the update using
wushowhide.diagcab.
Method 3: Using OEM Restore Packages
If you have a Chuwi or Teclast device, the manufacturer may provide a driver pack named Touch_I2C_Silead.zip. Extract and run install.bat, which uses pnputil to add the KMDF driver to the driver store. SileadInc KMDF HID Miniport (Touch I2C) — Quick
7. Developer & Reverse Engineering Notes
For those analyzing or porting this driver:
- IRP flow: The minidriver exports
HidTransportEntryand handles IOCTL_HID_READ_DEVICE_CONFIGURATION, IOCTL_HID_SEND_DEVICE_INPUT_REPORT. - Debugging: Enable KMDF verbose logging via
!wdfkd.wdflogdump SileadTouch. - Firmware extraction: The driver may contain embedded firmware as a resource. Use
reshackeron.systo view. - Linux counterpart:
sileadkernel driver (drivers/input/touchscreen/silead.c) – similar I2C protocol but not HID-based.
The Role of the Minidriver
Windows has a built-in driver class for HID devices, but generic drivers often cannot interpret the specific data formats sent by proprietary hardware like Silead touch controllers. Check Digital Signature: Right-click on silead_touch
This is where the Minidriver comes in. The Silead driver is a "mini-driver" because it relies on the Microsoft-provided HID class driver to do the heavy lifting. The Silead driver is responsible only for the hardware-specific tasks:
- Initializing the Silead controller upon boot.
- Reading the raw coordinate data (X, Y points) and pressure information from the I2C bus.
- Converting that raw binary data into standard HID reports that Windows understands.
4.2 Firmware Handling
Some Silead controllers have no onboard flash; the driver must upload a firmware binary (.bin or .fw) during initialization. This is done via I2C burst writes.
Firmware files often named:
gslx680.binsilead_fw.bin- Embedded in driver binary as a resource.