структура 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

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

CommandQueueing

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

VendorIdOffset

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

ProductIdOffset

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

ProductRevisionOffset

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

SerialNumberOffset

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

BusType

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

RawPropertiesLength

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

RawDeviceProperties[1]

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

Remarks

Приложения и драйверы класса хранения выдают запрос на управление устройствами с помощью кода элемента управления ввода-вывода 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