// 4. Send HID Feature Report to I2C device (Report ID 0x03) UCHAR featureReport[32] = 0; featureReport[0] = 0x03; // Report ID for calibration RtlCopyMemory(&featureReport[1], matrix, sizeof(matrix)); status = WriteI2C_HIDFeatureReport(DeviceContext, featureReport, 32);
// Set the gain and offset values i2cInterface->WriteRegister(I2C_ADDRESS, REG_GAIN_X, CalibrationData->gainX); i2cInterface->WriteRegister(I2C_ADDRESS, REG_OFFSET_Y, CalibrationData->offsetY); kmdf hid minidriver for touch i2c device calibration best
Use the HID_DEVICE_EXTENSION structure and register as a HID minidriver via HidRegisterMinidriver . This keeps your KMDF driver lean. featureReport[0] = 0x03