SwDeviceSetLifetime 函数 (swdevice.h)
管理软件设备的生存期。
语法
HRESULT SwDeviceSetLifetime(
[in] HSWDEVICE hSwDevice,
[in] SW_DEVICE_LIFETIME Lifetime
);
参数
[in] hSwDevice
要管理的软件设备的 HSWDEVICE 句柄。
[in] Lifetime
一个SW_DEVICE_LIFETIME类型的值,指示软件设备的新生存期值。 下面是可能的值:
值 | 含义 |
---|---|
|
指示软件设备的生存期由与软件设备关联的句柄的生存期决定。 只要句柄处于打开状态,软件设备就由 PnP 枚举。 |
|
指示软件设备的生存期与其父设备的生存期相关联。 |
返回值
如果 SwDeviceSetLifetime 成功更新了生存期,则返回S_OK。
注解
最初通过调用 SwDeviceCreate 创建软件设备后,其默认生存期设置为 SwDeviceLifetimeHandle。 当软件设备的生存期为 SwDeviceLifetimeHandle 时,PnP 在关闭设备句柄后停止枚举设备。
可以使用 SwDeviceSetLifetime 将软件设备的生存期设置为 SwDeviceLifetimeParentPresent。 然后,软件设备的生存期与最接近的非软件设备父级的生存期相关联。 然后,软件设备的创建者可以关闭软件设备的句柄,并且仍会枚举该设备。 这对于管理软件设备但想要空闲停止的服务非常有用。
客户端应用只能在收到对其SW_DEVICE_CREATE_CALLBACK回调函数的调用后调用 SwDeviceSetLifetime,该回调函数与其对 SwDeviceCreate 的调用相关联。
当客户端应用为以前标记为 SwDeviceLifetimeParentPresent 的软件设备调用 SwDeviceCreate 时,如果设备没有打开的软件设备句柄,则 SwDeviceCreate 成功, (只能为设备) 打开一个句柄。 然后,客户端应用可以重新控制持久性软件设备,以更新属性和接口或更改生存期。
如果客户端应用在 SW_DEVICE_CREATE_INFO 中指定的信息与之前枚举的形式不同,则设备可能会停止枚举并立即重新枚举以应用更改。 当 PnP 枚举设备时,操作系统仅报告某些属性。
若要卸载生存期为 SwDeviceLifetimeParentPresent 的软件设备,建议在卸载设备之前将生存期更改回 SwDeviceLifetimeHandle 。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 |
最低受支持的服务器 | Windows Server 2012 R2 |
目标平台 | 通用 |
标头 | swdevice.h |
Library | Swdevice.lib;Windows 10 上的 OneCoreUAP.lib |
DLL | Cfgmgr32.dll |