estrutura STORAGE_DEVICE_DESCRIPTOR (ntddstor.h)
A estrutura STORAGE_DEVICE_DESCRIPTOR é usada em conjunto com a solicitação IOCTL_STORAGE_QUERY_PROPERTY para recuperar os dados do descritor do dispositivo de armazenamento para um dispositivo.
Sintaxe
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;
Membros
Version
Indica o tamanho da estrutura STORAGE_DEVICE_DESCRIPTOR . O valor desse membro será alterado à medida que os membros forem adicionados à estrutura .
Size
Especifica o tamanho total do descritor em bytes, incluindo cadeias de caracteres de ID que são acrescentadas à estrutura.
DeviceType
Especifica o tipo de dispositivo conforme definido pela especificação SCSI (Small Computer Systems Interface).
DeviceTypeModifier
Especifica o modificador de tipo de dispositivo, se houver, conforme definido pela especificação SCSI. Se nenhum modificador de tipo de dispositivo existir, esse membro será zero.
RemovableMedia
Indica quando TRUE que a mídia do dispositivo (se houver) é removível. Se o dispositivo não tiver mídia, esse membro deverá ser ignorado. Quando FALSE , a mídia do dispositivo não é removível.
CommandQueueing
Indica quando TRUE o dispositivo dá suporte a vários comandos pendentes (enfileiramento scsi marcado ou equivalente). Quando FALSE, o dispositivo não dá suporte ao enfileiramento marcado por SCSI ou ao equivalente. O driver STORPORT é responsável por sincronizar os comandos.
VendorIdOffset
Especifica o deslocamento de bytes do início da estrutura para uma cadeia de caracteres ASCII terminada em NULL que contém a ID do fornecedor do dispositivo. Se o dispositivo não tiver nenhuma ID de fornecedor, esse membro será zero.
ProductIdOffset
Especifica o deslocamento de bytes do início da estrutura para uma cadeia de caracteres ASCII terminada em NULL que contém a ID do produto do dispositivo. Se o dispositivo não tiver nenhuma ID de produto, esse membro será zero.
ProductRevisionOffset
Especifica o deslocamento de bytes do início da estrutura para uma cadeia de caracteres ASCII terminada em NULL que contém a cadeia de caracteres de revisão do produto do dispositivo. Se o dispositivo não tiver nenhuma cadeia de caracteres de revisão do produto, esse membro será zero.
SerialNumberOffset
Especifica o deslocamento de bytes do início da estrutura para uma cadeia de caracteres ASCII terminada em NULL que contém o número de série do dispositivo. Se o dispositivo não tiver nenhum número de série, esse membro será zero.
BusType
Especifica um valor de enumerador do tipo STORAGE_BUS_TYPE que indica o tipo de barramento ao qual o dispositivo está conectado. Isso deve ser usado para interpretar as propriedades do dispositivo bruto no final dessa estrutura (se houver).
RawPropertiesLength
Indica o número de bytes de dados específicos do barramento que foram acrescentados a esse descritor.
RawDeviceProperties[1]
Contém uma matriz de comprimento um que serve como um espaço reservado para o primeiro byte dos dados de propriedade específicos do barramento.
Comentários
Aplicativos e drivers de classe de armazenamento emitem uma solicitação de controle de dispositivo com o código de controle de E/ S IOCTL_STORAGE_QUERY_PROPERTY para recuperar essa estrutura, que contém informações sobre um dispositivo de destino. A estrutura só pode ser recuperada de um FDO; tentar recuperar propriedades do dispositivo de um adaptador causa um erro.
Um aplicativo ou driver pode determinar o tamanho do buffer necessário convertendo a estrutura de STORAGE_DEVICE_DESCRIPTOR recuperada em um STORAGE_DESCRIPTOR_HEADER, que contém apenas Versão e Tamanho.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddstor.h (inclua Ntddstor.h) |