estructura de VDS_DISK_PROP2 (vds.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Define las propiedades de un objeto de disco. Esta estructura es idéntica a la estructura de VDS_DISK_PROP , excepto que también incluye la ruta de acceso de ubicación y, si el disco está sin conexión, el motivo por el que está sin conexión.

Sintaxis

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;

Miembros

id

GUID del objeto de disco.

status

Valor de enumeración VDS_DISK_STATUS que especifica el estado del disco. Si el servicio VDS no puede abrir un identificador en el disco, establece este miembro en VDS_DS_UNKNOWN.

Nota Este miembro puede ser VDS_DS_ONLINE, incluso si el estado del paquete contenedor es VDS_PS_OFFLINE.
 

OfflineReason

Si el disco está sin conexión, este miembro es un valor de enumeración VDS_DISK_OFFLINE_REASON que especifica el motivo por el que está sin conexión.

ReserveMode

Este miembro se reserva para uso futuro.

health

Valor de enumeración VDS_HEALTH que especifica el estado de mantenimiento del disco. A continuación se muestran los valores válidos para este miembro.

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_FAILING (4)

VDS_H_FAILED (8)

dwDeviceType

El tipo de dispositivo definido en Winioctl.h, que incluye los siguientes tipos entre otros:

dwMediaType

Tipo de medio enumerado por STORAGE_MEDIA_TYPE. Los discos básicos y dinámicos se asignan al enumerador FixedMedia . Para obtener más información, consulte STORAGE_MEDIA_TYPE.

ullSize

Tamaño del disco en bytes. Para determinar el tamaño máximo del volumen de un disco, llame a IVdsDisk3::QueryFreeExtents y agregue los tamaños de todas las extensiones libres.

ulBytesPerSector

Número de bytes de cada sector.

ulSectorsPerTrack

Número de sectores de cada pista.

ulTracksPerCylinder

Número de pistas en cada cilindro.

ulFlags

Máscara de bits de VDS_DISK_FLAG valores de enumeración que especifican varios atributos de disco.

BusType

Los tipos de bus de entrada y salida enumerados por VDS_STORAGE_BUS_TYPE.

PartitionStyle

Enumeración VDS_PARTITION_STYLE que especifica el estilo de partición. Este miembro es el discriminante para la unión.

dwSignature

Se usa si PartitionStyle es VDS_PST_MBR (1). Firma de la partición MBR. No se garantiza que este valor sea único.

DiskGuid

Se usa si PartitionStyle es VDS_PST_GPT (2). The
GUID del disco. Además, cada partición GPT tiene su propio GUID. (Consulte VDS_PARTITION_INFO_GPT).

pwszDiskAddress

La dirección de un disco similar a SCSI enel formatoNNNruta de accesoNNNde destino NNN de destinoNNN, donde NNN es uno o varios dígitos.

Los discos SCSI, los discos IDE y los discos de canal de fibra pueden tener una dirección de este tipo. Los discos USB y 1394 tienen diferentes formatos de dirección y no se almacenan.

Este miembro es opcional y puede ser NULL si no hay ningún valor disponible. Si no es NULL, su longitud debe ser mayor o igual que 22 WCHAR y menor o igual que 64 WCHAR, incluido el terminador NULL necesario. Las aplicaciones que reciben la estructura de VDS_DISK_PROP2 llamando a IVdsDisk3::GetProperties2 deben comprobar si este miembro es NULL.

pwszName

Nombre usado para abrir un identificador en un objeto creado mediante la función CreateFile . Por ejemplo:

pwszFriendlyName

Nombre devuelto por el administrador de Plug and Play (PnP). El administrador de Plug and Play mantiene este nombre en el Registro de Windows, por ejemplo: "SEAGATE ST34573N dispositivo de disco SCSI".

pwszAdaptorName

Nombre del adaptador al que está conectado este disco. El Administrador de PnP devuelve el nombre, que se mantiene en el Registro de Windows, por ejemplo: "Adaptec AHA-2940U2W - Ultra2 SCSI".

pwszDevicePath

Cadena devuelta por el Administrador de PnP. El Administrador de PnP usa la ruta de acceso del dispositivo para identificar de forma única un dispositivo en un equipo. Para obtener más información, consulte SP_DEVICE_INTERFACE_DETAIL_DATA_W.

pwszLocationPath

Cadena que contiene la ruta de acceso de ubicación PnP del disco. El formato de esta cadena depende del tipo de bus. Si el tipo de bus es SCSI, SAS o PCI RAID, el formato es AdapterPnpLocationPath#BusType(PPathIdTTargetIdLLunId). Si el tipo de bus es IDE, ATA, PATA o SATA, el formato es AdapterPnpLocationPath#BusType(CPathIdTTargetIdLLunId). Consulte la siguiente sección Comentarios para ver una tabla que enumera las partes de esta cadena.

Nota Para Hyper-V, este miembro es NULL, porque el controlador virtual no devuelve la ruta de acceso de ubicación.
 

Comentarios

El método IVdsDisk3::GetProperties2 devuelve esta estructura para notificar las propiedades de un objeto de disco.

En la tabla siguiente se enumeran las partes de la cadena de ruta de acceso de ubicación usada en el miembro pwszLocationPath .

Parte de ruta de acceso de ubicación Descripción
AdapterPnpLocationPath Ruta de acceso de ubicación PnP del adaptador. Esto se recupera llamando a la función SetupDiGetDeviceProperty , pasando &DEVPKEY_Device_LocationPaths para el parámetro PropertyKey .
Tipo de bus Tipo de bus: ATA, RAID, SAS o SCSI.
Nota Si el tipo de bus es IDE, PATA o SATA, aparece como ATA en la cadena de ruta de acceso de ubicación. Si es PCI RAID, aparece como RAID.
 
PathId Número del autobús. Este es el valor del miembro PathId de la estructura SCSI_ADDRESS que devuelve el código de control IOCTL_SCSI_GET_ADDRESS .
TargetId Número del dispositivo de destino. Este es el valor del miembro TargetId de la estructura SCSI_ADDRESS que devuelve el código de control IOCTL_SCSI_GET_ADDRESS .
LunId Número del LUN. Este es el valor del miembro Lun de la estructura SCSI_ADDRESS que devuelve el código de control IOCTL_SCSI_GET_ADDRESS .
 

La tabla siguiente contiene ejemplos de rutas de acceso de ubicación.

Tipo de bus Ruta de acceso de ubicación de ejemplo
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 Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado vds.h

Consulte también

IVdsDisk3::GetProperties2

VDS_DISK_OFFLINE_REASON

VDS_PARTITION_INFO_GPT

VDS_PARTITION_INFO_MBR