How do wake sources work in Windows CE .NET v4.1?
The following KernelIoControl() codes affect wake sources: IOCTL_HAL_ENABLE_WAKE, IOCTL_HAL_DISABLE_WAKE, IOCTL_HAL_GET_WAKE_SOURCE, and IOCTL_HAL_PRESUSPEND. The first three of these take a wake source identifier as an input or output parameter. Wake source identifiers are DWORD values that refer to system wake sources. IOCTL_HAL_PRESUSPEND takes no parameters. If a typical device interrupt can serve as a wake source, the device’s corresponding SysIntr value acts as the wake source ID. SysIntrs are never greater than SYSINTR_MAXIMUM, but values up to (SYSWAKE_BASE—1) are reserved for this group. Microsoft defines some wake sources identifiers in nkintr.h. These include values like SYSWAKE_RING_INDICATE, which indicates that Ring Indicate has been asserted on a COM port. Microsoft reserves values between SYSWAKE_BASE and (SYSWAKE_OEMBASE—1) for generic wake sources. OEMs can define wake source identifiers specific to their platform. These identifiers start at SYSWAKE_OEMBASE. Consider