Using the Soft Reset API function on the MobilePro 900 doesn't work

CESD-D-0003

Applies To:

  • Handheld PC 2000

Overview:

When developing for the NEC MobilePro 900 and calling the Software API Reset sub-function the device may experience odd behaviour or even stall.


Solution:

The API Reset sub-function (IOCTL_HAL_REBOOT) of the KernelIoControl was not implemented in the MobilePro 900 HPC2000 ROM Image.

As a result calling this API function will not have any effect on the MobilePro 900 and may cause unexpected behaviour on the target device.

As a work around the following sub-functions of KernelIoControl have been implemented on the MobilePro 900:

  • IOCTL_HAL_GET_UUID
  • IOCTL_HAL_GET_IP_ADDR
  • IOCTL_SET_KERNEL_COMM_DEV
  • IOCTL_HAL_GET_DEVICE_INFO
  • IOCTL_HAL_ENABLE_SCHEDULER_LOGGING
  • IOCTL_QUERY_PHYSICALMEM
  • IOCTL_HAL_ILTIMING
  • IOCTL_HAL_GET_DEVICEID
    Note: In order to use this sub-function you need to use a buffer size equal to the (sizeof(GUID) + sizeof(DEVICEID))

Acknowledgements:

With thanks to Henri Spagnolo of Handheld Attitude for working with us on this article.