STOR_DEVICE_CAPABILITIES结构(srb.h)
STOR_DEVICE_CAPABILITIES 结构将设备功能报告给 SCSI 端口驱动程序,以响应 SCSI 请求块(SRB)中具有SRB_FUNCTION_PNP功能的功能查询。 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
指定结构的版本。 设置为按 SCSI 端口STOR_DEVICE_CAPABILITIES_EX_VERSION_1。
DeviceD1
指定设备硬件是否支持 D1 电源状态。 微型端口驱动程序将此位设置为 0。
DeviceD2
指定设备硬件是否支持 D2 电源状态。 微型端口驱动程序将此位设置为 0。
LockSupported
指定设备是否支持阻止设备弹出的物理设备锁定。 此成员与弹出 LUN 或单元设备有关。
EjectSupported
指定当系统处于 PowerSystemWorking 状态时,设备是否支持软件控制的设备弹出。 此成员与弹出 LUN 或单元设备有关。
Removable
指定是否可以从其直接父级动态删除设备。 如果 可移动 设置为 TRUE:
- 设备不属于与其父对象相同的物理对象。
- 除非 SurpriseRemovalOK 也设置为 TRUE,否则设备会显示在“拔出”或“弹出硬件”程序中。
DockDevice
指定设备是否为停靠外围设备。
UniqueID
指定设备的实例 ID 是否是唯一的系统范围。 如果实例 ID 仅在总线范围内唯一,则此位是明确的。
SilentInstall
指定 设备管理器 是否应禁止显示所有安装对话框;“找不到兼容的驱动程序”等对话框除外。
SurpriseRemovalOK
指定设备微型端口驱动程序是否可以处理删除设备的情况,然后 SCSI 端口才能使用 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 结构。
SCSI 端口将此结构发送到微型端口,所有成员初始化为 0。
从 Windows 8 开始,微型端口应使用 STOR_DEVICE_CAPABILITIES_EX 结构来指示对其他功能的支持。
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
标头 | srb.h (包括 Storport.h、Minitape.h、Srb.h) |