Поделиться через


структура VDS_DISK_PROP2 (vds.h)

[Начиная с Windows 8 и Windows Server 2012 COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]

Определяет свойства объекта диска. Эта структура идентична структуре 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_DS_ONLINE, даже если состояние содержащего пакета VDS_PS_OFFLINE.
 

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. Базовые и динамические диски сопоставляются с перечислителем FixedMedia . Дополнительные сведения см. в разделе STORAGE_MEDIA_TYPE.

ullSize

Размер диска в байтах. Чтобы определить максимальный размер тома для диска, вызовите IVdsDisk3::QueryFreeExtents и добавьте размеры всех свободных экстентов.

ulBytesPerSector

Количество байтов в каждом секторе.

ulSectorsPerTrack

Количество секторов в каждой дорожке.

ulTracksPerCylinder

Количество дорожек в каждом цилиндре.

ulFlags

Битовая маска VDS_DISK_FLAG значений перечисления, указывающих различные атрибуты диска.

BusType

Типы входной и выходной шины, перечисляемые VDS_STORAGE_BUS_TYPE.

PartitionStyle

Перечисление VDS_PARTITION_STYLE , указывающее стиль секции. Этот член является дискриминантом для профсоюза.

dwSignature

Используется, если PartitionStyle имеет VDS_PST_MBR (1). Сигнатура для раздела MBR. Это значение не гарантируется как уникальное.

DiskGuid

Используется, если PartitionStyle имеет значение VDS_PST_GPT (2). The
ИДЕНТИФИКАТОР GUID для диска. Кроме того, у каждой секции GPT есть собственный GUID. (См . VDS_PARTITION_INFO_GPT.)

pwszDiskAddress

Адрес диска, подобного SCSI, в форматеNNNPathNNNTargetNNN Lun NNN, где NNN — это одна или несколько цифр.

Диски SCSI, диски интегрированной среды разработки и диски Fibre Channel могут иметь такой адрес. Диски USB и 1394 имеют разные форматы адресов и не сохраняются.

Этот член является необязательным и может иметь значение NULL , если значение недоступно. Если значение не равно NULL, его длина должна быть больше или равна 22 WCHAR и меньше или равна 64 WCHAR, включая обязательный признак конца NULL . Приложения, получающие структуру VDS_DISK_PROP2 путем вызова IVdsDisk3::GetProperties2, должны проверка, имеет ли этот член значение NULL.

pwszName

Имя, используемое для открытия дескриптора для объекта, созданного с помощью функции CreateFile . Пример:

pwszFriendlyName

Имя, возвращаемое диспетчером Plug and Play (PnP). Это имя сохраняется в реестре Windows с помощью диспетчера Plug and Play, например 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 , передавая &DEVPKEY_Device_LocationPaths для параметра PropertyKey .
BusType Тип шины: ATA, RAID, SAS или SCSI.
Примечание Если шина имеет тип IDE, PATA или SATA, она отображается как ATA в строке пути расположения. Если это PCI RAID, он отображается как RAID.
 
PathId Номер автобуса. Это значение элемента PathId структуры SCSI_ADDRESS , возвращаемой кодом элемента управления IOCTL_SCSI_GET_ADDRESS .
TargetId Номер целевого устройства. Это значение элемента TargetId структуры SCSI_ADDRESS , возвращаемой кодом элемента управления IOCTL_SCSI_GET_ADDRESS .
LunId Номер LUN. Это значение элемента Lunструктуры SCSI_ADDRESS , возвращаемой кодом элемента управления IOCTL_SCSI_GET_ADDRESS .
 

В следующей таблице приведены примеры путей к расположению.

Тип шины Пример пути к расположению
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 [только классические приложения]
Верхняя часть vds.h

См. также раздел

IVdsDisk3::GetProperties2

VDS_DISK_OFFLINE_REASON

VDS_PARTITION_INFO_GPT

VDS_PARTITION_INFO_MBR