DEVICE_DATA_SET_LB_PROVISIONING_STATE結構 (winioctl.h)
IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES控制項程式碼之DeviceDsmAction_Allocation動作的輸出結構。
語法
typedef struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE {
DWORD Size;
DWORD Version;
DWORDLONG SlabSizeInBytes;
DWORD SlabOffsetDeltaInBytes;
DWORD SlabAllocationBitMapBitCount;
DWORD SlabAllocationBitMapLength;
DWORD SlabAllocationBitMap[ANYSIZE_ARRAY];
} DEVICE_DATA_SET_LB_PROVISIONING_STATE, *PDEVICE_DATA_SET_LB_PROVISIONING_STATE, DEVICE_DSM_ALLOCATION_OUTPUT, *PDEVICE_DSM_ALLOCATION_OUTPUT;
成員
Size
這個結構的大小,包括點陣圖,以位元組為單位。
Version
這個 結構的版本。
SlabSizeInBytes
平板的大小,以位元組為單位。
SlabOffsetDeltaInBytes
如果指定的範圍未對齊在DEVICE_LB_PROVISIONING_DESCRIPTOR結構中所傳回的OptimalUnmapGranularity,則 SlabAllocationBitMap中代表的資料會從這個數量所指定的範圍位移。
SlabAllocationBitMapBitCount
點陣圖中相關位的數目。
SlabAllocationBitMapLength
點陣圖陣列中的 DWORD數目。
SlabAllocationBitMap[ANYSIZE_ARRAY]
配置點陣圖,包含每個平板的一個位。 如果設定了位,則會配置對應的平板。 否則,如果位是清楚的,對應的平板就會取消配置。
備註
當DEVICE_MANAGE_DATA_SET_ATTRIBUTES結構的Action成員設定為DeviceDsmAction_Allocation時,就會傳回布建狀態資訊。 呼叫端應該只會在 DataSetRangesOffset的系統緩衝區中包含一個資料集範圍。
傳回時,系統緩衝區包含 DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT 結構,後面接著 DEVICE_DATA_SET_LB_PROVISIONING_STATE 結構。 DEVICE_DATA_SET_LB_PROVISIONING_STATE結構會從outputBlockOffset在DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT中指定的系統緩衝區開頭開始位移。
配置點陣圖中的每個位都代表所要求資料集範圍內的平板對應。 位會直接對應至資料集範圍內的平板。 這表示點陣圖中的位 0 會標示範圍中的第一個平板。 如果位值 = 1,而且如果位值 = 0,則會對應平板。
SlabAllocationBitMap的空間應該根據所要求資料集範圍內的可能平板數目來配置。 傳回之點陣圖的 SlabAllocationBitMapLength 為 (number_of_slabs / 32) + ((number_of_slabs MOD 32) > 0 ? 1 : 0)
。
平板大小是由從IOCTL_STORAGE_QUERY_PROPERTY控制項程式碼傳回之DEVICE_LB_PROVISIONING_DESCRIPTOR結構的OptimalUnmapGranularity成員所決定。 提供的資料集範圍的長度應該是 OptimalUnmapGranularity的倍數。 當範圍長度不是 OptimalUnmapGranularity的倍數時,它會縮減為倍數。
如果資料集範圍的起始位移未對齊平板界限, 則為 OptimalUnmapGranularity的倍數,則會將位移調整為下一個界限。 在 SlabOffsetDeltaInBytes中會傳回所要求的位移和調整位移之間的差異。
如果 SlabAllocationBitMapBitCount 中傳回的平板配置總計未如預期般,因為資料集範圍對齊或長度調整,可能會根據 SlabAllocationBitMapBitCount 和 SlabOffsetDeltaInBytes中的值來提交額外的要求。 新範圍會正確選取上一個要求所傳回之點陣圖剩餘的平板。
例如,如果要求的平板大小太大, (例如,如果大於 HBA) 的最大傳輸長度,則IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES可能會失敗並ERROR_INVALID_PARAMETER。
規格需求
最低支援的用戶端 | Windows 8 |
最低支援的伺服器 | Windows Server 2012 |
標頭 | winioctl.h (包含 Windows.h) |