Compartir a través de


estructura DEVICE_DATA_SET_LB_PROVISIONING_STATE (ntddstor.h)

Una solicitud de IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES devuelve la estructura DEVICE_DATA_SET_LB_PROVISIONING_STATE al solicitar información de aprovisionamiento de bloques lógicos para un intervalo de conjuntos de datos.

Sintaxis

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;

Miembros

Size

Tamaño de esta estructura, incluido el mapa de bits de asignación de loslabos, en bytes.

Version

Versión de esta estructura.

SlabSizeInBytes

Tamaño, en bytes, de una losa.

SlabOffsetDeltaInBytes

La diferencia, en bytes, del desplazamiento especificado en el intervalo del conjunto de datos a la posición inicial de la losa.

SlabAllocationBitMapBitCount

Número de bits de los los loslabes de asignación de mapa de bits de asignación para el intervalo del conjunto de datos.

SlabAllocationBitMapLength

Número de valores de matriz de ULONG que contienen el mapa de bits de asignación de la laja.

SlabAllocationBitMap[ANYSIZE_ARRAY]

Mapa de bits de asignaciones de loslabes.

Observaciones

La información de estado de aprovisionamiento se devuelve cuando el miembro acción de de DEVICE_DSM_INPUT se establece en DeviceDsmAction_Allocation. El autor de la llamada debe incluir solo un intervalo de conjuntos de datos en el búfer del sistema en DataSetRangesOffset.

A cambio, el búfer del sistema contiene una estructura de DEVICE_DSM_OUTPUT seguida de la estructura DEVICE_DATA_SET_LB_PROVISIONING_STATE. La estructura DEVICE_DATA_SET_LB_PROVISIONING_STATE comienza en un desplazamiento desde el principio del búfer del sistema especificado por OutputBlockOffset en DEVICE_DSM_OUTPUT.

Cada bit del mapa de bits de asignación representa una asignación de loslabes dentro del intervalo de conjunto de datos solicitado. Los bits corresponden directamente a los loslabes del intervalo del conjunto de datos. Esto significa que el bit 0 del mapa de bits marca la primera lala del intervalo. Se asigna un lote si el valor de bit = 1 y se desasigna si el valor de bit = 0.

Se debe asignar espacio para SlabAllocationBitMap en función del número de posibles loslabos del intervalo de conjuntos de datos solicitados. El SlabAllocationBitMapLength del mapa de bits devuelto es (número de loslabas / 32) + ((número de lalabas MOD 32) > 0 ? 1 : 0).

El tamaño de loslabes viene determinado por el miembro OptimalUnmapGranular ity de DEVICE_LB_PROVISIONING_DESCRIPTOR devuelto desde una solicitud de IOCTL_STORAGE_QUERY_PROPERTY. La longitud del intervalo de conjunto de datos proporcionado debe ser un múltiplo de OptimalUnmapGranularity. Cuando la longitud del intervalo no es un múltiplo de OptimalUnmapGranularity, se reduce a ser un múltiplo.

Si el desplazamiento inicial en el intervalo del conjunto de datos no está alineado en un límite de lalaba, un múltiplo de OptimalUnmapGranularity, el desplazamiento se ajustará al siguiente límite. La diferencia entre el desplazamiento solicitado y el desplazamiento ajustado se devuelve en SlabOffsetDeltaInBytes.

Si el total de asignación de los bloques devuelto en SlabAllocationBitMapBitCount no es el esperado debido a los ajustes de alineación o longitud del intervalo del conjunto de datos, se puede enviar una solicitud adicional con un intervalo de conjunto de datos modificado según los valores de SlabAllocationBitMapBitCount y SlabOffsetDeltaInBytes. El nuevo intervalo seleccionará correctamente las losas que quedan fuera del mapa de bits devuelto por la solicitud anterior.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 8.
encabezado de ntddstor.h (incluya Ntddstor.h)

Consulte también

de descripciones de DEVICE_DSM_ACTION

DEVICE_DSM_INPUT

IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES

IOCTL_STORAGE_QUERY_PROPERTY