ホーム › Storage.VirtualDiskService › VDS_HINTS2
VDS_HINTS2
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| ullHintMask | ULONGLONG | 8 | +0 | +0 | どのヒントフィールドが有効かを示す64ビットビットマスク。 |
| ullExpectedMaximumSize | ULONGLONG | 8 | +8 | +8 | 想定される最大サイズをバイト単位で示すヒント。 |
| ulOptimalReadSize | DWORD | 4 | +16 | +16 | 最適な読み取りサイズをバイト単位で示すヒント。 |
| ulOptimalReadAlignment | DWORD | 4 | +20 | +20 | 最適な読み取りアライメントをバイト単位で示すヒント。 |
| ulOptimalWriteSize | DWORD | 4 | +24 | +24 | 最適な書き込みサイズをバイト単位で示すヒント。 |
| ulOptimalWriteAlignment | DWORD | 4 | +28 | +28 | 最適な書き込みアライメントをバイト単位で示すヒント。 |
| ulMaximumDriveCount | DWORD | 4 | +32 | +32 | 使用する最大ドライブ数のヒント。 |
| ulStripeSize | DWORD | 4 | +36 | +36 | ストライプサイズをバイト単位で示すヒント。 |
| ulReserved1 | DWORD | 4 | +40 | +40 | 将来の拡張用に予約された領域。 |
| ulReserved2 | DWORD | 4 | +44 | +44 | 将来の拡張用に予約された領域。 |
| ulReserved3 | DWORD | 4 | +48 | +48 | 将来の拡張用に予約された領域。 |
| bFastCrashRecoveryRequired | BOOL | 4 | +52 | +52 | 高速クラッシュ回復が必要か否かを示すBOOL値。 |
| bMostlyReads | BOOL | 4 | +56 | +56 | 主に読み取り負荷か否かを示すBOOL値。 |
| bOptimizeForSequentialReads | BOOL | 4 | +60 | +60 | シーケンシャル読み取り最適化を行うか否かを示すBOOL値。 |
| bOptimizeForSequentialWrites | BOOL | 4 | +64 | +64 | シーケンシャル書き込み最適化を行うか否かを示すBOOL値。 |
| bRemapEnabled | BOOL | 4 | +68 | +68 | 不良ブロックの再マッピングを有効にするか否かを示すBOOL値。 |
| bReadBackVerifyEnabled | BOOL | 4 | +72 | +72 | 書き込み後の読み戻し検証を有効にするか否かを示すBOOL値。 |
| bWriteThroughCachingEnabled | BOOL | 4 | +76 | +76 | ライトスルーキャッシュを有効にするか否かを示すBOOL値。 |
| bHardwareChecksumEnabled | BOOL | 4 | +80 | +80 | ハードウェアチェックサムを有効にするか否かを示すBOOL値。 |
| bIsYankable | BOOL | 4 | +84 | +84 | ホットスワップ(引き抜き可能)対応か否かを示すBOOL値。 |
| bAllocateHotSpare | BOOL | 4 | +88 | +88 | ホットスペアを割り当てるか否かを示すBOOL値。 |
| bUseMirroredCache | BOOL | 4 | +92 | +92 | ミラーキャッシュを使用するか否かを示すBOOL値。 |
| bReadCachingEnabled | BOOL | 4 | +96 | +96 | 読み取りキャッシュを有効にするか否かを示すBOOL値。 |
| bWriteCachingEnabled | BOOL | 4 | +100 | +100 | 書き込みキャッシュを有効にするか否かを示すBOOL値。 |
| bMediaScanEnabled | BOOL | 4 | +104 | +104 | メディアスキャンを有効にするか否かを示すBOOL値。 |
| bConsistencyCheckEnabled | BOOL | 4 | +108 | +108 | 整合性チェックを有効にするか否かを示すBOOL値。 |
| BusType | VDS_STORAGE_BUS_TYPE | 4 | +112 | +112 | 対象とするストレージバスの種類を示すVDS_STORAGE_BUS_TYPE列挙値。 |
| bReserved1 | BOOL | 4 | +116 | +116 | 将来の拡張用に予約されたBOOL値。 |
| bReserved2 | BOOL | 4 | +120 | +120 | 将来の拡張用に予約されたBOOL値。 |
| bReserved3 | BOOL | 4 | +124 | +124 | 将来の拡張用に予約されたBOOL値。 |
| sRebuildPriority | SHORT | 2 | +128 | +128 | アレイ再構築の優先度を示す符号付き値。 |
各言語での定義
#include <windows.h>
// VDS_HINTS2 (x64 136 / x86 136 バイト)
typedef struct VDS_HINTS2 {
ULONGLONG ullHintMask;
ULONGLONG ullExpectedMaximumSize;
DWORD ulOptimalReadSize;
DWORD ulOptimalReadAlignment;
DWORD ulOptimalWriteSize;
DWORD ulOptimalWriteAlignment;
DWORD ulMaximumDriveCount;
DWORD ulStripeSize;
DWORD ulReserved1;
DWORD ulReserved2;
DWORD ulReserved3;
BOOL bFastCrashRecoveryRequired;
BOOL bMostlyReads;
BOOL bOptimizeForSequentialReads;
BOOL bOptimizeForSequentialWrites;
BOOL bRemapEnabled;
BOOL bReadBackVerifyEnabled;
BOOL bWriteThroughCachingEnabled;
BOOL bHardwareChecksumEnabled;
BOOL bIsYankable;
BOOL bAllocateHotSpare;
BOOL bUseMirroredCache;
BOOL bReadCachingEnabled;
BOOL bWriteCachingEnabled;
BOOL bMediaScanEnabled;
BOOL bConsistencyCheckEnabled;
VDS_STORAGE_BUS_TYPE BusType;
BOOL bReserved1;
BOOL bReserved2;
BOOL bReserved3;
SHORT sRebuildPriority;
} VDS_HINTS2;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct VDS_HINTS2
{
public ulong ullHintMask;
public ulong ullExpectedMaximumSize;
public uint ulOptimalReadSize;
public uint ulOptimalReadAlignment;
public uint ulOptimalWriteSize;
public uint ulOptimalWriteAlignment;
public uint ulMaximumDriveCount;
public uint ulStripeSize;
public uint ulReserved1;
public uint ulReserved2;
public uint ulReserved3;
[MarshalAs(UnmanagedType.Bool)] public bool bFastCrashRecoveryRequired;
[MarshalAs(UnmanagedType.Bool)] public bool bMostlyReads;
[MarshalAs(UnmanagedType.Bool)] public bool bOptimizeForSequentialReads;
[MarshalAs(UnmanagedType.Bool)] public bool bOptimizeForSequentialWrites;
[MarshalAs(UnmanagedType.Bool)] public bool bRemapEnabled;
[MarshalAs(UnmanagedType.Bool)] public bool bReadBackVerifyEnabled;
[MarshalAs(UnmanagedType.Bool)] public bool bWriteThroughCachingEnabled;
[MarshalAs(UnmanagedType.Bool)] public bool bHardwareChecksumEnabled;
[MarshalAs(UnmanagedType.Bool)] public bool bIsYankable;
[MarshalAs(UnmanagedType.Bool)] public bool bAllocateHotSpare;
[MarshalAs(UnmanagedType.Bool)] public bool bUseMirroredCache;
[MarshalAs(UnmanagedType.Bool)] public bool bReadCachingEnabled;
[MarshalAs(UnmanagedType.Bool)] public bool bWriteCachingEnabled;
[MarshalAs(UnmanagedType.Bool)] public bool bMediaScanEnabled;
[MarshalAs(UnmanagedType.Bool)] public bool bConsistencyCheckEnabled;
public int BusType;
[MarshalAs(UnmanagedType.Bool)] public bool bReserved1;
[MarshalAs(UnmanagedType.Bool)] public bool bReserved2;
[MarshalAs(UnmanagedType.Bool)] public bool bReserved3;
public short sRebuildPriority;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure VDS_HINTS2
Public ullHintMask As ULong
Public ullExpectedMaximumSize As ULong
Public ulOptimalReadSize As UInteger
Public ulOptimalReadAlignment As UInteger
Public ulOptimalWriteSize As UInteger
Public ulOptimalWriteAlignment As UInteger
Public ulMaximumDriveCount As UInteger
Public ulStripeSize As UInteger
Public ulReserved1 As UInteger
Public ulReserved2 As UInteger
Public ulReserved3 As UInteger
<MarshalAs(UnmanagedType.Bool)> Public bFastCrashRecoveryRequired As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bMostlyReads As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bOptimizeForSequentialReads As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bOptimizeForSequentialWrites As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bRemapEnabled As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bReadBackVerifyEnabled As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bWriteThroughCachingEnabled As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bHardwareChecksumEnabled As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bIsYankable As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bAllocateHotSpare As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bUseMirroredCache As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bReadCachingEnabled As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bWriteCachingEnabled As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bMediaScanEnabled As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bConsistencyCheckEnabled As Boolean
Public BusType As Integer
<MarshalAs(UnmanagedType.Bool)> Public bReserved1 As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bReserved2 As Boolean
<MarshalAs(UnmanagedType.Bool)> Public bReserved3 As Boolean
Public sRebuildPriority As Short
End Structureimport ctypes
from ctypes import wintypes
class VDS_HINTS2(ctypes.Structure):
_fields_ = [
("ullHintMask", ctypes.c_ulonglong),
("ullExpectedMaximumSize", ctypes.c_ulonglong),
("ulOptimalReadSize", wintypes.DWORD),
("ulOptimalReadAlignment", wintypes.DWORD),
("ulOptimalWriteSize", wintypes.DWORD),
("ulOptimalWriteAlignment", wintypes.DWORD),
("ulMaximumDriveCount", wintypes.DWORD),
("ulStripeSize", wintypes.DWORD),
("ulReserved1", wintypes.DWORD),
("ulReserved2", wintypes.DWORD),
("ulReserved3", wintypes.DWORD),
("bFastCrashRecoveryRequired", wintypes.BOOL),
("bMostlyReads", wintypes.BOOL),
("bOptimizeForSequentialReads", wintypes.BOOL),
("bOptimizeForSequentialWrites", wintypes.BOOL),
("bRemapEnabled", wintypes.BOOL),
("bReadBackVerifyEnabled", wintypes.BOOL),
("bWriteThroughCachingEnabled", wintypes.BOOL),
("bHardwareChecksumEnabled", wintypes.BOOL),
("bIsYankable", wintypes.BOOL),
("bAllocateHotSpare", wintypes.BOOL),
("bUseMirroredCache", wintypes.BOOL),
("bReadCachingEnabled", wintypes.BOOL),
("bWriteCachingEnabled", wintypes.BOOL),
("bMediaScanEnabled", wintypes.BOOL),
("bConsistencyCheckEnabled", wintypes.BOOL),
("BusType", ctypes.c_int),
("bReserved1", wintypes.BOOL),
("bReserved2", wintypes.BOOL),
("bReserved3", wintypes.BOOL),
("sRebuildPriority", ctypes.c_short),
]#[repr(C)]
pub struct VDS_HINTS2 {
pub ullHintMask: u64,
pub ullExpectedMaximumSize: u64,
pub ulOptimalReadSize: u32,
pub ulOptimalReadAlignment: u32,
pub ulOptimalWriteSize: u32,
pub ulOptimalWriteAlignment: u32,
pub ulMaximumDriveCount: u32,
pub ulStripeSize: u32,
pub ulReserved1: u32,
pub ulReserved2: u32,
pub ulReserved3: u32,
pub bFastCrashRecoveryRequired: i32,
pub bMostlyReads: i32,
pub bOptimizeForSequentialReads: i32,
pub bOptimizeForSequentialWrites: i32,
pub bRemapEnabled: i32,
pub bReadBackVerifyEnabled: i32,
pub bWriteThroughCachingEnabled: i32,
pub bHardwareChecksumEnabled: i32,
pub bIsYankable: i32,
pub bAllocateHotSpare: i32,
pub bUseMirroredCache: i32,
pub bReadCachingEnabled: i32,
pub bWriteCachingEnabled: i32,
pub bMediaScanEnabled: i32,
pub bConsistencyCheckEnabled: i32,
pub BusType: i32,
pub bReserved1: i32,
pub bReserved2: i32,
pub bReserved3: i32,
pub sRebuildPriority: i16,
}import "golang.org/x/sys/windows"
type VDS_HINTS2 struct {
ullHintMask uint64
ullExpectedMaximumSize uint64
ulOptimalReadSize uint32
ulOptimalReadAlignment uint32
ulOptimalWriteSize uint32
ulOptimalWriteAlignment uint32
ulMaximumDriveCount uint32
ulStripeSize uint32
ulReserved1 uint32
ulReserved2 uint32
ulReserved3 uint32
bFastCrashRecoveryRequired int32
bMostlyReads int32
bOptimizeForSequentialReads int32
bOptimizeForSequentialWrites int32
bRemapEnabled int32
bReadBackVerifyEnabled int32
bWriteThroughCachingEnabled int32
bHardwareChecksumEnabled int32
bIsYankable int32
bAllocateHotSpare int32
bUseMirroredCache int32
bReadCachingEnabled int32
bWriteCachingEnabled int32
bMediaScanEnabled int32
bConsistencyCheckEnabled int32
BusType int32
bReserved1 int32
bReserved2 int32
bReserved3 int32
sRebuildPriority int16
}type
VDS_HINTS2 = record
ullHintMask: UInt64;
ullExpectedMaximumSize: UInt64;
ulOptimalReadSize: DWORD;
ulOptimalReadAlignment: DWORD;
ulOptimalWriteSize: DWORD;
ulOptimalWriteAlignment: DWORD;
ulMaximumDriveCount: DWORD;
ulStripeSize: DWORD;
ulReserved1: DWORD;
ulReserved2: DWORD;
ulReserved3: DWORD;
bFastCrashRecoveryRequired: BOOL;
bMostlyReads: BOOL;
bOptimizeForSequentialReads: BOOL;
bOptimizeForSequentialWrites: BOOL;
bRemapEnabled: BOOL;
bReadBackVerifyEnabled: BOOL;
bWriteThroughCachingEnabled: BOOL;
bHardwareChecksumEnabled: BOOL;
bIsYankable: BOOL;
bAllocateHotSpare: BOOL;
bUseMirroredCache: BOOL;
bReadCachingEnabled: BOOL;
bWriteCachingEnabled: BOOL;
bMediaScanEnabled: BOOL;
bConsistencyCheckEnabled: BOOL;
BusType: Integer;
bReserved1: BOOL;
bReserved2: BOOL;
bReserved3: BOOL;
sRebuildPriority: Smallint;
end;const VDS_HINTS2 = extern struct {
ullHintMask: u64,
ullExpectedMaximumSize: u64,
ulOptimalReadSize: u32,
ulOptimalReadAlignment: u32,
ulOptimalWriteSize: u32,
ulOptimalWriteAlignment: u32,
ulMaximumDriveCount: u32,
ulStripeSize: u32,
ulReserved1: u32,
ulReserved2: u32,
ulReserved3: u32,
bFastCrashRecoveryRequired: i32,
bMostlyReads: i32,
bOptimizeForSequentialReads: i32,
bOptimizeForSequentialWrites: i32,
bRemapEnabled: i32,
bReadBackVerifyEnabled: i32,
bWriteThroughCachingEnabled: i32,
bHardwareChecksumEnabled: i32,
bIsYankable: i32,
bAllocateHotSpare: i32,
bUseMirroredCache: i32,
bReadCachingEnabled: i32,
bWriteCachingEnabled: i32,
bMediaScanEnabled: i32,
bConsistencyCheckEnabled: i32,
BusType: i32,
bReserved1: i32,
bReserved2: i32,
bReserved3: i32,
sRebuildPriority: i16,
};type
VDS_HINTS2 {.bycopy.} = object
ullHintMask: uint64
ullExpectedMaximumSize: uint64
ulOptimalReadSize: uint32
ulOptimalReadAlignment: uint32
ulOptimalWriteSize: uint32
ulOptimalWriteAlignment: uint32
ulMaximumDriveCount: uint32
ulStripeSize: uint32
ulReserved1: uint32
ulReserved2: uint32
ulReserved3: uint32
bFastCrashRecoveryRequired: int32
bMostlyReads: int32
bOptimizeForSequentialReads: int32
bOptimizeForSequentialWrites: int32
bRemapEnabled: int32
bReadBackVerifyEnabled: int32
bWriteThroughCachingEnabled: int32
bHardwareChecksumEnabled: int32
bIsYankable: int32
bAllocateHotSpare: int32
bUseMirroredCache: int32
bReadCachingEnabled: int32
bWriteCachingEnabled: int32
bMediaScanEnabled: int32
bConsistencyCheckEnabled: int32
BusType: int32
bReserved1: int32
bReserved2: int32
bReserved3: int32
sRebuildPriority: int16struct VDS_HINTS2
{
ulong ullHintMask;
ulong ullExpectedMaximumSize;
uint ulOptimalReadSize;
uint ulOptimalReadAlignment;
uint ulOptimalWriteSize;
uint ulOptimalWriteAlignment;
uint ulMaximumDriveCount;
uint ulStripeSize;
uint ulReserved1;
uint ulReserved2;
uint ulReserved3;
int bFastCrashRecoveryRequired;
int bMostlyReads;
int bOptimizeForSequentialReads;
int bOptimizeForSequentialWrites;
int bRemapEnabled;
int bReadBackVerifyEnabled;
int bWriteThroughCachingEnabled;
int bHardwareChecksumEnabled;
int bIsYankable;
int bAllocateHotSpare;
int bUseMirroredCache;
int bReadCachingEnabled;
int bWriteCachingEnabled;
int bMediaScanEnabled;
int bConsistencyCheckEnabled;
int BusType;
int bReserved1;
int bReserved2;
int bReserved3;
short sRebuildPriority;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; VDS_HINTS2 サイズ: 136 バイト(x64)
dim st, 34 ; 4byte整数×34(構造体サイズ 136 / 4 切り上げ)
; ullHintMask : ULONGLONG (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; ullExpectedMaximumSize : ULONGLONG (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; ulOptimalReadSize : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; ulOptimalReadAlignment : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; ulOptimalWriteSize : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; ulOptimalWriteAlignment : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; ulMaximumDriveCount : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; ulStripeSize : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; ulReserved1 : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; ulReserved2 : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; ulReserved3 : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; bFastCrashRecoveryRequired : BOOL (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; bMostlyReads : BOOL (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; bOptimizeForSequentialReads : BOOL (+60, 4byte) st.15 = 値 / 値 = st.15 (lpoke/lpeek も可)
; bOptimizeForSequentialWrites : BOOL (+64, 4byte) st.16 = 値 / 値 = st.16 (lpoke/lpeek も可)
; bRemapEnabled : BOOL (+68, 4byte) st.17 = 値 / 値 = st.17 (lpoke/lpeek も可)
; bReadBackVerifyEnabled : BOOL (+72, 4byte) st.18 = 値 / 値 = st.18 (lpoke/lpeek も可)
; bWriteThroughCachingEnabled : BOOL (+76, 4byte) st.19 = 値 / 値 = st.19 (lpoke/lpeek も可)
; bHardwareChecksumEnabled : BOOL (+80, 4byte) st.20 = 値 / 値 = st.20 (lpoke/lpeek も可)
; bIsYankable : BOOL (+84, 4byte) st.21 = 値 / 値 = st.21 (lpoke/lpeek も可)
; bAllocateHotSpare : BOOL (+88, 4byte) st.22 = 値 / 値 = st.22 (lpoke/lpeek も可)
; bUseMirroredCache : BOOL (+92, 4byte) st.23 = 値 / 値 = st.23 (lpoke/lpeek も可)
; bReadCachingEnabled : BOOL (+96, 4byte) st.24 = 値 / 値 = st.24 (lpoke/lpeek も可)
; bWriteCachingEnabled : BOOL (+100, 4byte) st.25 = 値 / 値 = st.25 (lpoke/lpeek も可)
; bMediaScanEnabled : BOOL (+104, 4byte) st.26 = 値 / 値 = st.26 (lpoke/lpeek も可)
; bConsistencyCheckEnabled : BOOL (+108, 4byte) st.27 = 値 / 値 = st.27 (lpoke/lpeek も可)
; BusType : VDS_STORAGE_BUS_TYPE (+112, 4byte) st.28 = 値 / 値 = st.28 (lpoke/lpeek も可)
; bReserved1 : BOOL (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; bReserved2 : BOOL (+120, 4byte) st.30 = 値 / 値 = st.30 (lpoke/lpeek も可)
; bReserved3 : BOOL (+124, 4byte) st.31 = 値 / 値 = st.31 (lpoke/lpeek も可)
; sRebuildPriority : SHORT (+128, 2byte) wpoke st,128,値 / 値 = wpeek(st,128)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global VDS_HINTS2
#field int64 ullHintMask
#field int64 ullExpectedMaximumSize
#field int ulOptimalReadSize
#field int ulOptimalReadAlignment
#field int ulOptimalWriteSize
#field int ulOptimalWriteAlignment
#field int ulMaximumDriveCount
#field int ulStripeSize
#field int ulReserved1
#field int ulReserved2
#field int ulReserved3
#field bool bFastCrashRecoveryRequired
#field bool bMostlyReads
#field bool bOptimizeForSequentialReads
#field bool bOptimizeForSequentialWrites
#field bool bRemapEnabled
#field bool bReadBackVerifyEnabled
#field bool bWriteThroughCachingEnabled
#field bool bHardwareChecksumEnabled
#field bool bIsYankable
#field bool bAllocateHotSpare
#field bool bUseMirroredCache
#field bool bReadCachingEnabled
#field bool bWriteCachingEnabled
#field bool bMediaScanEnabled
#field bool bConsistencyCheckEnabled
#field int BusType
#field bool bReserved1
#field bool bReserved2
#field bool bReserved3
#field short sRebuildPriority
#endstruct
stdim st, VDS_HINTS2 ; NSTRUCT 変数を確保
st->ullHintMask = 100
mes "ullHintMask=" + st->ullHintMask