STOR_DEVICE_CAPABILITIES_EX结构 (storport.h)

STOR_DEVICE_CAPABILITIES_EX 结构向 Storport 驱动程序报告设备功能,以响应 SCSI 请求块 (SRB) 的功能查询,其函数为 SRB_FUNCTION_PNP。

语法

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,则设备不属于其父级的同一物理对象。

如果 可移动 设置为 TRUE,则设备将显示在拔出或弹出硬件程序中,除非 SurpriseRemovalOK 也设置为 TRUE

DockDevice

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

UniqueID

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

SilentInstall

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

RawDeviceOK

指定在没有函数驱动程序的情况下,基础总线的驱动程序是否可以驱动设备 (例如,处于直通模式的 SCSI 设备) 。 此操作模式称为原始模式。

SurpriseRemovalOK

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

NoDisplayInUI

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

DefaultWriteCacheEnabled

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

Reserved0

保留位。

Address

存储单元设备的 LUN 地址。

UINumber

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

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

Reserved1[2]

保留位。

注解

STOR_DEVICE_CAPABILITIES_EX 是包含与存储设备相关的成员 的DEVICE_CAPABILITIES 结构的子集。

当微型端口驱动程序在其 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 中的 FeatureSupport 标志成员中设置 STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES 标志,然后才能调用 StorPortInitialize

要求

要求
最低受支持的客户端 Windows 8
标头 storport.h (包括 Storport.h、Minitape.h、Srb.h)

另请参阅

DEVICE_CAPABILITIES

HW_INITIALIZATION_DATA

SCSI_PNP_REQUEST_BLOCK

StorPortInitialize