Hard Reset from .NET CF

Have you ever needed to write .NET CF code that forces a device to hard-reset?  Here's my solution:

[DllImport("Coredll.dll")]

extern static int KernelIoControl(int dwIoControlCode, IntPtr lpInBuf, int nInBufSize, IntPtr lpOutBuf, int nOutBufSize , ref int lpBytesReturned );

[DllImport("Coredll.dll")]

extern static void SetCleanRebootFlag();

public

 void HardReset()
{
int IOCTL_HAL_REBOOT = 0x101003C;
int bytesReturned = 0;
SetCleanRebootFlag();
KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesReturned );
}

[Author: Robert Levy]