User's Manual
ProgrammingChapter —7
258 700 Series Color Mob ile Computer User’s Manual
IOCTL_HAL_GET_RESET_INFO
This IOCTL code allows software to check the type of the most recent
reset.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_RESET_INFO,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf Should be set to NULL.
lpInBufSize Should be set to zero.
lpOutBuf Must point to a HAL_RESET_INFO structure. See sample below.
nOutBufSize ThesizeofHAL_RESET_INFOinbytes.
lpBytesReturned The number of bytes returne d by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the extended error value.
Sample
typedef struct {
DWORD ResetReason; // most recent reset type
DWORD ObjectStoreState; // state of object store
} HAL_RESET_INFO, * PHAL_RESET_INFO;
// Reset reason types
#define HAL_RESET_TYPE_UNKNOWN 0
#define HAL_RESET_REASON_HARDWARE 1 // cold
#define HAL_RESET_REASON_SOFTWARE 2 // suspend
#define HAL_RESET_REASON_WATCHDOG 4
#define HAL_RESET_BATT_FAULT 8 // power fail
#define HAL_RESET_VDD_FAULT 16 // warm boot
// Object store state flags
#define HAL_OBJECT_STORE_STATE_UNKNOWN 0
#define HAL_OBJECT_STORE_STATE_CLEAR 1