DEVICE_LB_PROVISIONING_DESCRIPTOR structure (ntddstor.h)
La structure DEVICE_LB_PROVISIONING_DESCRIPTOR est l’une des structures de résultats de requête retournées par une requête IOCTL_STORAGE_QUERY_PROPERTY . Cette structure contient les fonctionnalités d’approvisionnement dynamique pour un périphérique de stockage.
Syntaxe
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;
Membres
Version
Version de cette structure.
Size
La taille de cette structure. Cette valeur est définie sur sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR)
.
ThinProvisioningEnabled
Le status pour le provisionnement dynamique.
Valeur | Signification |
---|---|
0 | L’allocation dynamique est désactivée. |
1 | L’approvisionnement dynamique est activé. |
ThinProvisioningReadZeros
Les lectures dans les régions non mappées retournent des zéros.
Valeur | Signification |
---|---|
0 | Les données lues à partir de régions non mappées ne sont pas définies. |
1 | Les lectures retournent des zéros. |
AnchorSupported
Prise en charge de l’état de mappage LBA ancré.
Valeur | Signification |
---|---|
0 | L’état de mappage LBA ancré n’est pas pris en charge. |
1 | L’état de mappage LBA ancré est pris en charge. |
UnmapGranularityAlignmentValid
Validité de l’alignement d’un mappage de granularité pour l’appareil.
Valeur | Signification |
---|---|
0 | Annuler l’alignement de granularité n’est pas valide. |
1 | L’alignement de la granularité de l’annulation de la carte est valide. |
GetFreeSpaceSupported
Indique la prise en charge de DeviceDsmAction_GetFreeSpace.
Valeur | Signification |
---|---|
0 | DeviceDsmAction_GetFreeSpace n’est pas pris en charge. |
1 | DeviceDsmAction_GetFreeSpace est pris en charge. |
MapSupported
Indique la prise en charge de DeviceDsmAction_Map.
Valeur | Signification |
---|---|
0 | DeviceDsmAction_Map n’est pas pris en charge. |
1 | DeviceDsmAction_Map est pris en charge. |
Reserved1[7]
Réservé ; ne pas utiliser.
OptimalUnmapGranularity
Nombre optimal de blocs pour un mappage de granularité pour l’appareil.
UnmapGranularityAlignment
Valeur actuelle, en blocs, définie pour l’alignement de granularité unmap sur l’appareil. La valeur UnmapGranularityAlignmentValid indique la validité de ce membre.
MaxUnmapLbaCount
Quantité maximale de LBA pouvant être démappées dans une seule commande UNMAP, en unités de blocs logiques. Valide à partir de Windows 10.
MaxUnmapBlockDescriptorCount
Nombre maximal de descripteurs autorisés dans une seule commande UNMAP. Valide à partir de Windows 10.
Remarques
Cette structure est retournée dans la mémoire tampon système à partir d’une demande de IOCTL_STORAGE_QUERY_PROPERTY lorsque le membre PropertyId de STORAGE_PROPERTY_QUERY est défini sur StorageDeviceLBProvisioningProperty.
La structure DEVICE_LB_PROVISIONING_DESCRIPTOR est écrite dans la mémoire tampon système, Irp-AssociatedIrp.SystemBuffer>, avec une valeur sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR) définie dans Parameters.DeviceIoControl.OutputBufferLength pour l’emplacement de pile IRP actuel.
Si UnmapGranularityAlignmentValid a la valeur 0, tout code utilisant UnmapGranularityAlignment doit supposer qu’il a la valeur 0.
Si le périphérique de stockage sous-jacent est un appareil SCSI, la fonctionnalité de démappage peut être interrogée. Si le membre TrimEnabled de la structure DEVICE_TRIM_DESCRIPTOR a la valeur TRUE, UNMAP est pris en charge. La structure DEVICE_TRIM_DESCRIPTOR est retournée dans la mémoire tampon système à partir d’une requête IOCTL_STORAGE_QUERY_PROPERTY lorsque le membre PropertyId de STORAGE_PROPERTY_QUERY est défini sur StorageDeviceTrimProperty.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 |
En-tête | ntddstor.h (inclure Ntddstor.h) |