DEVICE_LB_PROVISIONING_DESCRIPTOR 構造体 (ntddstor.h)

DEVICE_LB_PROVISIONING_DESCRIPTOR構造体は、IOCTL_STORAGE_QUERY_PROPERTY要求から返されるクエリ結果構造体の 1 つです。 この構造には、ストレージ デバイスのシン プロビジョニング機能が含まれています。

構文

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;

メンバー

Version

この構造体のバージョン。

Size

この構造のサイズ。 これは に sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR)設定されます。

ThinProvisioningEnabled

シン プロビジョニングが有効な状態。

意味
0 シン プロビジョニングが無効になっています。
1 シン プロビジョニングが有効になっています。

ThinProvisioningReadZeros

マップされていない領域への読み取りでは、0 が返されます。

意味
0 マップされていないリージョンから読み取られたデータは未定義です。
1 読み取りでは 0 が返されます。

AnchorSupported

アンカー化された LBA マッピング状態のサポート。

意味
0 アンカー化された LBA マッピング状態はサポートされていません。
1 アンカー化された LBA マッピング状態がサポートされています。

UnmapGranularityAlignmentValid

デバイスのマップ解除粒度のアラインメントの有効性。

意味
0 マップ解除の粒度の調整が無効です。
1 細分性のアラインメントのマップ解除は有効です。

GetFreeSpaceSupported

DeviceDsmAction_GetFreeSpaceのサポートを示します。

意味
0 DeviceDsmAction_GetFreeSpace はサポートされていません。
1 DeviceDsmAction_GetFreeSpace がサポートされています。

MapSupported

DeviceDsmAction_Mapのサポートを示します。

意味
0 DeviceDsmAction_Map はサポートされていません。
1 DeviceDsmAction_Map がサポートされています。

Reserved1[7]

予約済みです。使わないでください。

OptimalUnmapGranularity

デバイスのマップ解除の粒度に最適なブロック数。

UnmapGranularityAlignment

現在の値 (ブロック単位) は、デバイスでの粒度のアラインメントをマップ解除するために設定されます。 値 UnmapGranularityAlignmentValid は、このメンバーの有効性を示します。

MaxUnmapLbaCount

1 つの UNMAP コマンドでマップ解除できる LBA の最大量 (論理ブロックの単位)。 Windows 10 から有効です。

MaxUnmapBlockDescriptorCount

1 つの UNMAP コマンドで許可される記述子の最大数。 Windows 10 から有効です。

注釈

この構造体は、STORAGE_PROPERTY_QUERYPropertyId メンバーが StorageDeviceLBProvisioningProperty に設定されている場合、IOCTL_STORAGE_QUERY_PROPERTY要求からシステム バッファーに返されます。

DEVICE_LB_PROVISIONING_DESCRIPTOR構造体は、現在の IRP スタックの場所の Parameters.DeviceIoControl.OutputBufferLength に設定された sizeof(DEVICE_LB_PROVISIONING_DESCRIPTOR) の値を使用して、システム バッファー Irp-AssociatedIrp.SystemBuffer> に書き込まれます。

UnmapGranularityAlignmentValid が 0 の場合、UnmapGranularityAlignment を使用するコードでは、値が 0 であると想定する必要があります。

基になるストレージ デバイスが SCSI デバイスの場合は、マップ解除機能に対してクエリを実行できます。 DEVICE_TRIM_DESCRIPTOR構造体の TrimEnabled メンバーが TRUE の場合、UNMAP がサポートされます。 DEVICE_TRIM_DESCRIPTOR構造体は、STORAGE_PROPERTY_QUERYPropertyId メンバーが StorageDeviceTrimProperty に設定されている場合、IOCTL_STORAGE_QUERY_PROPERTY要求からシステム バッファーに返されます。

要件

要件
サポートされている最小のクライアント Windows 8
Header ntddstor.h (Ntddstor.h を含む)

こちらもご覧ください

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY