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


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

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

SerialNumberOffset

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

BusType

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

RawPropertiesLength

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

RawDeviceProperties[1]

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

Комментарии

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

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

Требования

Требование Значение
Заголовок ntddstor.h (включая Ntddstor.h)

См. также раздел

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR