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