VDS_DISK_PROP2 構造体 (vds.h)

[Windows 8とWindows Server 2012以降、Virtual Disk Service COM インターフェイスは Windows Storage Management API に置き換えられます。

ディスク オブジェクトのプロパティを定義します。 この構造体は 、VDS_DISK_PROP 構造と同じですが、場所パスも含まれており、ディスクがオフラインの場合はオフラインの理由が含まれます。

構文

typedef struct _VDS_DISK_PROP2 {
  VDS_OBJECT_ID           id;
  VDS_DISK_STATUS         status;
  VDS_DISK_OFFLINE_REASON OfflineReason;
  VDS_LUN_RESERVE_MODE    ReserveMode;
  VDS_HEALTH              health;
  DWORD                   dwDeviceType;
  DWORD                   dwMediaType;
  ULONGLONG               ullSize;
  ULONG                   ulBytesPerSector;
  ULONG                   ulSectorsPerTrack;
  ULONG                   ulTracksPerCylinder;
  ULONG                   ulFlags;
  VDS_STORAGE_BUS_TYPE    BusType;
  VDS_PARTITION_STYLE     PartitionStyle;
  union {
    DWORD dwSignature;
    GUID  DiskGuid;
  };
  LPWSTR                  pwszDiskAddress;
  LPWSTR                  pwszName;
  LPWSTR                  pwszFriendlyName;
  LPWSTR                  pwszAdaptorName;
  LPWSTR                  pwszDevicePath;
  LPWSTR                  pwszLocationPath;
} VDS_DISK_PROP2, *PVDS_DISK_PROP2;

メンバー

id

ディスク オブジェクトの GUID。

status

ディスク 状態を指定するVDS_DISK_STATUS列挙値。VDS サービスがディスクへのハンドルを開くことができない場合は、このメンバーを VDS_DS_UNKNOWN に設定します。

メモ このメンバーは、含まれているパックの状態がVDS_PS_OFFLINEされている場合でも、VDS_DS_ONLINEできます。
 

OfflineReason

ディスクがオフラインの場合、このメンバーはオフラインである理由を指定する VDS_DISK_OFFLINE_REASON 列挙値です。

ReserveMode

このメンバーは将来使用するために予約されています。

health

ディスク 正常性状態を指定するVDS_HEALTH列挙値。 このメンバーの有効な値を次に示します。

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_FAILING (4)

VDS_H_FAILED (8)

dwDeviceType

Winioctl.h で定義されているデバイスの種類。これには、次のような種類が含まれます。

dwMediaType

STORAGE_MEDIA_TYPEによって列挙されるメディアの種類。 Basic ディスクとダイナミック ディスクは 、FixedMedia 列挙子にマップされます。 詳細については、「 STORAGE_MEDIA_TYPE」を参照してください。

ullSize

ディスクのサイズ (バイト単位)。 ディスクの最大ボリューム サイズを確認するには、 IVdsDisk3::QueryFreeExtents を呼び出し、すべての空きエクステントのサイズを追加します。

ulBytesPerSector

各セクターのバイト数。

ulSectorsPerTrack

各トラックのセクター数。

ulTracksPerCylinder

各円柱内のトラックの数。

ulFlags

さまざまなディスク属性 VDS_DISK_FLAG 指定する列挙値のビットマスク。

BusType

VDS_STORAGE_BUS_TYPEによって列挙される入出力バスの種類。

PartitionStyle

パーティション スタイルを指定する VDS_PARTITION_STYLE 列挙。 このメンバーは、共用体の判別です。

dwSignature

PartitionStyleVDS_PST_MBR (1) の場合に使用されます。 MBR パーティションの署名。 この値は一意であるとは限りません。

DiskGuid

PartitionStyleVDS_PST_GPT (2) の場合に使用されます。 次に、
ディスクの GUID。 さらに、各 GPT パーティションには独自の GUID があります。 ( 「VDS_PARTITION_INFO_GPT」を参照してください)。

pwszDiskAddress

ポートNNN パス NNNターゲットNNN Lun NNN形式の SCSI に似たディスクのアドレス 。NNN は 1 桁以上です。

SCSI ディスク、IDE ディスク、ファイバー チャネル ディスクには、このようなアドレスを指定できます。 USB ディスクと 1394 ディスクのアドレス形式は異なり、保存されません。

このメンバーは省略可能であり、使用可能な値がない場合は NULL にすることができますNULL でない場合、その長さは 22 WCHAR 以上で、必要な NULL ターミネータを含め、64 WCHAR 以下である必要があります。 IVdsDisk3::GetProperties2 を呼び出してVDS_DISK_PROP2構造体を受け取るアプリケーションは、このメンバーが NULL であるかどうかをチェックする必要があります。

pwszName

CreateFile 関数を使用して作成されたオブジェクトへのハンドルを開くために使用される名前。 例:

pwszFriendlyName

プラグ アンド プレイ (PnP) マネージャーによって返される名前。 この名前は、プラグ アンド プレイ マネージャーによって Windows レジストリに保持されます 。たとえば、"SEAGATE ST34573N SCSI ディスク デバイス" です。

pwszAdaptorName

このディスクが接続されているアダプターの名前。 PnP マネージャーは、Windows レジストリに保持されている名前を返します。たとえば、"Adaptec AHA-2940U2W - Ultra2 SCSI" などです。

pwszDevicePath

PnP マネージャーによって返される文字列。 PnP マネージャーは、デバイス パスを使用して、コンピューター上のデバイスを一意に識別します。 詳細については、「 SP_DEVICE_INTERFACE_DETAIL_DATA_W」を参照してください。

pwszLocationPath

ディスクの PnP の場所パスを含む文字列。 この文字列の形式は、バスの種類によって異なります。 バスの種類が SCSI、SAS、または PCI RAID の場合、形式は AdapterPnpLocationPath#BusType(PPathIdTTargetIdLLunId) です。 バスの種類が IDE、ATA、PATA、または SATA の場合、形式は AdapterPnpLocationPath#BusType(CPathIdTTargetIdLLunId) です。 この文字列の部分を一覧表示する表については、次の「解説」セクションを参照してください。

メモ Hyper-V の場合、仮想コントローラーは場所のパスを返さないので、このメンバーは NULL です
 

注釈

IVdsDisk3::GetProperties2 メソッドは、ディスク オブジェクトのプロパティを報告するためにこの構造体を返します。

次の表に、 pwszLocationPath メンバーで使用される場所パス文字列の部分を示します。

場所パス パーツ 説明
AdapterPnpLocationPath アダプターの PnP 位置パス。 これは、 SetupDiGetDeviceProperty 関数を呼び出し、 PropertyKey パラメーターの &DEVPKEY_Device_LocationPaths を渡すことによって取得されます。
BusType バスの種類: ATA、RAID、SAS、SCSI。
メモ バスの種類が IDE、PATA、または SATA の場合は、場所パス文字列に ATA として表示されます。 PCI RAID の場合は、RAID と表示されます。
 
PathId バスの番号。 これは、IOCTL_SCSI_GET_ADDRESSコントロール コードによって返されるSCSI_ADDRESS構造体の PathId メンバーの値です。
Targetid ターゲット デバイスの番号。 これは、IOCTL_SCSI_GET_ADDRESS コントロール コードによって返されるSCSI_ADDRESS構造体の TargetId メンバーの値です。
LunId LUN の番号。 これは、IOCTL_SCSI_GET_ADDRESSコントロール コードによって返されるSCSI_ADDRESS構造体の Lun メンバーの値です。
 

次の表に、場所パスの例を示します。

バスの種類 場所パスの例
ATA PCIROOT(0)#PCI(0100)#ATA(C01T03L00)
RAID PCIROOT(0)#PCI(0200)#PCI(0003)#PCI(0100)#RAID(P02T00L00)
SAS PCIROOT(1)#PCI(0300)#SAS(P00T03L00)
SCSI PCIROOT(0)#PCI(1C00)#PCI(0000)#SCSI(P00T01L01)

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
Header vds.h

こちらもご覧ください

IVdsDisk3::GetProperties2

VDS_DISK_OFFLINE_REASON

VDS_PARTITION_INFO_GPT

VDS_PARTITION_INFO_MBR