Stream Driver Interface of the Touch Driver MDD (Compact 2013)

3/26/2014

The touch driver is a stream interface driver that has two layers:

  • The model device driver (MDD) layer, which is the upper layer that contains platform-independent code.
  • The platform dependent driver (PDD) layer, which is the lower layer that contains platform-dependent code.

The API of the MDD layer is the stream interface, which treats the resources controlled by the driver as a set of files. The touch driver implements these functions required by the interface: Init, PreDeinit, Deinit, PreClose, Close, PowerDown, PowerUp, Read and IOControl.

GWES uses the touch proxy driver, which in turn uses the touch driver via its stream interface. For more information about the driver architecture, see Touch Driver Architecture. For more information about layered drivers, see Layered Drivers. For more information about stream drivers and the stream driver interface, see Stream Drivers.

The source code for the MDD is in directory %_WINCEROOT%\public\common\oak\drivers\touch\Tchstreammdd.

The following table describes some of the IOCTLs that the MDD implements for various purposes.

IOCTL

Description

IOCTL_TOUCH_GET_TOUCH_PROPS

Returns platform-specific touch panel properties.

IOCTL_TOUCH_GET_SAMPLE_RATE

Returns the current interrupt service thread (IST) sampling rate.

IOCTL_TOUCH_SET_SAMPLE_RATE

Sets the IST sampling rate.

IOCTL_TOUCH_GET_CALIBRATION_POINTS

Overrides the default calibration points that the touch proxy driver receives from the touch calibration DLL.

IOCTL_TOUCH_SET_SAMPLE_TIMEOUTEOUT

Sets the time-out value for retrieving touch samples.

IOCTL_TOUCH_ENABLE_TOUCHPANEL

Enables the touch panel interrupt request queue (IRQ).

IOCTL_TOUCH_DISABLE_TOUCHPANEL

Disables the touch panel IRQ.

IOCTL_TOUCH_GET_SAMPLES

Returns buffered touch samples.

See Also

Concepts

Touch Driver Architecture