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


структура STORAGE_DEVICE_DESCRIPTOR (ntddstor.h)

Структура STORAGE_DEVICE_DESCRIPTOR используется вместе с запросом IOCTL_STORAGE_QUERY_PROPERTY для получения данных дескриптора устройства хранилища для устройства.

Синтаксис

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;

Члены

Version

Указывает размер структуры STORAGE_DEVICE_DESCRIPTOR. Значение этого элемента изменится по мере добавления элементов в структуру.

Size

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

DeviceType

Указывает тип устройства, определенный спецификацией SCSI.

DeviceTypeModifier

Указывает модификатор типа устройства, если он есть, как определено спецификацией SCSI. Если модификатор типа устройства не существует, этот элемент равен нулю.

RemovableMedia

Указывает, когда TRUE, что носитель устройства (при наличии) является съемным. Если устройство не имеет носителя, этот элемент следует игнорировать. Если FALSE носитель устройства не является съемным.

CommandQueueing

Указывает, когда TRUE, что устройство поддерживает несколько невыполненных команд (SCSI, помеченные в очереди или эквивалентные). Если FALSE, устройство не поддерживает очередь с тегами SCSI или эквивалентно. Драйвер STORPORT отвечает за синхронизацию команд.

VendorIdOffset

Указывает смещение байтов от начала структуры к строке ASCII, которая содержит идентификатор поставщика устройства, NULL. Если у устройства нет идентификатора поставщика, этот элемент равен нулю.

ProductIdOffset

Указывает смещение байтов от начала структуры к строке ASCII, которая содержит идентификатор продукта устройства, NULL. Если у устройства нет идентификатора продукта, этот элемент равен нулю.

ProductRevisionOffset

Указывает смещение байтов от начала структуры до строки NULL-terminated ASCII, которая содержит строку редакции продукта устройства. Если у устройства нет строки редакции продукта, этот элемент равен нулю.

SerialNumberOffset

Указывает смещение байтов от начала структуры к строке ASCII с NULL-завершенной строкой ASCII, содержащей серийный номер устройства. Если у устройства нет серийного номера, этот элемент равен нулю.

BusType

Указывает значение перечислителя типа STORAGE_BUS_TYPE, указывающее тип шины, к которой подключено устройство. Это следует использовать для интерпретации необработанных свойств устройства в конце этой структуры (если таковые есть).

RawPropertiesLength

Указывает количество байтов данных, которые были добавлены к этому дескриптору.

RawDeviceProperties[1]

Содержит массив длины, который служит владельцем места для первого байта данных конкретного свойства шины.

Замечания

Приложения и драйверы классов хранилища выдают запрос на управление устройствами с кодом управления ввода-вывода IOCTL_STORAGE_QUERY_PROPERTY для получения этой структуры, содержащей сведения о целевом устройстве. Структура может быть получена только из FDO; При попытке получить свойства устройства из адаптера возникает ошибка.

Приложение или драйвер может определить требуемый размер буфера путем приведения полученной структуры STORAGE_DEVICE_DESCRIPTOR к STORAGE_DESCRIPTOR_HEADER, которая содержит только версии и размер.

Требования

Требование Ценность
заголовка ntddstor.h (include Ntddstor.h)

См. также

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR