次の方法で共有


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 に設定できます。 その後、ソフトウェア デバイスの有効期間は、最も近い非ソフトウェア デバイス親の有効期間に関連付けられます。 ソフトウェア デバイスの作成者は、ソフトウェア デバイスへのハンドルを閉じることができ、デバイスはまだ列挙されます。 これは、ソフトウェア デバイスを管理するがアイドル状態の停止が必要なサービスに役立ちます。

クライアント アプリは 、SwDeviceCreate の呼び出しに関連付けられている SW_DEVICE_CREATE_CALLBACK コールバック関数の呼び出しを受信した後にのみ 、SwDeviceSetLifetime を呼び出すことができます。

クライアント アプリが SwDeviceLifetimeParentPresent に対して以前にマークされていたソフトウェア デバイスに対して SwDeviceCreate を呼び出すと、SwDeviceCreate は、デバイスの開いているソフトウェア デバイス ハンドルがない場合に成功します (デバイスに対して開くことができるハンドルは 1 つだけです)。 その後、クライアント アプリは、プロパティとインターフェイスの更新や有効期間の変更を目的として、永続的なソフトウェア デバイスの制御を回復できます。

クライアント アプリが以前の列挙とは異なる形式 のSW_DEVICE_CREATE_INFO で情報を指定した場合、デバイスが列挙を停止し、すぐに再列挙して変更を適用する可能性があります。 オペレーティング システムでは、PnP がデバイスを列挙するときに、一部のプロパティのみが報告されます。

SwDeviceLifetimeParentPresent の有効期間を持つソフトウェア デバイスをアンインストールするには、デバイスをアンインストールする前に、有効期間を SwDeviceLifetimeHandle に戻することをお勧めします。

要件

要件
サポートされている最小のクライアント Windows 8.1
サポートされている最小のサーバー Windows Server 2012 R2
対象プラットフォーム ユニバーサル
Header swdevice.h
Library Swdevice.lib;Windows 10の OneCoreUAP.lib
[DLL] Cfgmgr32.dll