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
指定描述符的总大小(以字节为单位),包括追加到 结构的 ID 字符串。
DeviceType
指定由小型计算机系统接口 (SCSI) 规范定义的设备类型。
DeviceTypeModifier
指定 SCSI 规范定义的设备类型修饰符(如果有)。 如果不存在设备类型修饰符,则此成员为零。
RemovableMedia
指示如果任何) 可移动,则设备的媒体 (为 TRUE 。 如果设备没有媒体,则应忽略此成员。 如果 为 FALSE ,则设备的媒体不可移动。
CommandQueueing
指示当设备支持多个未完成的命令 (SCSI 标记的队列或等效) 时为 TRUE 。 如果 为 FALSE,则设备不支持 SCSI 标记的队列或等效项。 STORPORT 驱动程序负责同步命令。
VendorIdOffset
指定从结构开头到包含设备供应商 ID 的 以 NULL 结尾的 ASCII 字符串的字节偏移量。 如果设备没有供应商 ID,则此成员为零。
ProductIdOffset
指定从结构开头到包含设备产品 ID 的 以 NULL 结尾的 ASCII 字符串的字节偏移量。 如果设备没有产品 ID,则此成员为零。
ProductRevisionOffset
指定从结构开头到包含设备产品修订字符串的 以 NULL 结尾的 ASCII 字符串的字节偏移量。 如果设备没有产品修订字符串,则此成员为零。
SerialNumberOffset
指定从结构开头到包含设备序列号的 以 NULL 结尾的 ASCII 字符串的字节偏移量。 如果设备没有序列号,则此成员为零。
BusType
指定 类型为 STORAGE_BUS_TYPE 的枚举器值,该值指示设备连接到的总线类型。 这应用于解释此结构末尾的原始设备属性(如存在)。
RawPropertiesLength
指示已追加到此描述符的特定于总线的数据的字节数。
RawDeviceProperties[1]
包含长度为 1 的数组,用作总线特定属性数据的第一个字节的占位符。
注解
应用程序和存储类驱动程序发出设备控制请求,其中 I/O 控制代码 IOCTL_STORAGE_QUERY_PROPERTY 检索此结构,其中包含有关目标设备的信息。 只能从 FDO 检索 结构;尝试从适配器检索设备属性会导致错误。
应用程序或驱动程序可以通过将检索到的 STORAGE_DEVICE_DESCRIPTOR 结构强制转换为仅包含 Version 和 Size 的STORAGE_DESCRIPTOR_HEADER来确定所需的缓冲区大小。
要求
要求 | 值 |
---|---|
Header | ntddstor.h (包括 Ntddstor.h) |