SwDeviceSetLifetime 函数 (swdevice.h)

管理软件设备的生存期。

语法

HRESULT SwDeviceSetLifetime(
  [in] HSWDEVICE          hSwDevice,
  [in] SW_DEVICE_LIFETIME Lifetime
);

参数

[in] hSwDevice

要管理的软件设备的 HSWDEVICE 句柄。

[in] Lifetime

一个SW_DEVICE_LIFETIME类型的值,指示软件设备的新生存期值。 下面是可能的值:

含义
SWDeviceLifetimeHandle
指示软件设备的生存期由与软件设备关联的句柄的生存期决定。 只要句柄处于打开状态,软件设备就由 PnP 枚举。
SWDeviceLifetimeParentPresent
指示软件设备的生存期与其父设备的生存期相关联。

返回值

如果 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