estructura STORAGE_DEVICE_DESCRIPTOR (ntddstor.h)
La estructura STORAGE_DEVICE_DESCRIPTOR se usa junto con la solicitud IOCTL_STORAGE_QUERY_PROPERTY para recuperar los datos del descriptor del dispositivo de almacenamiento para un dispositivo.
Sintaxis
typedef struct _STORAGE_DEVICE_DESCRIPTOR {
ULONG Version;
ULONG Size;
UCHAR DeviceType;
UCHAR DeviceTypeModifier;
BOOLEAN RemovableMedia;
BOOLEAN CommandQueueing;
ULONG VendorIdOffset;
ULONG ProductIdOffset;
ULONG ProductRevisionOffset;
ULONG SerialNumberOffset;
STORAGE_BUS_TYPE BusType;
ULONG RawPropertiesLength;
UCHAR RawDeviceProperties[1];
} STORAGE_DEVICE_DESCRIPTOR, *PSTORAGE_DEVICE_DESCRIPTOR;
Miembros
Version
Indica el tamaño de la estructura de STORAGE_DEVICE_DESCRIPTOR . El valor de este miembro cambiará a medida que se agreguen miembros a la estructura.
Size
Especifica el tamaño total del descriptor en bytes, incluidas las cadenas de identificador que se anexan a la estructura.
DeviceType
Especifica el tipo de dispositivo tal y como se define en la especificación small Computer Systems Interface (SCSI).
DeviceTypeModifier
Especifica el modificador de tipo de dispositivo, si existe, tal como se define en la especificación SCSI. Si no existe ningún modificador de tipo de dispositivo, este miembro es cero.
RemovableMedia
Indica si es TRUE que el medio del dispositivo (si existe) es extraíble. Si el dispositivo no tiene ningún medio, se debe omitir este miembro. Cuando false , el medio del dispositivo no es extraíble.
CommandQueueing
Indica si es TRUE que el dispositivo admite varios comandos pendientes (cola etiquetada SCSI o equivalente). Si es FALSE, el dispositivo no admite la puesta en cola etiquetada por SCSI ni el equivalente. El controlador STORPORT es responsable de sincronizar los comandos.
VendorIdOffset
Especifica el desplazamiento de bytes desde el principio de la estructura a una cadena ASCII terminada en NULL que contiene el identificador de proveedor del dispositivo. Si el dispositivo no tiene ningún identificador de proveedor, este miembro es cero.
ProductIdOffset
Especifica el desplazamiento de bytes desde el principio de la estructura a una cadena ASCII terminada en NULL que contiene el identificador de producto del dispositivo. Si el dispositivo no tiene ningún identificador de producto, este miembro es cero.
ProductRevisionOffset
Especifica el desplazamiento de bytes desde el principio de la estructura a una cadena ASCII terminada en NULL que contiene la cadena de revisión del producto del dispositivo. Si el dispositivo no tiene ninguna cadena de revisión del producto, este miembro es cero.
SerialNumberOffset
Especifica el desplazamiento de bytes desde el principio de la estructura a una cadena ASCII terminada en NULL que contiene el número de serie del dispositivo. Si el dispositivo no tiene ningún número de serie, este miembro es cero.
BusType
Especifica un valor de enumerador de tipo STORAGE_BUS_TYPE que indica el tipo de bus al que está conectado el dispositivo. Este elemento debe usarse para interpretar las propiedades sin procesar del dispositivo al final de esta estructura (si hubiera alguna).
RawPropertiesLength
Indica el número de bytes de datos específicos del bus que se han anexado a este descriptor.
RawDeviceProperties[1]
Contiene una matriz de longitud que actúa como marcador de posición para el primer byte de los datos de propiedad específicos del bus.
Comentarios
Las aplicaciones y los controladores de clase de almacenamiento emiten una solicitud de control de dispositivo con el código de control de E/S IOCTL_STORAGE_QUERY_PROPERTY para recuperar esta estructura, que contiene información sobre un dispositivo de destino. La estructura solo se puede recuperar de un FDO; si se intenta recuperar las propiedades del dispositivo de un adaptador, se produce un error.
Una aplicación o controlador puede determinar el tamaño de búfer necesario mediante la conversión de la estructura de STORAGE_DEVICE_DESCRIPTOR recuperada a un STORAGE_DESCRIPTOR_HEADER, que contiene solo versión y tamaño.
Requisitos
Requisito | Valor |
---|---|
Header | ntddstor.h (incluya Ntddstor.h) |