sGUI_PHY_DRV

The sSMART_DATA structure contains information about the S.M.A.R.T.

 

typedef struct sSMART_DATA

{

        BYTE smIndex;

        BYTE smStatus;

        BYTE smThreshold;

} sSMART_DATA, *pSMART_DATA;

 

Members:

smIndex

        Reserved

smStatus

        S.M.A.R.T attributes value

smThreshold

        S.M.A.R.T attributes threshold value

 

 

The sGUI_PHY_DRV structure contains information about the physical drive

 

typedef struct sGUI_PHY_DRV

{

        BYTE gpdModelName[40];

        BYTE gpdSerialNumber[20];

        BYTE gpdFirmRev[8];

        DWORD gpdCapacity;

        DWORD gpdCapacityX;

        BYTE gpdDeviceState;

        BYTE gpdPioMode;

        BYTE gpdCurrentUdmaMode;

        BYTE gpdUdmaMode;

        BYTE gpdDriveSelect;

        BYTE gpdRaidNumber;

        sSCSI_ATTR gpdScsi;

        LONG gpdMediaErrorCount;

        LONG gpdTimeOutCount;

        u_int64_t   gpdSasAddress;

union

        {

                struct

                {

                        sSMART_DATA gpdSmart[TOTAL_SMART_ITEMS];

                } sata;

                struct

                {

                        WORD gpdRotationRPM;

                        WORD gpdTemperature;

                        WORD gpdSmartSenseCode;

                        WORD gpdReserved;

                        u_int64_t gpdAttribute[TOTAL_SAS_ATTR_ITEMS];

                } sas;

        } u;

} sGUI_PHY_DRV, *pGUI_PHY_DRV;

Members:

gpdModelName

        Drive model name, this does not end with a null character ‘\0’

gpdSerialNumber

        Drive serial number, this does not end with a null character ‘\0’

gpdFirmRev

        Drive firmware version, this does not end with a null character ‘\0’

gpdCapacity

        Drive capacity in blocks.

        A block = 512 bytes

gpdCapacityX

        Reserved for expansion

gpdDeviceState

Value

Meaning

0x02

Pass-through drive

0x08

Drive attached

0x10

Drive already failed

0x20

This drive is reserved for Hot-Spare

0x40

Available for use

0x80

If this device initialized

 

gpdPioMode    

Value

Meaning

0

PIO MODE 0

1

PIO MODE 1

2

PIO MODE 2

3

PIO MODE 3

4

PIO MODE 4

       

Note: This field is used as the high-byte to combine gpdDeviceState as a WORD when the

      sSYSTEM_INFO.gsiTargetType == TARGET_SAS (SAS Controller)

Value

Meaning

0x1

SATA Device

0x2

Device Power-Down

        WORD DeviceState = gpdDeviceState + ( gpdPioMode << 8 );

 

gpdCurrentUdmaMode   

Value

Meaning

0

UDMA MODE 0

1

UDMA MODE 1

2

UDMA MODE 2

3

UDMA MODE 3

4

UDMA MODE 4

5

UDMA MODE 5

 

gpdUdmaMode       

Value

Meaning

0

UDMA MODE 0

1

UDMA MODE 1

2

UDMA MODE 2

3

UDMA MODE 3

4

UDMA MODE 4

5

UDMA MODE 5

 

gpdDriveSelect

        The drive select, always 0 ( master )

gpdRaidNumber

        The raidset number this drive belongs to, value 0xff means free

gpdScsi

        Pointer to sSCSI_ATTR structure that describes the SCSI attributes

gpdMediaErrorCount

        Media error count

gpdTimeOutCount

        Timeout error count

 

gpdSmart

        S.M.A.R.T attributes array(For SATA Device Only)

Index of array

Meaning

0

SMART_READ_ERROR_RATE

1

SMART_SPINUP_TIME

2

SMART_REALLOCATION

3

SMART_SEEK_ERROR_RATE

4

SMART_SPINUP_RETRY

5

SMART_CALIBRATION_RETRY

6

SMART_TEMPERATURE

 

 

gpdRotationRPM;

        Drive’s rotation in RPM

gpdTemperature

        Drive’s temperature (centigrade)

gpdSmartSenseCode

        Reserved

 

gpdAttribute

        SAS attributes array(For SAS Device Only)

Index of array

Meaning

0

SAS_READ_RECOVERED_WO_DELAY

1

SAS_READ_RECOVERED_W_DELAY

2

SAS_READ_RECOVERED_W_RETRY

3

SAS_READ_RECOVERED

4

SAS_READ_TOTAL_BYTES

5

SAS_READ_UNRECOVERED

6

SAS_WRITE_RECOVERED_WO_DELAY

7

SAS_WRITE_RECOVERED_W_DELAY

8

SAS_WRITE_RECOVERED_W_RETRY

9

SAS_WRITE_RECOVERED

10

SAS_WRITE_TOTAL_BYTES

11

SAS_WRITE_UNRECOVERED

12

SAS_VERIFY_RECOVERED_WO_DELAY

13

SAS_VERIFY_RECOVERED_W_DELAY

14

SAS_VERIFY_RECOVERED_W_RETRY

15

SAS_VERIFY_RECOVERED

16

SAS_VERIFY_UNRECOVERED

17

SAS_NON_MEDIUM_ERRORS

 


 

 

Requirements

       

Header

arclib.h

Include

arclib.h

 

See Also

        ArcGetPhysicalDriveInfo, ArcHelpBuildDeviceMap