Поделиться через


структура STOR_DEVICE_CAPABILITIES_EX (minitape.h)

Структура STOR_DEVICE_CAPABILITIES_EX сообщает о возможностях устройства драйверу Storport в ответ на запрос возможностей в блоке запросов 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

Задает размер структуры. Storport задает для этого поля значение sizeof(STOR_DEVICE_CAPABILITIES_EX).

DeviceD1

Указывает, поддерживает ли оборудование устройства состояние питания D1. Драйверы минипорта устанавливают для этого бита значение 0.

DeviceD2

Указывает, поддерживает ли оборудование устройства состояние питания D2. Драйверы минипорта устанавливают для этого бита значение 0.

LockSupported

Указывает, поддерживает ли устройство блокировку физического устройства, которая предотвращает извлечение устройства. Этот элемент относится к извлечению LUN или устройства единицы.

EjectSupported

Указывает, поддерживает ли устройство извлечение устройства с программным управлением, когда система находится в состоянии PowerSystemWorking . Этот элемент относится к извлечению устройства LUN или устройства единицы.

Removable

Указывает, можно ли динамически удалить устройство из его непосредственного родительского элемента. Если для свойства Removable задано значение TRUE, устройство не принадлежит к тому же физическому объекту, что и его родительский объект.

Если для свойства Removable задано значение TRUE, устройство отображается в программе Отключить или Извлечь оборудование, если для SurpriseRemovalOK также не задано значение TRUE.

DockDevice

Указывает, является ли устройство периферийным устройством для закрепления.

UniqueID

Указывает, является ли идентификатор экземпляра устройства уникальным для всей системы. Этот бит ясно, если идентификатор экземпляра уникален только в пределах область шины.

SilentInstall

Указывает, должны ли диспетчер устройств подавлять все диалоговые окна установки, за исключением обязательных диалоговых окон, таких как "совместимые драйверы не найдены".

RawDeviceOK

Указывает, может ли драйвер базовой шины управлять устройством, если отсутствует драйвер-функция (например, устройства SCSI в режиме сквозной передачи). Этот режим работы называется необработанным режимом.

SurpriseRemovalOK

Указывает, может ли драйвер минипорта для устройства обрабатывать ситуацию, когда устройство удаляется до того, как Storport сможет отправить SRB_FUNCTION_PNP с StorRemoveDevice в качестве PnPAction в структуре SCSI_PNP_REQUEST_BLOCK . Если для свойства SurpriseRemovalOK задано значение TRUE, устройство можно безопасно удалить из его непосредственного родительского элемента независимо от состояния, в которое находится его драйвер.

NoDisplayInUI

Не отображать устройство в пользовательском интерфейсе. Если этот бит задан, устройство никогда не отображается в пользовательском интерфейсе, даже если устройство присутствует, но не запускается. Драйверы минипорта не задают этот бит.

DefaultWriteCacheEnabled

Кэш записи устройства хранения включен по умолчанию при инициализации.

Reserved0

Зарезервированные биты.

Address

LUN-адрес устройства запоминающего устройства.

UINumber

Указывает номер, связанный с устройством, который может отображаться в пользовательском интерфейсе.

Это число может быть значением идентификатора, выбранным для упрощения поиска физического устройства для пользователя. Если параметр UINumber неизвестен, драйвер мини-порта может задать для этого элемента значение по умолчанию 0xFFFFFFFF.

Reserved1[2]

Зарезервированные биты.

Комментарии

Когда драйвер мини-порта получает SRB в своей подпрограмме HwStorStartIo , где функция SRB SRB_FUNCTION_PNP, SRB форматируется как структура SCSI_PNP_REQUEST_BLOCK . Если элементом PnPAction SRB является StorQueryCapabilities, минипорт может возвращать структуру STOR_DEVICE_CAPABILITIES_EX в элементе DataBuffer SRB.

Характеристики извлечения, удаления и установки устройства задаются в структуре STOR_DEVICE_CAPABILITIES_EX . Чтобы обеспечить поддержку использования этой структуры, перед вызовом StorPortInitialize мини-порт должен установить флаг STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES в элементе Флаги featureSupports в HW_INITIALIZATION_DATA.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Верхняя часть minitape.h (включая Storport.h, Minitape.h, Srb.h)

См. также раздел

DEVICE_CAPABILITIES

HW_INITIALIZATION_DATA SCSI_PNP_REQUEST_BLOCK

StorPortInitialize