Compartilhar via


estrutura DEVICE_LB_PROVISIONING_DESCRIPTOR (ntddstor.h)

A estrutura DEVICE_LB_PROVISIONING_DESCRIPTOR é uma das estruturas de resultado da consulta retornadas de uma solicitação de IOCTL_STORAGE_QUERY_PROPERTY . Essa estrutura contém os recursos de provisionamento dinâmicos para um dispositivo de armazenamento.

Sintaxe

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;

Membros

Version

A versão dessa estrutura.

Size

O tamanho desta estrutura. Isso é definido como sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR).

ThinProvisioningEnabled

O status habilitado para provisionamento dinâmico.

Valor Significado
0 O provisionamento dinâmico está desabilitado.
1 O provisionamento dinâmico está habilitado.

ThinProvisioningReadZeros

As leituras para regiões não mapeadas retornam zeros.

Valor Significado
0 Os dados lidos de regiões não mapeadas são indefinidos.
1 As leituras retornam zeros.

AnchorSupported

Suporte para o estado de mapeamento lba ancorado.

Valor Significado
0 Não há suporte para o estado de mapeamento lba ancorado.
1 Há suporte para o estado de mapeamento LBA ancorado.

UnmapGranularityAlignmentValid

A validade do alinhamento de granularidade não mapa para o dispositivo.

Valor Significado
0 O alinhamento de granularidade não é válido.
1 O alinhamento de granularidade não mapa é válido.

GetFreeSpaceSupported

Indica suporte para DeviceDsmAction_GetFreeSpace.

Valor Significado
0 não há suporte para DeviceDsmAction_GetFreeSpace.
1 DeviceDsmAction_GetFreeSpace tem suporte.

MapSupported

Indica suporte para DeviceDsmAction_Map.

Valor Significado
0 não há suporte para DeviceDsmAction_Map.
1 DeviceDsmAction_Map tem suporte.

Reserved1[7]

Reservado; não use.

OptimalUnmapGranularity

O número ideal de blocos para granularidade não mapa para o dispositivo.

UnmapGranularityAlignment

O valor atual, em blocos, definido para o alinhamento de granularidade não mapa no dispositivo. O valor UnmapGranularityAlignmentValid indica a validade desse membro.

MaxUnmapLbaCount

Quantidade máxima de LBAs que podem ser não mapeadas em um único comando UNMAP, em unidades de blocos lógicos. Válido começando no Windows 10.

MaxUnmapBlockDescriptorCount

Número máximo de descritores permitidos em um único comando UNMAP. Válido começando no Windows 10.

Comentários

Essa estrutura é retornada no buffer do sistema de uma solicitação de IOCTL_STORAGE_QUERY_PROPERTY quando o membro PropertyId do STORAGE_PROPERTY_QUERY é definido como StorageDeviceLBProvisioningProperty.

A estrutura DEVICE_LB_PROVISIONING_DESCRIPTOR é gravada no buffer do sistema, Irp-AssociatedIrp.SystemBuffer>, com um valor de sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR) definido em Parameters.DeviceIoControl.OutputBufferLength para o local da pilha IRP atual.

Se UnmapGranularityAlignmentValid for 0, qualquer código que use UnmapGranularityAlignment deverá assumir que tem um valor de 0.

Se o dispositivo de armazenamento subjacente for um dispositivo SCSI, a funcionalidade de desmapeamento poderá ser consultada. Se o membro TrimEnabled da estrutura DEVICE_TRIM_DESCRIPTOR for TRUE, o UNMAP terá suporte. A estrutura DEVICE_TRIM_DESCRIPTOR é retornada no buffer do sistema de uma solicitação de IOCTL_STORAGE_QUERY_PROPERTY quando o membro PropertyId do STORAGE_PROPERTY_QUERY é definido como StorageDeviceTrimProperty.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Cabeçalho ntddstor.h (inclua Ntddstor.h)

Confira também

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY