STOR_DEVICE_CAPABILITIES_EX结构(srb.h)

STOR_DEVICE_CAPABILITIES_EX 结构向 SCSI 端口驱动程序报告设备功能,以响应具有SRB_FUNCTION_PNP功能的 SCSI 请求块(SRB)中的功能查询。 STOR_DEVICE_CAPABILITIES 是包含与存储设备相关的成员的 DEVICE_CAPABILITIES 结构的子集。

语法

typedef struct _STOR_DEVICE_CAPABILITIES_EX {
  USHORT Version;
  USHORT Size;
  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  RawDeviceOK : 1;
  ULONG  SurpriseRemovalOK : 1;
  ULONG  NoDisplayInUI : 1;
  ULONG  DefaultWriteCacheEnabled : 1;
  ULONG  Reserved0 : 20;
  ULONG  Address;
  ULONG  UINumber;
  ULONG  Reserved1[2];
} STOR_DEVICE_CAPABILITIES_EX, *PSTOR_DEVICE_CAPABILITIES_EX;

成员

Version

指定结构的版本。 设置为 Storport STOR_DEVICE_CAPABILITIES_EX_VERSION_1。

Size

指定结构的大小。 设置为 Storport 的 sizeof(STOR_DEVICE_CAPABILITIES_EX)。

DeviceD1

指定设备硬件是否支持 D1 电源状态。 微型端口驱动程序将此位设置为 0。

DeviceD2

指定设备硬件是否支持 D2 电源状态。 微型端口驱动程序将此位设置为 0。

LockSupported

指定设备是否支持阻止设备弹出的物理设备锁定。 此成员与弹出 LUN 或单元设备有关。

EjectSupported

指定当系统处于 PowerSystemWorking 状态时,设备是否支持软件控制的设备弹出。 此成员与弹出 LUN 或单元设备有关。

Removable

指定是否可以从其直接父级动态删除设备。 如果 可移动 设置为 TRUE:

  • 设备不属于与其父对象相同的物理对象。
  • 除非 SurpriseRemovalOK 也设置为 TRUE,否则设备会显示在“拔出”或“弹出硬件”程序中。

DockDevice

指定设备是否为停靠外围设备。

UniqueID

指定设备的实例 ID 是否是唯一的系统范围。 如果实例 ID 仅在总线范围内唯一,则此位是明确的。

SilentInstall

指定 设备管理器 是否应禁止显示所有安装对话框;“找不到兼容的驱动程序”等对话框除外。

RawDeviceOK

指定基础总线的驱动程序是否可以在没有功能驱动程序(例如传递模式下的 SCSI 设备)的情况下驱动设备。 此作模式称为原始模式。

SurpriseRemovalOK

指定设备微型端口驱动程序是否可以处理删除设备的情况,然后 SCSI 端口才能使用 StorRemoveDevice 作为 SCSI_PNP_REQUEST_BLOCK 结构中的 PnPAction 发送SRB_FUNCTION_PNP。 如果 SurpriseRemovalOK 设置为 TRUE,则无论其驱动程序处于的状态如何,设备都可以安全地从其直接父级中删除。

NoDisplayInUI

不要在用户界面中显示设备。 如果设置了此位,则设备永远不会显示在用户界面中,即使设备存在但无法启动。 微型端口驱动程序未设置此位。

DefaultWriteCacheEnabled

默认情况下,在初始化时启用存储设备的写入缓存。

Reserved0

保留位。

Address

存储设备的 LUN 地址。

UINumber

指定与可在用户界面中显示的设备关联的数字。

此数字可能是选择的 ID 值,以便为用户更轻松地定位物理设备。 当 UINumber 未知时,微型端口驱动程序可以将此成员设置为其默认值0xFFFFFFFF。

Reserved1[2]

保留位。

言论

当微型端口驱动程序在其 HwStorStartIo 例程中收到 SRB 时,SRB 函数SRB_FUNCTION_PNP,SRB 将格式化为 SCSI_PNP_REQUEST_BLOCK 结构。 如果 SRB 的 PnPAction 成员 StorQueryCapabilities,则微型端口可以返回 SRB DataBuffer 成员中的 STOR_DEVICE_CAPABILITIES_EX 结构。

STOR_DEVICE_CAPABILITIES_EX 结构中设置设备的弹出、删除和安装特征。 若要支持使用此结构,微型端口必须在 FeatureSupport 标志成员中设置STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES标志,HW_INITIALIZATION_DATA (SCSI),然后才能调用 ScsiPortInitialize

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
标头 srb.h (包括 Storport.h、Minitape.h、Srb.h)

另请参阅

DEVICE_CAPABILITIES

HW_INITIALIZATION_DATA (SCSI)

SCSI_PNP_REQUEST_BLOCK

ScsiPortInitialize