Compartilhar via


estrutura VDS_DISK_PROP2 (vds.h)

[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]

Define as propriedades de um objeto de disco. Essa estrutura é idêntica à estrutura VDS_DISK_PROP , exceto que também inclui o caminho de localização e, se o disco estiver offline, o motivo pelo qual ele está offline.

Sintaxe

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;

Membros

id

O GUID do objeto de disco.

status

Um valor de enumeração VDS_DISK_STATUS que especifica o status do disco. Se o serviço VDS não puder abrir um identificador para o disco, ele definirá esse membro como VDS_DS_UNKNOWN.

Nota Esse membro pode ser VDS_DS_ONLINE, mesmo que o status do pacote de contenção seja VDS_PS_OFFLINE.
 

OfflineReason

Se o disco estiver offline, esse membro será um VDS_DISK_OFFLINE_REASON valor de enumeração que especifica o motivo pelo qual ele está offline.

ReserveMode

Este membro é reservado para uso futuro.

health

Um VDS_HEALTH valor de enumeração que especifica o estado de integridade do disco. Veja a seguir os valores válidos para esse membro.

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_FAILING (4)

VDS_H_FAILED (8)

dwDeviceType

O tipo de dispositivo definido em Winioctl.h, que inclui os seguintes tipos, entre outros:

dwMediaType

Um tipo de mídia enumerado por STORAGE_MEDIA_TYPE. Os discos básicos e dinâmicos são mapeados para o enumerador FixedMedia . Para obter mais informações, consulte STORAGE_MEDIA_TYPE.

ullSize

O tamanho do disco em bytes. Para determinar o tamanho máximo do volume de um disco, chame IVdsDisk3::QueryFreeExtents e adicione os tamanhos de todas as extensões livres.

ulBytesPerSector

O número de bytes em cada setor.

ulSectorsPerTrack

O número de setores em cada faixa.

ulTracksPerCylinder

O número de faixas em cada cilindro.

ulFlags

Uma máscara de bits de VDS_DISK_FLAG valores de enumeração que especificam vários atributos de disco.

BusType

Os tipos de barramento de entrada/saída enumerados por VDS_STORAGE_BUS_TYPE.

PartitionStyle

Uma enumeração VDS_PARTITION_STYLE que especifica o estilo de partição. Este membro é o discriminante para o sindicato.

dwSignature

Usado se PartitionStyle for VDS_PST_MBR (1). A assinatura da partição MBR. Não há garantia de que esse valor seja exclusivo.

DiskGuid

Usado se PartitionStyle for VDS_PST_GPT (2). O
GUID para o disco. Além disso, cada partição GPT tem seu próprio GUID. (Consulte VDS_PARTITION_INFO_GPT.)

pwszDiskAddress

O endereço de um disco semelhante a SCSI no formatoNNN Target NNN NNN Target NNN, em que NNN é um ou mais dígitos.

Discos SCSI, discos IDE e discos Fibre Channel podem ter esse endereço. Os discos USB e 1394 têm formatos de endereço diferentes e não são armazenados.

Esse membro é opcional e pode ser NULL se nenhum valor estiver disponível. Se não for NULL, seu comprimento deverá ser maior ou igual a 22 WCHAR e menor ou igual a 64 WCHAR, incluindo o terminador NULL necessário. Os aplicativos que recebem a estrutura VDS_DISK_PROP2 chamando IVdsDisk3::GetProperties2 devem marcar se esse membro é NULL.

pwszName

O nome usado para abrir um identificador para um objeto criado usando a função CreateFile . Por exemplo:

pwszFriendlyName

O nome retornado pelo Gerenciador de Plug and Play (PnP). Esse nome é mantido no registro do Windows pelo Gerenciador de Plug and Play, por exemplo: "SEAGATE ST34573N Dispositivo de Disco SCSI".

pwszAdaptorName

O nome do adaptador ao qual esse disco está anexado. O Gerenciador PnP retorna o nome, que é mantido no registro do Windows, por exemplo: "Adaptec AHA-2940U2W - Ultra2 SCSI".

pwszDevicePath

A cadeia de caracteres retornada pelo Gerenciador PnP. O Gerenciador de PnP usa o caminho do dispositivo para identificar exclusivamente um dispositivo em um computador. Para obter mais informações, consulte SP_DEVICE_INTERFACE_DETAIL_DATA_W.

pwszLocationPath

Uma cadeia de caracteres que contém o caminho de localização PnP do disco. O formato dessa cadeia de caracteres depende do tipo de barramento. Se o tipo de barramento for SCSI, SAS ou PCI RAID, o formato será AdapterPnpLocationPath#BusType(PPathIdTTargetIdLLunId). Se o tipo de barramento for IDE, ATA, PATA ou SATA, o formato será AdapterPnpLocationPath#BusType(CPathIdTTargetIdLLunId). Consulte a seção Comentários a seguir para obter uma tabela que lista as partes dessa cadeia de caracteres.

Nota Para o Hyper-V, esse membro é NULL, pois o controlador virtual não retorna o caminho de localização.
 

Comentários

O método IVdsDisk3::GetProperties2 retorna essa estrutura para relatar as propriedades de um objeto de disco.

A tabela a seguir lista as partes da cadeia de caracteres de caminho de localização usada no membro pwszLocationPath .

Parte do caminho de localização Descrição
AdapterPnpLocationPath O caminho de localização PnP do adaptador. Isso é recuperado chamando a função SetupDiGetDeviceProperty , passando &DEVPKEY_Device_LocationPaths para o parâmetro PropertyKey .
BusType O tipo de barramento: ATA, RAID, SAS ou SCSI.
Nota Se o tipo de barramento for IDE, PATA ou SATA, ele aparecerá como ATA na cadeia de caracteres do caminho de localização. Se for RAID PCI, ele aparecerá como RAID.
 
PathId O número do ônibus. Esse é o valor do membro PathId da estrutura SCSI_ADDRESS que é retornado pelo código de controle IOCTL_SCSI_GET_ADDRESS .
Targetid O número do dispositivo de destino. Esse é o valor do membro TargetId da estrutura SCSI_ADDRESS que é retornado pelo código de controle IOCTL_SCSI_GET_ADDRESS .
LunId O número do LUN. Esse é o valor do membro Lun da estrutura SCSI_ADDRESS que é retornado pelo código de controle IOCTL_SCSI_GET_ADDRESS .
 

A tabela a seguir contém exemplos de caminhos de localização.

Tipo de barramento Exemplo de caminho de localização
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)

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Cabeçalho vds.h

Confira também

IVdsDisk3::GetProperties2

VDS_DISK_OFFLINE_REASON

VDS_PARTITION_INFO_GPT

VDS_PARTITION_INFO_MBR