VERSION 5.00
Begin VB.Form frmMirror 
   BorderStyle     =   1  'Œ()
   Caption         =   "Triple Mirror State"
   ClientHeight    =   1320
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   4725
   Icon            =   "frmMirror.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   1320
   ScaleWidth      =   4725
   StartUpPosition =   3  'Windows ̊l
   Begin VB.Timer Timer1 
      Left            =   0
      Top             =   480
   End
   Begin VB.Shape LedDrive3 
      FillColor       =   &H0000FF00&
      FillStyle       =   0  'hԂ
      Height          =   495
      Left            =   360
      Shape           =   4  'ۂ݂̂钷`
      Top             =   480
      Width           =   1095
   End
   Begin VB.Label lblDrive3 
      Alignment       =   2  '
      Caption         =   "ExtDRIVE"
      Height          =   255
      Left            =   360
      TabIndex        =   3
      Top             =   120
      Width           =   1095
   End
   Begin VB.Label lblDrive2 
      Alignment       =   2  '
      Caption         =   "DRIVE2"
      Height          =   255
      Left            =   3255
      TabIndex        =   2
      Top             =   120
      Width           =   1095
   End
   Begin VB.Label lblDrive1 
      Alignment       =   2  '
      Caption         =   "DRIVE1"
      Height          =   255
      Left            =   1815
      TabIndex        =   1
      Top             =   120
      Width           =   1095
   End
   Begin VB.Shape LedDrive2 
      FillColor       =   &H0000FF00&
      FillStyle       =   0  'hԂ
      Height          =   495
      Left            =   3255
      Shape           =   4  'ۂ݂̂钷`
      Top             =   480
      Width           =   1095
   End
   Begin VB.Shape LedDrive1 
      FillColor       =   &H000080FF&
      FillStyle       =   0  'hԂ
      Height          =   495
      Left            =   1815
      Shape           =   4  'ۂ݂̂钷`
      Top             =   480
      Width           =   1095
   End
   Begin VB.Label lblSmartState 
      Alignment       =   2  '
      AutoSize        =   -1  'True
      Caption         =   "Label1"
      Height          =   180
      Left            =   0
      TabIndex        =   0
      Top             =   1080
      Width           =   4680
   End
End
Attribute VB_Name = "frmMirror"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

'*****************************************************************************
'   t@C F frmMirror.frm
'
'   @\ F ~[Xe[^X\@\
'
'
' Copyright (C) NEC Corporation 2005
'*****************************************************************************




'*****************************************************************************
' HDD擾p萔`
'*****************************************************************************

' RETURNXe[^X
Private Const FCSRASAPI_SUCCESS   As Integer = &H0
Private Const FCSRASAPI_DRVERR    As Integer = &H1


' HDD̃ANZXw
Private Const HDDSTS_PRI_MAS As Integer = &H10          ' vC}}X^w
Private Const HDDSTS_PRI_SRV As Integer = &H20          ' vC}X[uw
Private Const HDDSTS_SEC_MAS As Integer = &H30          ' ZJ_}X^w
Private Const HDDSTS_SEC_SRV As Integer = &H40          ' ZJ_X[uw

Private Const HDDSTS_MRR_DRV1 As Integer = &H1          ' ~[hCuPw
Private Const HDDSTS_MRR_DRV2 As Integer = &H2          ' ~[hCuQw

' HDD󋵂ޯď (IOCTL_FCSOFTRAS_GET_HDDINF)
Private Const HDDCONN_SMARTERR_BIT  As Byte = &H1       ' SMARTG[  0:   1:ُ
Private Const HDDCONN_CONNECT_BIT   As Byte = &H40      ' HDDڑ      0:ڑ 1:ڑL
Private Const HDDCONN_MIRROR_BIT    As Byte = &H80      ' װ      0:ڑ 1:ڑL

' HDDð (IOCTL_FCSOFTRAS_GET_HDDINF)
Private Const HDDSTS_NORMAL       As Byte = &H0         ' 

Private Const HDDSTS_ERR_DRV1     As Byte = &H10        ' װDrive1̏
Private Const HDDSTS_ERR_DRV2     As Byte = &H11        ' װDrive2̏
Private Const HDDSTS_ERR_DRV3     As Byte = &H12        ' װExtDrivȅ
Private Const HDDSTS_ERR_DRV12     As Byte = &H13       ' װDrive1,2̏
Private Const HDDSTS_ERR_DRV13     As Byte = &H14       ' װExtDrive,Drive1̏
Private Const HDDSTS_ERR_DRV23     As Byte = &H15       ' װExtDrive,Drive2̏

Private Const HDDSTS_RECON_1      As Byte = &H20        ' ްč\z(Drive2Drive1ֺ߰)
Private Const HDDSTS_RECON_2      As Byte = &H21        ' ްč\z(Drive1Drive2ֺ߰)
Private Const HDDSTS_RECON_3      As Byte = &H22        ' ްč\z(ExtDriveDrive1ֺ߰)
Private Const HDDSTS_RECON_4      As Byte = &H23        ' ްč\z(Drive1ExtDriveֺ߰)
Private Const HDDSTS_RECON_5      As Byte = &H24        ' ްč\z(ExtDriveDrive2ֺ߰)
Private Const HDDSTS_RECON_6      As Byte = &H25        ' ްč\z(Drive2ExtDriveֺ߰)
Private Const HDDSTS_RECON_7      As Byte = &H26        ' ްč\z(Drive1ExtDrive,Drive2ֺ߰)
Private Const HDDSTS_RECON_8      As Byte = &H27        ' ްč\z(Drive2ExtDrive,Drive1ֺ߰)
Private Const HDDSTS_RECON_9      As Byte = &H28        ' ްč\z(ExtDriveDrive1,Drive2ֺ߰)

Private Const HDDSTS_RECON_SKIP_1 As Byte = &H30        ' غݔ(Drive1)
Private Const HDDSTS_RECON_SKIP_2 As Byte = &H31        ' غݔ(Drive2)
Private Const HDDSTS_RECON_SKIP_3  As Byte = &H32       ' غݔ(ExtDrive)
Private Const HDDSTS_RECON_SKIP_12 As Byte = &H33       ' غݔ(Drive1,Drive2)
Private Const HDDSTS_RECON_SKIP_13 As Byte = &H34       ' غݔ(ExtDrive,Drive1)
Private Const HDDSTS_RECON_SKIP_23 As Byte = &H35       ' غݔ(ExtDrive,Drive2)

Private Const HDDSTS_ERR_RECON_1  As Byte = &H40        ' װDrive1̏,ްč\z(ExtDriveDrive2ֺ߰)
Private Const HDDSTS_ERR_RECON_2  As Byte = &H41        ' װDrive1̏,ްč\z(Drive2ExtDriveֺ߰)
Private Const HDDSTS_ERR_RECON_3  As Byte = &H42        ' װDrive2̏,ްč\z(ExtDriveDrive1ֺ߰)
Private Const HDDSTS_ERR_RECON_4  As Byte = &H43        ' װDrive2̏,ްč\z(Drive1ExtDriveֺ߰)
Private Const HDDSTS_ERR_RECON_5  As Byte = &H44        ' װExtDrivȅ,ްč\z(Drive2Drive1ֺ߰)
Private Const HDDSTS_ERR_RECON_6  As Byte = &H45        ' װExtDrivȅ,ްč\z(Drive1Drive2ֺ߰)


Private Const vbOrange As Long = &H80FF&                ' ԕ\p̐Fݒ(j

'*****************************************************************************
' \tgRASI/F`
'*****************************************************************************
Private Declare Function fcsoftrasOpen Lib "FcSrasapiP.dll" Alias "fcsoftrasOpenP" () As Long
Private Declare Function fcsoftrasClose Lib "FcSrasapiP.dll" Alias "fcsoftrasCloseP" () As Long
Private Declare Function fcsoftrasGetMirrorStatus Lib "FcSrasapiP.dll" Alias "fcsoftrasGetMirrorStatusP" (ByVal DriveNum As Byte, ByRef buff() As Byte) As Long
Private Declare Function fcsoftrasGetMirrorReconProgress Lib "FcSrasapiP.dll" Alias "fcsoftrasGetMirrorReconProgressP" (ByVal DriveNum As Byte, buff As Byte) As Long

'****************************************************
'   ֐ F Form_Load
'   @\   Fʂ̋N()
'      F Ȃ
'   ߂l F Ȃ
'****************************************************
Private Sub Form_Load()
    ' ƃtH_st@CtH_ɕύX DLLǂݏo
    ChDrive App.Path
    ChDir App.Path

    ' \tgRAS̃Cu
    Call fcsoftrasOpen
    ' ݂̏Ԃ擾Ɖʂւ̔f
    Call subSetMirrorState
    
    ' ʍXVp̃^C}[ݒ
    Timer1.Interval = 30000                             ' 30bݒ
    Timer1.Enabled = True                               ' L

End Sub

'****************************************************
'   ֐ F Form_Unload
'   @\   Fʂ̏I(㏈)
'      F Ȃ
'   ߂l F Ȃ
'****************************************************
Private Sub Form_Unload(Cancel As Integer)
    ' \tgRAS̃CuI
    Call fcsoftrasClose
End Sub

'****************************************************
'   ֐ F Timer1_Timer
'   @\   F^C}[ɂʍXV
'      F Ȃ
'   ߂l F Ȃ
'****************************************************
Private Sub Timer1_Timer()
    ' ݂̏Ԃ擾Ɖʂւ̔f
    Call subSetMirrorState
End Sub

'****************************************************
'   ֐ F subSetMirrorState
'   @\   F~[̏Ԃ擾Aʂ̍XVsȂ
'      F Ȃ
'   ߂l F Ȃ
'****************************************************
Private Sub subSetMirrorState()
    Dim buff(0 To 3) As Byte                            ' ~[Xe[^Xۑp
    Dim Ret As Integer                                  ' ߂lۑp
    Dim Progress As Byte                                ' i󋵕ۑp
    
    ' ~[Xe[^X̎擾
    Ret = fcsoftrasGetMirrorStatus(HDDSTS_PRI_MAS, buff())
    
    ' ~[Xe[^X擾H
    If FCSRASAPI_SUCCESS = Ret Then

        With lblSmartState
            ' ~[Xe[^X̏󋵂ɂʂXV
            Select Case buff(0)
            
            ' 
            Case HDDSTS_NORMAL
                .Caption = "Normal"                     ' ڍ׏ݒ
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' hCuPG[
            Case HDDSTS_ERR_DRV1
                .Caption = "DRIVE1 failure"             ' ڍ׏ݒ
                LedDrive1.FillColor = vbRed             ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' hCuQG[
            Case HDDSTS_ERR_DRV2
                .Caption = "DRIVE2 failure"             ' ڍ׏ݒ
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbRed             ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' ghCuG[
            Case HDDSTS_ERR_DRV3
                .Caption = "ExtDRIVE failure"           ' ڍ׏ݒ
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbRed             ' ghCu LEDݒ()

            ' hCuPAQG[
            Case HDDSTS_ERR_DRV12
                .Caption = "DRIVE1,DRIVE2 failure"      ' ڍ׏ݒ
                LedDrive1.FillColor = vbRed             ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbRed             ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' ghCuAhCuPG[
            Case HDDSTS_ERR_DRV13
                .Caption = "ExtDRIVE,DRIVE1 failure"    ' ڍ׏ݒ
                LedDrive1.FillColor = vbRed             ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbRed             ' ghCu LEDݒ()

            ' ghCuAhCuQG[
            Case HDDSTS_ERR_DRV23
                .Caption = "ExtDRIVE,DRIVE2 failure"    ' ڍ׏ݒ
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbRed             ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbRed             ' ghCu LEDݒ()

            ' f[^č\z(DRIVE1DRIVE2)
            Case HDDSTS_RECON_1
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(DRIVE1<-DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(DRIVE1<-DRIVE2)"
                End If
                LedDrive1.FillColor = vbOrange          ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' f[^č\z(DRIVE1DRIVE2)
            Case HDDSTS_RECON_2
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(DRIVE1->DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(DRIVE1->DRIVE2)"
                End If
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbOrange          ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' f[^č\z(ExtDRIVEDRIVE1)
            Case HDDSTS_RECON_3
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(ExtDRIVE->DRIVE1)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(ExtDRIVE->DRIVE1)"
                End If
                LedDrive1.FillColor = vbOrange          ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' f[^č\z(ExtDRIVEDRIVE1)
            Case HDDSTS_RECON_4
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(ExtDRIVE<-DRIVE1)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(ExtDRIVE<-DRIVE1)"
                End If
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbOrange          ' ghCu LEDݒ()

            ' f[^č\z(ExtDRIVEDRIVE2)
            Case HDDSTS_RECON_5
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(ExtDRIVE->DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(ExtDRIVE->DRIVE2)"
                End If
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbOrange          ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' f[^č\z(ExtDRIVEDRIVE2)
            Case HDDSTS_RECON_6
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(ExtDRIVE<-DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(ExtDRIVE<-DRIVE2)"
                End If
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbOrange          ' ghCu LEDݒ()

            ' f[^č\z(DRIVE1ExtDRIVE,DRIVE2)
            Case HDDSTS_RECON_7
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(DRIVE1->ExtDRIVE,DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(DRIVE1->ExtDRIVE,DRIVE2)"
                End If
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbOrange          ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbOrange          ' ghCu LEDݒ()

            ' f[^č\z(DRIVE2ExtDRIVE,DRIVE1)
            Case HDDSTS_RECON_8
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(DRIVE2->ExtDRIVE,DRIVE1)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(DRIVE2->ExtDRIVE,DRIVE1)"
                End If
                LedDrive1.FillColor = vbOrange          ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbOrange          ' ghCu LEDݒ()

            ' f[^č\z(ExtDRIVEDRIVE1,DRIVE2)
            Case HDDSTS_RECON_9
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "Currently copying(ExtDRIVE->DRIVE1,DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "Currently copying(ExtDRIVE->DRIVE1,DRIVE2)"
                End If
                LedDrive1.FillColor = vbOrange          ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbOrange          ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' XLbvR
            Case HDDSTS_RECON_SKIP_1
                .Caption = "Skip recon(DRIVE1)"
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' XLbvR
            Case HDDSTS_RECON_SKIP_2
                .Caption = "Skip recon(DRIVE2)"
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' XLbvR
            Case HDDSTS_RECON_SKIP_3
                .Caption = "Skip recon(ExtDRIVE)"
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' XLbvR
            Case HDDSTS_RECON_SKIP_12
                .Caption = "Skip recon(DRIVE1,DRIVE2)"
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' XLbvR
            Case HDDSTS_RECON_SKIP_13
                .Caption = "Skip recon(ExtDRIVE,DRIVE1)"
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' XLbvR
            Case HDDSTS_RECON_SKIP_23
                .Caption = "Skip recon(ExtDRIVE,DRIVE2)"
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' hCuPG[Af[^č\z(ExtDRIVEDRIVE2)
            Case HDDSTS_ERR_RECON_1
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "DRIVE1 failure,Currently copying(ExtDRIVE->DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "DRIVE1 failure,Currently copying(ExtDRIVE->DRIVE2)"
                End If
                LedDrive1.FillColor = vbRed             ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbOrange          ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' hCuPG[Af[^č\z(ExtDRIVEDRIVE2)
            Case HDDSTS_ERR_RECON_2
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "DRIVE1 failure,Currently copying(ExtDRIVE<-DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "DRIVE1 failure,Currently copying(ExtDRIVE<-DRIVE2)"
                End If
                LedDrive1.FillColor = vbRed             ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbOrange          ' ghCu LEDݒ()

            ' hCuQG[Af[^č\z(ExtDRIVEDRIVE1)
            Case HDDSTS_ERR_RECON_3
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "DRIVE2 failure,Currently copying(ExtDRIVE->DRIVE1)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "DRIVE2 failure,Currently copying(ExtDRIVE->DRIVE1)"
                End If
                LedDrive1.FillColor = vbOrange          ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbRed             ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbGreen           ' ghCu LEDݒ()

            ' hCuQG[Af[^č\z(ExtDRIVEDRIVE1)
            Case HDDSTS_ERR_RECON_4
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "DRIVE2 failure,Currently copying(ExtDRIVE<-DRIVE1)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "DRIVE2 failure,Currently copying(ExtDRIVE<-DRIVE1)"
                End If
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbRed             ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbOrange          ' ghCu LEDݒ()

            ' ghCuG[Af[^č\z(DRIVE1DRIVE2)
            Case HDDSTS_ERR_RECON_5
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "ExtDRIVE failure,Currently copying(DRIVE1<-DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "ExtDRIVE failure,Currently copying(DRIVE1<-DRIVE2)"
                End If
                LedDrive1.FillColor = vbOrange          ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbGreen           ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbRed             ' ghCu LEDݒ()

            ' ghCuG[Af[^č\z(DRIVE1DRIVE2)
            Case HDDSTS_ERR_RECON_6
                ' i̎擾
                If FCSRASAPI_SUCCESS = fcsoftrasGetMirrorReconProgress(HDDSTS_PRI_MAS, Progress) Then
                                                        ' ڍ׏ݒ(i܂)
                    .Caption = "ExtDRIVE failure,Currently copying(DRIVE1->DRIVE2)" & Progress & "%"
                
                ' i̎擾s
                Else
                                                        ' ڍ׏ݒ
                    .Caption = "ExtDRIVE failure,Currently copying(DRIVE1->DRIVE2)"
                End If
                LedDrive1.FillColor = vbGreen           ' hCu1 LEDݒ()
                LedDrive2.FillColor = vbOrange          ' hCu2 LEDݒ()
                LedDrive3.FillColor = vbRed             ' ghCu LEDݒ()
            End Select
        End With
    Else
        ' ~[Xe[^X̎擾ŝŖ̏󋵂\
        lblSmartState.Caption = "None mirror board"
        LedDrive1.FillColor = vbWhite
        LedDrive2.FillColor = vbWhite
        LedDrive3.FillColor = vbWhite
    End If
End Sub

