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: 正在预检 }