houzhongjian
2024-11-06 7412dd652c0ac48c5a17b5d9b61d5d2a0f686137
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package com.iailab.netsdk.lib.structure;
 
import com.iailab.netsdk.lib.NetSDKLib;
/**
 * @author 251823
 * @description 存储设备信息
 * @date 2022/05/30
 */
public class NET_STORAGE_DEVICE extends NetSDKLib.SdkStructure {
    
    public NET_STORAGE_DEVICE() {
        this.dwSize = this.size();
        for (int i = 0; i < stuPartitions.length; i ++) {
            stuPartitions[i] =  new NET_STORAGE_PARTITION();
        }
    }
    
    public int                  dwSize;
    public byte[]               szName = new byte[128];                            // 名称
    public long                 nTotalSpace;                                    // 总空间, byte
    public long                 nFreeSpace;                                     // 剩余空间, byte
    public byte                    byMedia;                                        // 介质, 0-DISK, 1-CDROM, 2-FLASH
    public byte                    byBUS;                                          // 总线, 0-ATA, 1-SATA, 2-USB, 3-SDIO, 4-SCSI
    public byte                    byVolume;                                       // 卷类型, 0-物理卷, 1-Raid卷, 2-VG虚拟卷, 3-ISCSI, 4-独立物理卷, 5-全局热备卷, 6-NAS卷(包括FTP, SAMBA, NFS)
    public byte                    byState;                                        // 物理硬盘状态, 参考NET_STORAGE_DEV_OFFLINE,取值为 NET_STORAGE_DEV_OFFLINE 和 NET_STORAGE_DEV_RUNNING 等
    public int                     nPhysicNo;                                          // 同类设备存储接口的物理编号
    public int                     nLogicNo;                                           // 同类设备存储接口的逻辑编号
    public byte[]               szParent = new byte[128];                      // 上级存储组名称
    public byte[]               szModule = new byte[128];                      // 设备模块
    public byte[]               szSerial = new byte[48];                          // 设备序列号
    public byte[]               szFirmware = new byte[64];                     // 固件版本
    public int                     nPartitionNum;                                  // 分区数
    public NET_STORAGE_PARTITION[] stuPartitions = (NET_STORAGE_PARTITION[])new NET_STORAGE_PARTITION().toArray(32);   // 分区信息
    public NET_STORAGE_RAID stuRaid;                                        // RAID信息, 只对RAID有效(byVolume == 1)
    public NET_ISCSI_TARGET stuISCSI;                                       // ISCSI信息, 只对ISCSI盘有效(byVolume == 3)
    public int                    abTank;                                         // 扩展柜使能
    public NET_STORAGE_TANK stuTank;                                        // 硬盘所在扩展柜信息, abTank为TRUE时有效
 
    /**
     * 硬盘电源状态
     * {@link EM_STORAGE_DISK_POWERMODE}
     */
    public int                   emPowerMode;                    // 硬盘电源状态
    
    /**
     * 硬盘预检状态(EVS字段,配合磁盘预检功能使用)
     * {@link EM_STORAGE_DISK_PREDISKCHECK}
     */
    public int        emPreDiskCheck;                 // 硬盘预检状态(EVS字段,配合磁盘预检功能使用)
    
    public int  nOpState;         // 设备操作状态:      0: 正常工作状态, 1: 休眠中, 2: 等待格式化, 3: 格式化进行中, 
                                 // 4: 等待碎片整理, 5: 碎片整理中, 6: 等待创建RAID 7: 创建RAID中, 8: 等待删除RAID, 9: 删除RAID中, 
                                 // 10: 等待文件系统修复, 11: 文件系统修复中, 12: 等待预检, 13: 正在预检
}