структура 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
Указывает версию структуры. Задайте значение STOR_DEVICE_CAPABILITIES_EX_VERSION_1 от Storport.
DeviceD1
Указывает, поддерживает ли оборудование устройства состояние питания D1. Драйверы минипорта устанавливают для этого бита значение 0.
DeviceD2
Указывает, поддерживает ли оборудование устройства состояние питания D2. Драйверы минипорта устанавливают для этого бита значение 0.
LockSupported
Указывает, поддерживает ли устройство блокировку физического устройства, которая предотвращает извлечение устройства. Этот элемент относится к извлечению LUN или устройства единицы.
EjectSupported
Указывает, поддерживает ли устройство извлечение устройства с программным управлением, когда система находится в состоянии PowerSystemWorking . Этот элемент относится к извлечению устройства LUN или устройства единицы.
Removable
Указывает, можно ли динамически удалить устройство из его непосредственного родительского элемента. Если для свойства Removable задано значение TRUE, устройство не принадлежит к тому же физическому объекту, что и его родительский объект.
Если для свойства Removable задано значение TRUE, устройство отображается в программе Отключить или Извлечь оборудование, если для SurpriseRemovalOK также не задано значение TRUE.
DockDevice
Указывает, является ли устройство периферийным устройством для закрепления.
UniqueID
Указывает, является ли идентификатор экземпляра устройства уникальным для всей системы. Этот бит ясно, если идентификатор экземпляра уникален только в пределах область шины.
SilentInstall
Указывает, должны ли диспетчер устройств подавлять все диалоговые окна установки, за исключением обязательных диалоговых окон, таких как "совместимые драйверы не найдены".
SurpriseRemovalOK
Указывает, может ли драйвер минипорта для устройства обрабатывать ситуацию, когда устройство удаляется до того, как Storport сможет отправить SRB_FUNCTION_PNP с StorRemoveDevice в качестве PnPAction в структуре SCSI_PNP_REQUEST_BLOCK . Если для свойства SurpriseRemovalOK задано значение TRUE, устройство можно безопасно удалить из его непосредственного родительского элемента независимо от состояния, в которое находится его драйвер.
NoDisplayInUI
Не отображать устройство в пользовательском интерфейсе. Если этот бит задан, устройство никогда не отображается в пользовательском интерфейсе, даже если устройство присутствует, но не запускается. Драйверы минипорта не задают этот бит.
Комментарии
Когда драйвер мини-порта получает SRB в своей подпрограмме HwStorStartIo , где функция SRB SRB_FUNCTION_PNP, SRB форматируется как структура SCSI_PNP_REQUEST_BLOCK . Если элементом PnPAction SRB является StorQueryCapabilities, мини-порт может возвращать структуру STOR_DEVICE_CAPABILITIES в элементе DataBuffer SRB.
Storport отправляет эту структуру в мини-порт со всеми элементами, инициализированными 0. При возврате из этой структуры используется только поле Съемный .
Начиная с Windows 8, минипорты должны использовать структуру STOR_DEVICE_CAPABILITIES_EX, чтобы указать поддержку дополнительных возможностей.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows Vista. |
Верхняя часть | storport.h (включая Storport.h, Minitape.h, Srb.h) |