Partager via


structure DEVICE_LB_PROVISIONING_DESCRIPTOR (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 appareil 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

Taille de cette structure. Cette valeur est définie sur sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR).

ThinProvisioningEnabled

État activé pour l’approvisionnement dynamique.

Valeur Signification
0 L’approvisionnement dynamique est désactivé.
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 Lit les zéros de retour.

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 de granularité unmap pour l’appareil.

Valeur Signification
0 L’alignement de granularité non mappage n’est pas valide.
1 L’alignement de granularité non mappage 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é; n’utilisez pas.

OptimalUnmapGranularity

Nombre optimal de blocs pour la granularité unmap 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 d’AL qui peut être non mappée 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 requête IOCTL_STORAGE_QUERY_PROPERTY lorsque le propertyId membre 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 de taille de(DEVICE_LB_PROVISIONING_DESCRIPTOR) définie dans Parameters.DeviceIoControl.OutputBufferLength pour l’emplacement actuel de la pile IRP.

Si UnmapGranularityAlignmentValid est 0, tout code utilisant UnmapGranularityAlignment doit supposer qu’il a la valeur 0.

Si l’appareil de stockage sous-jacent est un appareil SCSI, vous pouvez interroger la fonctionnalité de non-mappage. Si le TrimEnabled membre 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 de IOCTL_STORAGE_QUERY_PROPERTY lorsque le PropertyId membre de STORAGE_PROPERTY_QUERY est défini sur StorageDeviceTrimProperty.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8
d’en-tête ntddstor.h (include Ntddstor.h)

Voir aussi

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY