01.
[DllImport(
"Coredll.dll"
)]
02.
extern
static
int
KernelIoControl(
int
dwIoControlCode, IntPtr lpInBuf,
int
nInBufSize, IntPtr
03.
lpOutBuf,
int
nOutBufSize,
ref
int
lpBytesReturned);
04.
[DllImport(
"Coredll.dll"
)]
05.
extern
static
void
SetCleanRebootFlag();
06.
public
void
HardReset()
07.
{
08.
int
IOCTL_HAL_REBOOT = 0x101003C;
09.
int
bytesReturned = 0;
10.
SetCleanRebootFlag();
11.
KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0,
ref
bytesReturned);
12.
}
13.
14.
public
void
SoftReset()
15.
{
16.
int
IOCTL_HAL_REBOOT = 0x101003C;
17.
int
bytesReturned = 0;
18.
19.
KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0, IntPtr.Zero, 0,
ref
bytesReturned);
20.
}
21.
22.
public
void
ShutDown()
23.
{
24.
int
IOCTL_HAL_SHUTDOWN = 0x1012000;
25.
int
bytesReturned = 0;
26.
KernelIoControl(IOCTL_HAL_SHUTDOWN, IntPtr.Zero, 0, IntPtr.Zero, 0,
ref
bytesReturned);
27.
}