STOR_DEVICE_CAPABILITIES_EX 结构 (srb.h)

STOR_DEVICE_CAPABILITIES_EX结构向 SCSI 端口驱动程序报告设备功能,以响应 SCSI 请求块 (SRB) 的功能查询,其函数为 SRB_FUNCTION_PNP。 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

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

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 值而选择的 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 结构中设置。 若要支持使用此结构,微型端口必须在 HW_INITIALIZATION_DATA (SCSI) 中的 FeatureSupport 标志成员中设置 STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES 标志,然后才能调用 ScsiPortInitialize

要求

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

另请参阅

DEVICE_CAPABILITIES

HW_INITIALIZATION_DATA (SCSI)

SCSI_PNP_REQUEST_BLOCK

ScsiPortInitialize