Define a custom IOCTL in your header:
VOID ApplyCalibration(PTOUCH_POINT RawPoint, PTOUCH_POINT CalibratedPoint) kmdf hid minidriver for touch i2c device calibration
// 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. Define a custom IOCTL in your header: VOID
void EvtIoDeviceControl( WDFQUEUE Queue, WDFREQUEST Request, size_t OutputBufferLength, size_t InputBufferLength, ULONG IoControlCode) ULONG IoControlCode) NTSTATUS DeviceAdd(WDFDRIVER Driver
NTSTATUS DeviceAdd(WDFDRIVER Driver, PWDFDEVICE_INIT DeviceInit)