
// ̃NX FcSoftRas.dll GNX|[g܂


//***********************************************************************
// ֐`
//***********************************************************************

#ifdef __cplusplus          // C++CallČ`̊֐Callolɂ
extern  "C" {
#endif

FCSOFTRAS_API DWORD fcsoftrasOpen( VOID );
FCSOFTRAS_API DWORD fcsoftrasClose( VOID );
FCSOFTRAS_API DWORD fcsoftrasGetVersion( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetTemp( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetFan( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetFanInf( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetVoltage( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetPciError( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetHDDInf( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetMirrorStatus( BYTE byDriveNum, LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetSSDStatus( BYTE byDriveNum, LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetSMART( BYTE byDriveNum, LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetRevRcn( BYTE byDriveNum, LPBYTE lpbyGetCnt );
FCSOFTRAS_API DWORD fcsoftrasSetRevRcn( BYTE byDriveNum, BYTE bySetCnt );
FCSOFTRAS_API DWORD fcsoftrasGetRTCTime( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasSetRTCTime( LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasReleaseMirrorDrive( BYTE byDriveNum );
FCSOFTRAS_API DWORD fcsoftrasGetMirrorSMARTMode( BYTE byDriveNum, LPBYTE lpModeCode );
FCSOFTRAS_API DWORD fcsoftrasSetMirrorSMARTMode( BYTE byDriveNum, BYTE byModeCode );
FCSOFTRAS_API DWORD fcsoftrasGetHDDErrorLog( BYTE byDriveNum, LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetHDDErrorLog2( BYTE byDriveNum, LPBYTE lpBuff, DWORD nBuffSize );
FCSOFTRAS_API DWORD fcsoftrasGetHDDIdentify( BYTE byDriveNum, LPBYTE lpBuff, DWORD nBuffSize, LPBYTE lpAtaCmd );
FCSOFTRAS_API DWORD fcsoftrasGetMirrorReconProgress( BYTE byDriveNum, LPBYTE lpModeCode );
FCSOFTRAS_API DWORD fcsoftrasExitWindows( UINT uFlags );
FCSOFTRAS_API DWORD fcsoftrasResetAndStartWDT(DWORD dwWdtTimerValue);
FCSOFTRAS_API DWORD fcsoftrasStopWDT(void);

#ifdef __cplusplus
}
#endif


//***********************************************************************
// 萔`ꗗ
//***********************************************************************


// RETURNXe[^X
#define	FCSRASAPI_SUCCESS	0x00
#define	FCSRASAPI_DRVERR	0x01

// G[ڍ׏
#define FCRASERR			0x10000000
#define FCRASERR_OPEN		(FCRASERR | 1)


// FCRASײ ްޮݏ ް
#define LEN_VAR_MODELNUM	40			// ް      (ASCII 40)
#define LEN_VAR_FIRMREV		8			// ̧ѳ޼ޮ (ASCII  8)
#define LEN_VAR_SELIALNUM	20			// رް      (ASCII 20)

// HDD SMART ް
#define	LEN_SMART			512			// SMARTް = 512byte
#define	LEN_SMART2			1024		// SMARTް = 1024byte (ATTRIBUTE+THRESHOLD)

// HDD ErrorLog ް
#define PAGE_LEN_ERRLOG		512			// ErrorLog 1߰޻
#define PAGE_NUM_ERRLOG		64			// ErrorLog ߰ސ
#define PAGE_NUM_ERRLOG2	512			// ErrorLog ߰ސ2
										// ErrorLogް = 512x64byte
#define	LEN_ERRLOG			PAGE_LEN_ERRLOG*PAGE_NUM_ERRLOG
										// ErrorLogް = 512x512byte
#define	LEN_ERRLOG2			PAGE_LEN_ERRLOG*PAGE_NUM_ERRLOG2






// xװðޯď (fcsoftrasGetTemp)
#define TEMP_ERR_CPU	0x01			// CPUx    0: 1:װ
#define TEMP_ERR_SYS	0x02			// щx   0: 1:װ

// xܰݸ޽ðޯď (fcsoftrasGetTemp)
#define TEMP_WAR_CPU	0x01			// CPUx    0: 1:װ
#define TEMP_WAR_SYS	0x02			// щx   0: 1:װ

// ̧݉]װðޯď (fcsoftrasGetFan)
#define FAN_ERR_DATA1	0x01			// ̧1] 0: 1:װ
#define FAN_ERR_DATA2	0x02			// ̧2] 0: 1:װ
#define FAN_ERR_DATA3	0x04			// ̧3] 0: 1:װ
#define FAN_ERR_DATA4	0x08			// ̧4] 0: 1:װ
#define FAN_ERR_DATA5	0x10			// ̧5] 0: 1:װ

// dװðޯď (fcsoftrasGetVoltage)
#define VOLT_ERR_DATA1	0x001			// d1      0: 1:װ
#define VOLT_ERR_DATA2	0x002			// d2      0: 1:װ
#define VOLT_ERR_DATA3	0x004			// d3      0: 1:װ
#define VOLT_ERR_DATA4	0x008			// d4      0: 1:װ
#define VOLT_ERR_DATA5	0x010			// d5      0: 1:װ
#define VOLT_ERR_DATA6	0x020			// d6      0: 1:װ
#define VOLT_