DEVICE_DATA_SET_LB_PROVISIONING_STATE 구조체(ntddstor.h)

DEVICE_DATA_SET_LB_PROVISIONING_STATE 구조는 데이터 세트 범위에 대한 논리적 블록 프로비저닝 정보를 요청할 때 IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES 요청에 의해 반환됩니다.

구문

typedef struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE {
  ULONG     Size;
  ULONG     Version;
  ULONGLONG SlabSizeInBytes;
  ULONG     SlabOffsetDeltaInBytes;
  ULONG     SlabAllocationBitMapBitCount;
  ULONG     SlabAllocationBitMapLength;
  ULONG     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

데이터 집합 범위에 지정된 오프셋에서 시작 슬래브 위치까지의 차이(바이트)입니다.

SlabAllocationBitMapBitCount

데이터 집합 범위에 대한 할당 비트맵 매핑 슬래브의 비트 수입니다.

SlabAllocationBitMapLength

슬래브 할당 비트맵을 포함하는 ULONG 배열 값의 수입니다.

SlabAllocationBitMap[ANYSIZE_ARRAY]

슬래브 할당의 비트맵입니다.

설명

프로비전 상태 정보는 DEVICE_DSM_INPUT Action 멤버가 DeviceDsmAction_Allocation설정되면 반환됩니다. 호출자는 DataSetRangesOffset의 시스템 버퍼에 하나의 데이터 집합 범위만 포함해야 합니다.

반환할 때 시스템 버퍼에는 DEVICE_DSM_OUTPUT 구조와 DEVICE_DATA_SET_LB_PROVISIONING_STATE 구조가 포함됩니다. DEVICE_DATA_SET_LB_PROVISIONING_STATE 구조는 DEVICE_DSM_OUTPUT OutputBlockOffset 에 의해 지정된 시스템 버퍼의 시작 부분에서 오프셋에서 시작됩니다.

할당 비트맵의 각 비트는 요청된 데이터 집합 범위 내의 슬래브 매핑을 나타냅니다. 비트는 데이터 집합 범위의 슬래브에 직접 해당합니다. 즉, 비트맵의 비트 0은 범위의 첫 번째 슬래브를 표시합니다. 비트 값이 1이면 슬래브가 매핑되고 비트 값이 0이면 매핑되지 않습니다.

SlabAllocationBitMap의 공간은 요청된 데이터 집합 범위에서 가능한 슬래브 수에 따라 할당되어야 합니다. 반환된 비트맵의 SlabAllocationBitMapLength 는 (슬래브 수 / 32) + ((슬래브 MOD 32 수) > 0? 1 : 0).

슬래브 크기는 IOCTL_STORAGE_QUERY_PROPERTY 요청에서 반환된 DEVICE_LB_PROVISIONING_DESCRIPTOROptimalUnmapGranularity 멤버에 의해 결정됩니다. 제공된 데이터 집합 범위의 길이는 OptimalUnmapGranularity의 배수여야 합니다. 범위 길이가 OptimalUnmapGranularity의 배수가 아닌 경우 배수로 줄어듭니다.

데이터 집합 범위의 시작 오프셋이 최적UnmapGranularity의 배수인 슬래브 경계에 정렬되지 않으면 오프셋이 다음 경계로 조정됩니다. 요청된 오프셋과 조정된 오프셋 간의 차이는 SlabOffsetDeltaInBytes에 반환됩니다.

데이터 집합 범위 맞춤 또는 길이 조정으로 인해 SlabAllocationBitMapBitCount 에 반환된 슬래브 할당 합계가 예상대로 되지 않는 경우 SlabAllocationBitMapBitCountSlabOffsetDeltaInBytes의 값에 따라 수정된 데이터 집합 범위로 추가 요청을 제출할 수 있습니다. 새 범위는 이전 요청에서 반환된 비트맵에서 제외된 슬래브를 올바르게 선택합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
헤더 ntddstor.h(Ntddstor.h 포함)

참고 항목

DEVICE_DSM_ACTION 설명

DEVICE_DSM_INPUT

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES

IOCTL_STORAGE_QUERY_PROPERTY