[DllImport("Coredll.dll", SetLastError = true)]
private static extern void SetCleanRebootFlag();
[DllImport("Coredll.dll", SetLastError = true)]
private static extern int KernelIoControl(int dwIoControlCode, IntPtr lpInBuf, int nInBufSize, IntPtr lpOutBuf, int nOutBufSize , ref int lpBytesReturned );
private const int IOCTL_HAL_REBOOT = 0x101003C;
public void HardReset()
{
int bytesReturned = 0;
SetCleanRebootFlag();
KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesReturned );
}