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
一个字符串,表示
pszzHardwareIds
软件设备的 硬件 ID 字符串列表。 此值用于 IRP_MN_QUERY_IDBusQueryHardwareIDs。 如果客户端要求在设备上安装驱动程序包,客户端应指定硬件 ID。
pszzCompatibleIds
软件设备的 兼容 ID 的字符串列表。 此值用于 IRP_MN_QUERY_IDBusQueryCompatibleIDs。 如果客户端要求在设备上安装类驱动程序包,客户端会指定与类驱动程序包匹配的兼容 ID。 如果不需要驱动程序包,建议指定兼容的 ID 以对软件设备的类型进行分类。 除了此成员中指定的兼容 ID 之外,SWD\Generic
并且可能 SWD\GenericRaw
始终添加为最不具体的兼容 ID。
pContainerId
用于控制软件设备的基本容器 ID 的值。 此值将用于 IRP_MN_QUERY_IDBusQueryContainerIDs。 对于典型情况,我们建议将此成员设置为 NULL,并使用 SWDeviceCapabilitiesRemovable 标志来控制设备是继承父容器 ID 还是 PnP 分配新的随机容器 ID。 有关影响设备容器 ID 分配的详细信息,请参阅 可移动设备功能的概述。 如果客户端需要显式控制容器 ID,请在此成员指向的变量中指定 GUID。 通常,不应为容器 ID 指定NULL_GUID。 有关容器 ID 的详细信息以及NULL_GUID的特殊含义,请参阅 容器 ID 概述。
CapabilityFlags
使用按位 OR 运算组合的 SW_DEVICE_CAPABILITIES 值。 生成的值指定软件设备的功能。 创建软件设备时可以指定的功能是总线驱动程序可以使用 DEVICE_CAPABILTIES 结构指定的功能的子集。 仅支持仅支持仅允许更改软件的设备的功能。 其余部分接收适当的默认值。 下面是可能的值:
价值 | 意义 |
---|---|
|
尚未指定任何功能。 |
|
此位指定设备可从其父级移动。 设置此标志等效于设置 PDO DEVICE_CAPABILTIES 结构的 可移动 成员的总线驱动程序。 |
|
此位禁止在安装过程中通常显示的 UI。 设置此标志等效于设置 PDO DEVICE_CAPABILTIES 结构的 SilentInstall 成员的总线驱动程序。 |
|
此位可防止设备在某些 UI 中显示。 设置此标志等效于设置 PDO DEVICE_CAPABILTIES 结构的 NoDisplayInUI 成员的总线驱动程序。 |
|
当客户端希望将驱动程序加载到设备上,以及当需要此驱动程序才能正确运行客户端功能时,请指定此位。
指定此位后,必须填充至少一个 pszzHardwareIds 或 pszzCompatibleIds。 如果指定了此位并且找不到驱动程序,则设备在 Device Manager 中显示黄色爆炸,以指示设备有问题,疑难解答会将此问题标记为设备。 设置此位等效于总线驱动程序,而不是为 PDO 设置 DEVICE_CAPABILTIES 结构的 RawDeviceOK 成员。 指定此位后,驱动程序拥有为设备创建接口,并且无法为设备调用 SwDeviceInterfaceRegister。 |
pszDeviceDescription
一个字符串,其中包含 UI 中为设备名称显示的文本。 此值用于 IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescription。
当 INF 与设备匹配时,INF 中的名称将替代此名称,除非执行保留此名称的步骤。
建议将此字符串作为对可本地化资源的引用。 有关引用资源的语法,请参阅 DEVPROP_TYPE_STRING_INDIRECT。
pszDeviceLocation
一个字符串,其中包含 UI 中为设备位置显示的文本。 此值用于 IRP_MN_QUERY_DEVICE_TEXTDeviceTextLocationInformation。
pSecurityDescriptor
指向包含与软件设备关联的安全信息的 SECURITY_DESCRIPTOR 结构的指针。 如果此成员 NULL,I/O 管理器 将默认安全描述符分配给设备。 如果需要自定义安全描述符,请指定一个相对安全描述符。
言论
只能在创建时指定此信息,并且以后无法通过设置属性来调用软件设备 API 来修改此信息。
要求
要求 | 价值 |
---|---|
标头 | swdevicedef.h (包括 Swdevice.h) |