estructura DEVICE_LB_PROVISIONING_DESCRIPTOR (ntddstor.h)
La estructura DEVICE_LB_PROVISIONING_DESCRIPTOR es una de las estructuras de resultados de la consulta devueltas desde una solicitud de IOCTL_STORAGE_QUERY_PROPERTY . Esta estructura contiene las funcionalidades de aprovisionamiento fino para un dispositivo de almacenamiento.
Sintaxis
typedef struct _DEVICE_LB_PROVISIONING_DESCRIPTOR {
ULONG Version;
ULONG Size;
UCHAR ThinProvisioningEnabled : 1;
UCHAR ThinProvisioningReadZeros : 1;
UCHAR AnchorSupported : 3;
UCHAR UnmapGranularityAlignmentValid : 1;
UCHAR GetFreeSpaceSupported : 1;
UCHAR MapSupported : 1;
UCHAR Reserved1[7];
ULONGLONG OptimalUnmapGranularity;
ULONGLONG UnmapGranularityAlignment;
ULONG MaxUnmapLbaCount;
ULONG MaxUnmapBlockDescriptorCount;
} DEVICE_LB_PROVISIONING_DESCRIPTOR, *PDEVICE_LB_PROVISIONING_DESCRIPTOR;
Miembros
Version
Versión de esta estructura.
Size
Tamaño de esta estructura. Se establece en sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR)
.
ThinProvisioningEnabled
Estado habilitado para el aprovisionamiento fino.
Valor | Significado |
---|---|
0 | El aprovisionamiento fino está deshabilitado. |
1 | El aprovisionamiento fino está habilitado. |
ThinProvisioningReadZeros
Las lecturas en regiones no asignadas devuelven ceros.
Valor | Significado |
---|---|
0 | Los datos leídos de regiones no asignadas no están definidos. |
1 | Las lecturas devuelven ceros. |
AnchorSupported
Compatibilidad con el estado de asignación de LBA anclado.
Valor | Significado |
---|---|
0 | No se admite el estado de asignación LBA anclado. |
1 | Se admite el estado de asignación de LBA anclado. |
UnmapGranularityAlignmentValid
La validez de la alineación de granularidad sin asignar para el dispositivo.
Valor | Significado |
---|---|
0 | La alineación de la granularidad del mapa no es válida. |
1 | La alineación de la granularidad del mapa es válida. |
GetFreeSpaceSupported
Indica compatibilidad con DeviceDsmAction_GetFreeSpace.
Valor | Significado |
---|---|
0 | no se admite DeviceDsmAction_GetFreeSpace. |
1 | DeviceDsmAction_GetFreeSpace se admite. |
MapSupported
Indica compatibilidad con DeviceDsmAction_Map.
Valor | Significado |
---|---|
0 | no se admite DeviceDsmAction_Map. |
1 | DeviceDsmAction_Map se admite. |
Reserved1[7]
Reservado; no usar.
OptimalUnmapGranularity
El número óptimo de bloques para desasignación de granularidad para el dispositivo.
UnmapGranularityAlignment
Valor actual, en bloques, establecido para la alineación de granularidad sin asignar en el dispositivo. El valor UnmapGranularityAlignmentValid indica la validez de este miembro.
MaxUnmapLbaCount
Cantidad máxima de LBA que se pueden desasignación en un único comando UNMAP, en unidades de bloques lógicos. Válido a partir de Windows 10.
MaxUnmapBlockDescriptorCount
Número máximo de descriptores permitidos en un único comando UNMAP. Válido a partir de Windows 10.
Comentarios
Esta estructura se devuelve en el búfer del sistema desde una solicitud de IOCTL_STORAGE_QUERY_PROPERTY cuando el miembro PropertyId de STORAGE_PROPERTY_QUERY se establece en StorageDeviceLBProvisioningProperty.
La estructura DEVICE_LB_PROVISIONING_DESCRIPTOR se escribe en el búfer del sistema, Irp-AssociatedIrp.SystemBuffer>, con un valor de sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR) establecido en Parameters.DeviceIoControl.OutputBufferLength para la ubicación actual de la pila IRP.
Si UnmapGranularityAlignmentValid es 0, cualquier código que use UnmapGranularityAlignment debe suponer que tiene un valor de 0.
Si el dispositivo de almacenamiento subyacente es un dispositivo SCSI, se puede consultar la funcionalidad de desasignación. Si el miembro TrimEnabled de la estructura de DEVICE_TRIM_DESCRIPTOR es TRUE, se admite UNMAP. La estructura DEVICE_TRIM_DESCRIPTOR se devuelve en el búfer del sistema de una solicitud IOCTL_STORAGE_QUERY_PROPERTY cuando el miembro PropertyId de STORAGE_PROPERTY_QUERY se establece en StorageDeviceTrimProperty.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8 |
Encabezado | ntddstor.h (incluya Ntddstor.h) |