共用方式為


VDS_HINTS2 結構 (vdshwprv.h)

[從 Windows 8 和 Windows Server 2012 開始,虛擬磁碟服務 COM 介面會由 Windows 記憶體管理 API 取代。

包含 存放集區中 LUN 的自動提示。

語法

typedef struct _VDS_HINTS2 {
  ULONGLONG            ullHintMask;
  ULONGLONG            ullExpectedMaximumSize;
  ULONG                ulOptimalReadSize;
  ULONG                ulOptimalReadAlignment;
  ULONG                ulOptimalWriteSize;
  ULONG                ulOptimalWriteAlignment;
  ULONG                ulMaximumDriveCount;
  ULONG                ulStripeSize;
  ULONG                ulReserved1;
  ULONG                ulReserved2;
  ULONG                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, *PVDS_HINTS2;

成員

ullHintMask

LUN 提示遮罩。 這個結構的每個 BOOL 成員都有可在遮罩中設定的對應提示旗標。 如果已設定提示旗標,則會考慮對應的提示。 如果未設定提示旗標,則會忽略提示。 下表說明提示旗標。

意義
VDS_HINT_FASTCRASHRECOVERYREQUIRED
0x00000000000000001L
提供者會限制復原所需的時間。 為了支援快速復原,提供者會使用變更記錄檔來讓提供者復原 LUN,而不比較 LUN 的整個內容。
VDS_HINT_MOSTLYREADS
0x00000000000000002L
提供者會針對大部分的讀取使用模式優化 LUN,通常是使用鏡像而非同位等量等量。
VDS_HINT_OPTIMIZEFORSEQUENTIALREADS
0x00000000000000004L
提供者會針對循序讀取使用模式優化 LUN。 如果未設定此旗標,也不會設定VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES,則 LUN 會針對隨機 I/O 進行優化。
VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES
0x00000000000000008L
提供者會針對循序寫入使用模式優化 LUN。 如果未設定此旗標,而且未設定VDS_HINT_OPTIMIZEFORSEQUENTIALREADS,則 LUN 會針對隨機 I/O 進行優化。
VDS_HINT_READBACKVERIFYENABLED
0x00000000000000010L
提供者會使用回寫來驗證 LUN 的寫入。
VDS_HINT_REMAPENABLED
0x0000000000000020L
提供者會自動建立 LUN 範圍與磁碟驅動器範圍的對應並更新。 如果未設定此旗標,則對應會在設定之後維持固定狀態,除非採取主動式動作以避免磁碟驅動器失敗。
VDS_HINT_WRITETHROUGHCACHINGENABLED
0x00000000000000040L
提供者會在 LUN 上啟用寫入快取原則。
VDS_HINT_HARDWARECHECKSUMENABLED
0x00000000000000080L
提供者會在 LUN 上啟用硬體總和檢查碼。
VDS_HINT_ISYANKABLE
0x00000000000000100L
提供者會設定 LUN,讓參與該磁碟驅動器的磁碟驅動器可以實際移除,且系統中斷最少。 這通常是藉由確保 LUN 佔用最少的磁碟驅動器來完成。
VDS_HINT_ALLOCATEHOTSPARE
0x0000000000000200L
提供者會配置 LUN 的熱備援。 如需詳細資訊,請參閱 經常性存取VDS_DRIVE_FLAGVDS_DISK_FLAG
VDS_HINT_BUSTYPE
0x00000000000000400L
提供者會在 LUN 上使用指定的總線類型。 如需詳細資訊,請參閱 VDS_STORAGE_BUS_TYPE
VDS_HINT_USEMIRROREDCACHE
0x00000000000000800L
提供者會在 LUN 上使用鏡像快取。 請參閱 VDS_SUB_SYSTEM_FLAG 列舉的 VDS_SF_SUPPORTS_MIRRORED_CACHE 值。
VDS_HINT_READCACHINGENABLED
0x00000000000001000L
提供者會在 LUN 上啟用讀取快取。 請參閱VDS_LUN_FLAG列舉的VDS_LF_READ_CACHE_ENABLED值,以及VDS_SUB_SYSTEM_FLAG列舉的VDS_SF_READ_CACHING_CAPABLE值。
VDS_HINT_WRITECACHINGENABLED
0x00000000000020000L
提供者會在 LUN 上啟用寫入快取。 請參閱VDS_LUN_FLAG列舉的VDS_LF_WRITE_CACHE_ENABLED值,以及VDS_SUB_SYSTEM_FLAG列舉的VDS_SF_WRITE_CACHING_CAPABLE值。
VDS_HINT_MEDIASCANENABLED
0x00000000000004000L
提供者會在 LUN 上啟用媒體掃描。 請參閱VDS_LUN_FLAG列舉的VDS_LF_MEDIA_SCAN_ENABLED值,以及VDS_SUB_SYSTEM_FLAG列舉的VDS_SF_MEDIA_SCAN_CAPABLE值。
VDS_HINT_CONSISTENCYCHECKENABLED
0x000000000000008000L
提供者可在 LUN 上啟用一致性檢查。 請參閱VDS_LUN_FLAG列舉的VDS_LF_CONSISTENCY_CHECK_ENABLED值,以及VDS_SUB_SYSTEM_FLAG列舉的VDS_SF_CONSISTENCY_CHECK_CAPABLE值。

ullExpectedMaximumSize

LUN 預期成長的大小上限,以位元組為單位。 呼叫 IVdsHwProviderStoragePools::CreateLunInStoragePool 方法時,此值可以等於、大於或小於 ullSizeInBytes 參數中指定的值。 某些提供者會使用此值來保留 LUN 的空間。 無法保留空間的提供者通常會忽略此參數。

ulOptimalReadSize

LUN 的最佳讀取大小,以位元組為單位。 零表示沒有最佳的讀取大小。

ulOptimalReadAlignment

與 LUN 的第一個邏輯區塊相關的最佳讀取對齊方式。 零表示沒有最佳的讀取對齊方式。

ulOptimalWriteSize

LUN 的最佳寫入大小,以位元組為單位。 零表示沒有最佳寫入大小。

ulOptimalWriteAlignment

與 LUN 的第一個邏輯區塊相關的最佳寫入對齊方式。 零表示沒有最佳的寫入對齊方式。

ulMaximumDriveCount

要參與 LUN 的磁碟驅動器數目上限。 零表示沒有最大磁碟驅動器計數。 這個值可用來限制等量集合中的等量交錯數目。

ulStripeSize

鏡像或同位區交錯大小,以位元組為單位。 零會保留未指定的等量大小。

ulReserved1

這個成員保留供未來使用。 請勿使用。

ulReserved2

這個成員保留供未來使用。 請勿使用。

ulReserved3

這個成員保留供未來使用。 請勿使用。

bFastCrashRecoveryRequired

如果此成員為 TRUE,復原時間會受到限制。 在 ullHintMask 成員中設定VDS_HINT_FASTCRASHRECOVERYREQUIRED旗標,以指出對這個成員感興趣。

bMostlyReads

例如,若要優化大部分讀取的使用模式, (例如透過鏡像而非同位等量等量分割) ,請將此成員設定為 TRUE。 否則,請將它設定為 FALSE。 在 ullHintMask 成員中設定VDS_HINT_MOSTLYREADS旗標,表示對此成員感興趣。

bOptimizeForSequentialReads

若要優化循序讀取使用模式,請將此成員設定為 TRUE。 否則,請將它設定為 FALSE。 將 bOptimizeForSequentialReadsbOptimizeForSequentialWrites 成員設定為 FALSE ,以針對隨機 I/O 優化。 在 ullHintMask 成員中設定VDS_HINT_OPTIMIZEFORSEQUENTIALREADS旗標,表示對此成員感興趣。

bOptimizeForSequentialWrites

若要優化循序寫入使用模式,請將此成員設定為 TRUE。 否則,請將它設定為 FALSE。 將 bOptimizeForSequentialReadsbOptimizeForSequentialWrites 成員設定為 FALSE ,以針對隨機 I/O 優化。 在 ullHintMask 成員中設定VDS_HINT_OPTIMIZEFORSEQUENTIALWRITES旗標,表示對此成員感興趣。

bRemapEnabled

如果此成員為 TRUE,提供者會自動將 LUN 範圍重新對應至磁碟驅動器範圍。 如果是 FALSE,除非明確重新對應範圍以避免損毀的區塊,否則 LUN 範圍與磁碟驅動器範圍的對應會在 LUN 設定之後維持固定狀態。 設定 ullHintMask 成員中的VDS_HINT_REMAPENABLED旗標,表示對此成員感興趣。

bReadBackVerifyEnabled

如果這個成員為 TRUE,提供者會藉由回寫來驗證 LUN 的寫入。 如果為 FALSE,提供者不會驗證寫入。 在 ullHintMask 成員中設定VDS_HINT_READBACKVERIFYENABLED旗標,表示對此成員感興趣。

bWriteThroughCachingEnabled

如果此成員為 TRUE,提供者會在 LUN 上啟用寫入快取;如果為 FALSE,提供者就不會啟用寫入快取。 在 ullHintMask 成員中設定VDS_HINT_WRITETHROUGHCACHINGENABLED旗標,表示對此成員感興趣。

bHardwareChecksumEnabled

如果這個成員為 TRUE,提供者會在 LUN 上啟用總和檢查碼。 在 ullHintMask 成員中設定VDS_HINT_HARDWARECHECKSUMENABLED旗標,表示對此成員感興趣。

bIsYankable

如果此成員為 TRUE,則參與 LUN 的磁碟驅動器可以實際移除,而不會對系統造成重大中斷, (當 LUN 只由少數磁碟驅動器) 的範圍所組成時,這通常是正確的。 如果為 FALSE,則無法移除 LUN,而不會對系統造成重大中斷。 設定 ullHintMask 成員中的VDS_HINT_ISYANKABLE旗標,表示對此成員感興趣。

bAllocateHotSpare

如果用戶端想要為此 LUN 配置熱備援磁碟驅動器,則為 TRUE,否則為 FALSE。 在 ullHintMask 成員中設定VDS_HINT_ALLOCATEHOTSPARE旗標,表示對此成員感興趣。

bUseMirroredCache

如果用戶端希望此 LUN 使用鏡像快取,則為 TRUE,否則為 FALSE。 在 ullHintMask 成員中設定VDS_HINT_USEMIRROREDCACHE旗標,表示對此成員感興趣。

bReadCachingEnabled

如果用戶端希望 LUN 使用讀取快取,則為 TRUE,否則為 FALSE。 在 ullHintMask 成員中設定VDS_HINT_READCACHINGENABLED旗標,表示對此成員感興趣。

bWriteCachingEnabled

如果用戶端想要 LUN 使用寫入快取,則為 TRUE,否則為 FALSE。 在 ullHintMask 成員中設定VDS_HINT_WRITECACHINGENABLED旗標,表示對此成員感興趣。

bMediaScanEnabled

如果用戶端想要啟用此 LUN 的媒體掃描,則為 TRUE,否則為 FALSE。 在 ullHintMask 成員中設定VDS_HINT_MEDIASCANENABLED旗標,表示對此成員感興趣。

bConsistencyCheckEnabled

如果用戶端想要啟用此 LUN 的一致性檢查,則為 TRUE,否則為 FALSE。 在 ullHintMask 成員中設定VDS_HINT_CONSISTENCYCHECKENABLED旗標,表示對此成員感興趣。

BusType

指定 LUN 總線類型的 VDS_STORAGE_BUS_TYPE 列舉值。 設定 ullHintMask 成員中的VDS_HINT_BUSTYPE旗標,表示對此成員感興趣。

bReserved1

這個成員保留供未來使用。 請勿使用。

bReserved2

這個成員保留供未來使用。 請勿使用。

bReserved3

這個成員保留供未來使用。 請勿使用。

sRebuildPriority

LUN 的重建優先順序。 此值的範圍可以從 0 (最低優先順序) 到最高優先順序 (15) 。

備註

IVdsHwProviderStoragePools::CreateLunInStoragePool 方法會傳遞此結構做為參數,以提供在存放集區中建立 LUN 的提示。 它會在 IVdsLun2::ApplyHints2 方法中當做參數傳遞,以將一組新的提示套用至 LUN。 此外, IVdsLun2::QueryHints2 方法會分別報告目前套用至 LUN 或 LUN plex 的提示。

提示不是實作者的指示詞。 雖然實作者通常預期會盡最大努力考慮提示,但並不一定要遵循這些提示。 實作者可以在因技術原因而無法遵循指定的提示時,或遵循它們可能會導致設定不佳時,選擇替代方法。

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
標頭 vdshwprv.h

另請參閱

IVdsLun2::ApplyHints2

IVdsLun2::QueryHints2