Partager via


SwDeviceSetLifetime, fonction (swdevice.h)

Gère la durée de vie d’un appareil logiciel.

Syntaxe

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

Paramètres

[in] hSwDevice

Handle HSWDEVICE vers l’appareil logiciel à gérer.

[in] Lifetime

Valeur de type SW_DEVICE_LIFETIME qui indique la nouvelle valeur de durée de vie de l’appareil logiciel. Voici les valeurs possibles :

Valeur Signification
SWDeviceLifetimeHandle
Indique que la durée de vie de l’appareil logiciel est déterminée par la durée de vie du handle associé à l’appareil logiciel. Tant que le handle est ouvert, l’appareil logiciel est énuméré par PnP.
SWDeviceLifetimeParentPresent
Indique que la durée de vie de l’appareil logiciel est liée à la durée de vie de son parent.

Valeur retournée

S_OK est retourné si SwDeviceSetLifetime a correctement mis à jour la durée de vie.

Remarques

Une fois qu’un périphérique logiciel est initialement créé en appelant SwDeviceCreate, sa durée de vie par défaut est définie sur SwDeviceLifetimeHandle. Lorsqu’un appareil logiciel a une durée de vie de SwDeviceLifetimeHandle, PnP cesse d’énumérer l’appareil une fois le handle de l’appareil fermé.

Vous pouvez utiliser SwDeviceSetLifetime pour définir la durée de vie du périphérique logiciel sur SwDeviceLifetimeParentPresent. La durée de vie de l’appareil logiciel est ensuite liée à la durée de vie du parent de l’appareil non logiciel le plus proche. Le créateur de l’appareil logiciel peut alors fermer le handle à l’appareil logiciel et l’appareil sera toujours énuméré. Cela peut être utile pour les services qui gèrent les périphériques logiciels, mais qui souhaitent arrêter l’inactivité.

Une application cliente peut uniquement appeler SwDeviceSetLifetime après avoir reçu un appel à sa fonction de rappel SW_DEVICE_CREATE_CALLBACK associée à son appel à SwDeviceCreate.

Lorsqu’une application cliente appelle SwDeviceCreate pour un périphérique logiciel qui a été précédemment marqué pour SwDeviceLifetimeParentPresent, SwDeviceCreate réussit s’il n’existe pas de handles d’appareil logiciel ouvert pour l’appareil (un seul handle peut être ouvert pour un appareil). Une application cliente peut ensuite reprendre le contrôle d’un périphérique logiciel persistant dans le but de mettre à jour les propriétés et les interfaces ou de modifier la durée de vie.

Si l’application cliente spécifie des informations dans SW_DEVICE_CREATE_INFO qui sont différentes d’une énumération précédente, l’appareil peut cesser d’être énuméré et immédiatement réinscrire pour appliquer les modifications. Le système d’exploitation signale uniquement certaines propriétés lorsque PnP énumère l’appareil.

Pour désinstaller un appareil logiciel avec une durée de vie de SwDeviceLifetimeParentPresent, nous vous recommandons de rétablir la durée de vie en SwDeviceLifetimeHandle avant la désinstallation de l’appareil.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1
Serveur minimal pris en charge Windows Server 2012 R2
Plateforme cible Universal
En-tête swdevice.h
Bibliothèque Swdevice.lib ; OneCoreUAP.lib sur Windows 10
DLL Cfgmgr32.dll