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