STOR_DEVICE_CAPABILITIES结构(storport.h)
STOR_DEVICE_CAPABILITIES 结构向 Storport 驱动程序报告设备功能,以响应具有SRB_FUNCTION_PNP功能的 SCSI 请求块(SRB)中的功能查询。STOR_DEVICE_CAPABILITIES是包含与存储设备相关的成员的 DEVICE_CAPABILITIES 结构的子集。
语法
typedef struct _STOR_DEVICE_CAPABILITIES {
USHORT Version;
ULONG DeviceD1 : 1;
ULONG DeviceD2 : 1;
ULONG LockSupported : 1;
ULONG EjectSupported : 1;
ULONG Removable : 1;
ULONG DockDevice : 1;
ULONG UniqueID : 1;
ULONG SilentInstall : 1;
ULONG SurpriseRemovalOK : 1;
ULONG NoDisplayInUI : 1;
} STOR_DEVICE_CAPABILITIES, *PSTOR_DEVICE_CAPABILITIES;
成员
Version
指定结构的版本。 设置为 Storport STOR_DEVICE_CAPABILITIES_EX_VERSION_1。
DeviceD1
指定设备硬件是否支持 D1 电源状态。 微型端口驱动程序将此位设置为 0。
DeviceD2
指定设备硬件是否支持 D2 电源状态。 微型端口驱动程序将此位设置为 0。
LockSupported
指定设备是否支持阻止设备弹出的物理设备锁定。 此成员与弹出 LUN 或单元设备有关。
EjectSupported
指定当系统处于 PowerSystemWorking 状态时,设备是否支持软件控制的设备弹出。 此成员与弹出 LUN 或单元设备有关。
Removable
指定是否可以从其直接父级动态删除设备。 如果 可移动 设置为 TRUE,则设备不属于其父对象所在的物理对象。
如果 可移动 设置为 TRUE,则设备会显示在“拔出”或“弹出硬件”程序中,除非 SurpriseRemovalOK 也设置为 TRUE。
DockDevice
指定设备是否为停靠外围设备。
UniqueID
指定设备的实例 ID 是否是唯一的系统范围。 如果实例 ID 仅在总线范围内唯一,则此位是明确的。
SilentInstall
指定 设备管理器 是否应禁止显示所有安装对话框;“找不到兼容的驱动程序”等对话框除外。
SurpriseRemovalOK
指定设备微型端口驱动程序是否可以处理在 Storport 可以使用 StorRemoveDevice 作为 SCSI_PNP_REQUEST_BLOCK 结构中的 PnPAction 发送SRB_FUNCTION_PNP之前删除设备的微型端口驱动程序。 如果 SurpriseRemovalOK 设置为 TRUE,则无论其驱动程序处于的状态如何,设备都可以安全地从其直接父级中删除。
NoDisplayInUI
不要在用户界面中显示设备。 如果设置了此位,则设备永远不会显示在用户界面中,即使设备存在但无法启动。 微型端口驱动程序未设置此位。
言论
当微型端口驱动程序在其 HwStorStartIo 例程中收到 SRB 时,SRB 函数SRB_FUNCTION_PNP,SRB 将格式化为 SCSI_PNP_REQUEST_BLOCK 结构。 如果 SRB 的 PnPAction 成员 StorQueryCapabilities,则微型端口可以在 SRB DataBuffer 成员中返回 STOR_DEVICE_CAPABILITIES 结构。
Storport 将此结构发送到微型端口,所有成员初始化为 0。 返回时,仅使用此结构中的“可移动 ”字段。
从 Windows 8 开始,微型端口应使用 STOR_DEVICE_CAPABILITIES_EX 结构来指示对其他功能的支持。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
标头 | storport.h (包括 Storport.h、Minitape.h、Srb.h) |