Freigeben über


SwDeviceSetLifetime-Funktion (swdevice.h)

Verwaltet die Lebensdauer eines Softwaregeräts.

Syntax

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

Parameter

[in] hSwDevice

Der HSWDEVICE-Handle für das zu verwaltende Softwaregerät.

[in] Lifetime

Ein SW_DEVICE_LIFETIME typisierter Wert, der den neuen Lebensdauerwert für das Softwaregerät angibt. Hier sind mögliche Werte:

Wert Bedeutung
SWDeviceLifetimeHandle
Gibt an, dass die Lebensdauer des Softwaregeräts durch die Lebensdauer des Handles bestimmt wird, das dem Softwaregerät zugeordnet ist. Solange der Handle geöffnet ist, wird das Softwaregerät von PnP aufgezählt.
SWDeviceLifetimeParentPresent
Gibt an, dass die Lebensdauer des Softwaregeräts an die Lebensdauer des übergeordneten Geräts gebunden ist.

Rückgabewert

S_OK wird zurückgegeben, wenn SwDeviceSetLifetime die Lebensdauer erfolgreich aktualisiert hat.

Hinweise

Nachdem ein Softwaregerät zunächst durch Aufrufen von SwDeviceCreate erstellt wurde, ist die Standardlebensdauer auf SwDeviceLifetimeHandle festgelegt. Wenn ein Softwaregerät eine Lebensdauer von SwDeviceLifetimeHandle hat, beendet PnP das Aufzählen des Geräts, nachdem der Griff des Geräts geschlossen wurde.

Sie können SwDeviceSetLifetime verwenden, um die Lebensdauer des Softwaregeräts auf SwDeviceLifetimeParentPresent festzulegen. Die Lebensdauer des Softwaregeräts ist dann an die Lebensdauer des nächstgelegenen übergeordneten Nicht-Softwaregeräts gebunden. Der Ersteller des Softwaregeräts kann dann den Ziehpunkt für das Softwaregerät schließen, und das Gerät wird weiterhin aufgelistet. Dies kann für Dienste nützlich sein, die Softwaregeräte verwalten, aber den Leerlauf beenden möchten.

Eine Client-App kann SwDeviceSetLifetime nur aufrufen, nachdem sie einen Aufruf der SW_DEVICE_CREATE_CALLBACK Rückruffunktion erhalten hat, die dem Aufruf von SwDeviceCreate zugeordnet ist.

Wenn eine Client-App SwDeviceCreate für ein Softwaregerät aufruft, das zuvor für SwDeviceLifetimeParentPresent markiert wurde, ist SwDeviceCreate erfolgreich, wenn keine geöffneten Softwaregerätehandles für das Gerät vorhanden sind (nur ein Handle kann für ein Gerät geöffnet sein). Eine Client-App kann dann die Kontrolle über ein persistentes Softwaregerät zurückerlangen, um Eigenschaften und Schnittstellen zu aktualisieren oder die Lebensdauer zu ändern.

Wenn die Client-App Informationen in SW_DEVICE_CREATE_INFO angibt, die sich von einer vorherigen Enumeration unterscheiden, wird das Gerät möglicherweise nicht mehr aufgelistet und sofort erneut aufgelistet, um die Änderungen anzuwenden. Das Betriebssystem meldet nur einige Eigenschaften, wenn PnP das Gerät aufzählt.

Um ein Softwaregerät mit einer Lebensdauer von SwDeviceLifetimeParentPresent zu deinstallieren, empfehlen wir, die Lebensdauer zurück in SwDeviceLifetimeHandle zu ändern, bevor das Gerät deinstalliert wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1
Unterstützte Mindestversion (Server) Windows Server 2012 R2
Zielplattform Universell
Header swdevice.h
Bibliothek Swdevice.lib; OneCoreUAP.lib auf Windows 10
DLL Cfgmgr32.dll