// Configure I2C connection using resource list PVIDEO_PNP_DEVICE pDev = CreateDeviceContext(); To allow a user-mode calibration tool to interact with your driver, you must provide a private IOCTL. This is how the calibration GUI collects raw points and sends back coefficients.
During EvtDevicePrepareHardware or EvtDeviceD0Entry , read: kmdf hid minidriver for touch i2c device calibration
VOID ApplyCalibration(PTOUCH_POINT RawPoint, PTOUCH_POINT CalibratedPoint) read: VOID ApplyCalibration(PTOUCH_POINT RawPoint
By following the architecture and practices outlined in this article—custom IOCTL interfaces, registry-backed coefficient storage, real-time coordinate transformation, and thorough debugging—you can build a driver that is robust, certifiable, and adaptable to any touch sensor or environmental condition. registry-backed coefficient storage
In your KMDF driver, implement a EvtIoDeviceControl callback:
Pseudo-code: