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_QUERY の PropertyId メンバーが 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_QUERY の PropertyId メンバーが StorageDeviceTrimProperty に設定されている場合、IOCTL_STORAGE_QUERY_PROPERTY要求からシステム バッファーに返されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 |
Header | ntddstor.h (Ntddstor.h を含む) |