структура SW_DEVICE_CREATE_INFO (swdevicedef.h)
Описывает сведения, которые использует PnP для создания программного устройства.
Синтаксис
typedef struct _SW_DEVICE_CREATE_INFO {
ULONG cbSize;
PCWSTR pszInstanceId;
PCZZWSTR pszzHardwareIds;
PCZZWSTR pszzCompatibleIds;
const GUID *pContainerId;
ULONG CapabilityFlags;
PCWSTR pszDeviceDescription;
PCWSTR pszDeviceLocation;
const SECURITY_DESCRIPTOR *pSecurityDescriptor;
} SW_DEVICE_CREATE_INFO, *PSW_DEVICE_CREATE_INFO;
Члены
cbSize
Размер в байтах этой структуры. Используйте его в качестве поля версии. Инициализируйте его в sizeof(SW_DEVICE_CREATE_INFO).
pszInstanceId
Строка, представляющая идентификатор экземпляра части идентификатора экземпляра устройства . Это значение используется для IRP_MN_QUERY_IDBusQueryInstanceID. Так как все программные устройства считаются устройствами UniqueId, эта строка должна быть уникальным именем для всех устройств на этом перечислителе программного обеспечения.
pszzHardwareIds
Список строк для аппаратных идентификаторов для программного устройства. Это значение используется для IRP_MN_QUERY_IDbusQueryHardwareIDs. Если клиент ожидает, что на устройстве установлен пакет драйвера, клиент должен указать идентификаторы оборудования.
pszzCompatibleIds
Список строк для совместимых идентификаторов для программного устройства. Это значение используется для IRP_MN_QUERY_IDBusQueryCompatibleIDs. Если клиент ожидает, что на устройстве установлен пакет драйвера класса, клиент указывает совместимые идентификаторы, соответствующие пакету драйвера класса. Если пакет драйвера не нужен, рекомендуется указать совместимый идентификатор для классификации типа программного устройства. Помимо совместимых идентификаторов, указанных в этом элементе, SWD\Generic
и, возможно, SWD\GenericRaw
всегда будут добавлены в качестве наименее конкретных совместимых идентификаторов.
pContainerId
Значение, используемое для управления базовым идентификатором контейнера для программного устройства. Это значение будет использоваться для IRP_MN_QUERY_IDBusQueryContainerIDs. Для типичных ситуаций рекомендуется задать для этого элемента значение NULL и использовать флаг SWDeviceCapabilitiesRemovable, чтобы контролировать, наследует ли устройство идентификатор контейнера родительского объекта или если PnP назначает новый идентификатор случайного контейнера. Дополнительные сведения о том, как это влияет на назначение идентификатора контейнера для устройства, см. в обзор возможностей съемных устройств. Если клиенту необходимо явно контролировать идентификатор контейнера, укажите GUID в переменной, на которую указывает этот член. Как правило, не следует указывать NULL_GUID для идентификатора контейнера. Дополнительные сведения об идентификаторах контейнеров и специальных значениях NULL_GUID см. в
CapabilityFlags
Сочетание SW_DEVICE_CAPABILITIES значений, объединенных с помощью побитовой операции OR. Полученное значение указывает возможности программного устройства. Возможности, которые можно указать при создании программного устройства, являются подмножеством возможностей, которые водитель шины может указать с помощью структуры DEVICE_CAPABILTIES. Поддерживаются только возможности, позволяющие изменять только программное обеспечение. Остальные получают соответствующие значения по умолчанию. Ниже приведены возможные значения:
Ценность | Значение |
---|---|
|
Никакие возможности не указаны. |
|
Этот бит указывает, что устройство является съемным из родительского элемента. Установка этого флага эквивалентна драйверу шины, задав съемный член структуры DEVICE_CAPABILTIES для PDO. |
|
Этот бит подавляет пользовательский интерфейс, который обычно отображается во время установки. Установка этого флага эквивалентна драйверу шины, задав SilentInstall член структуры DEVICE_CAPABILTIES для PDO. |
|
Этот бит предотвращает отображение устройства в определенном пользовательском интерфейсе. Задание этого флага эквивалентно настройке драйвера шины NoDisplayInUI члена структуры DEVICE_CAPABILTIES для PDO. |
|
Укажите этот бит, когда клиент хочет, чтобы драйвер загружался на устройство, и когда этот драйвер требуется для правильной функции функции клиента.
Если этот бит указан, необходимо заполнить по крайней мере один из pszzHardwareIds или pszzCompatibleIds. Если этот бит указан и если драйвер не удается найти, устройство отображает желтый удар в диспетчере устройств, чтобы указать, что устройство имеет проблему, и средства устранения неполадок помечают это как устройство с проблемой. Задание этого бита эквивалентно драйверу шины, не задав RawDeviceOK член структуры DEVICE_CAPABILTIES для PDO. Если этот бит указан, драйвер владеет созданием интерфейсов для устройства и не может вызывать SwDeviceInterfaceRegister для устройства. |
pszDeviceDescription
Строка, содержащая текст, отображаемый для имени устройства в пользовательском интерфейсе. Это значение используется для IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription.
При сопоставлении INF с устройством имя из INF переопределяет это имя, если только не предпринять шаги для сохранения этого имени.
Мы рекомендуем использовать эту строку как ссылку на локализуемый ресурс. Синтаксис ссылок на ресурсы см. в DEVPROP_TYPE_STRING_INDIRECT.
pszDeviceLocation
Строка, содержащая текст, отображаемый для расположения устройства в пользовательском интерфейсе. Это значение используется для IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformation.
pSecurityDescriptor
Указатель на структуру SECURITY_DESCRIPTOR, содержащую сведения о безопасности, связанные с программным устройством. Если этот элемент NULL, диспетчер ввода-вывода назначает дескриптор безопасности по умолчанию устройству. Если требуется пользовательский дескриптор безопасности, укажите дескриптор безопасности с самостоятельным учетом.
Замечания
Вы можете указать только эти сведения во время создания, и вы не можете позже вызвать API программного устройства для изменения этой информации, задав свойства, например.
Требования
Требование | Ценность |
---|---|
заголовка | swdevicedef.h (include Swdevice.h) |