STOR_DEVICE_CAPABILITIES 结构 (storport.h)

STOR_DEVICE_CAPABILITIES 结构向 Storport 驱动程序报告设备功能,以响应 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

指定结构的版本。 设置为 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 发送SRB_FUNCTION_PNP作为 SCSI_PNP_REQUEST_BLOCK 结构中的 PnPAction。 如果将 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)

另请参阅

DEVICE_CAPABILITIES

SCSI_PNP_REQUEST_BLOCK

STOR_DEVICE_CAPABILITIES_EX