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


структура 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. Поддерживаются только возможности, позволяющие изменять только программное обеспечение. Остальные получают соответствующие значения по умолчанию. Ниже приведены возможные значения:

Ценность Значение
SWDeviceCapabilitiesNone
0x00000000
Никакие возможности не указаны.
SWDeviceCapabilitiesRemovable
0x00000001
Этот бит указывает, что устройство является съемным из родительского элемента. Установка этого флага эквивалентна драйверу шины, задав съемный член структуры DEVICE_CAPABILTIES для PDO.
SWDeviceCapabilitiesSilentInstall
0x00000002
Этот бит подавляет пользовательский интерфейс, который обычно отображается во время установки. Установка этого флага эквивалентна драйверу шины, задав SilentInstall член структуры DEVICE_CAPABILTIES для PDO.
SWDeviceCapabilitiesNoDisplayInUI
0x00000004
Этот бит предотвращает отображение устройства в определенном пользовательском интерфейсе. Задание этого флага эквивалентно настройке драйвера шины NoDisplayInUI члена структуры DEVICE_CAPABILTIES для PDO.
SWDeviceCapabilitiesDriverRequired
0x00000008
Укажите этот бит, когда клиент хочет, чтобы драйвер загружался на устройство, и когда этот драйвер требуется для правильной функции функции клиента.

Если этот бит указан, необходимо заполнить по крайней мере один из 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)

См. также

SwDeviceCreate