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)

Voir aussi

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY