Condividi tramite


Funzione SwDeviceSetLifetime (swdevice.h)

Gestisce la durata di un dispositivo software.

Sintassi

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

Parametri

[in] hSwDevice

Handle HSWDEVICE per il dispositivo software da gestire.

[in] Lifetime

Valore tipizzato SW_DEVICE_LIFETIME che indica il nuovo valore di durata per il dispositivo software. Ecco i valori possibili:

Valore Significato
SWDeviceLifetimeHandle
Indica che la durata del dispositivo software è determinata dalla durata dell'handle associato al dispositivo software. Finché l'handle è aperto, il dispositivo software viene enumerato da PnP.
SWDeviceLifetimeParentPresent
Indica che la durata del dispositivo software è associata alla durata del padre.

Valore restituito

S_OK viene restituito se SwDeviceSetLifetime ha aggiornato correttamente la durata.

Commenti

Dopo la creazione iniziale di un dispositivo software chiamando SwDeviceCreate, la durata predefinita è impostata su SwDeviceLifetimeHandle. Quando un dispositivo software ha una durata di SwDeviceLifetimeHandle, PnP interrompe l'enumerazione del dispositivo dopo la chiusura dell'handle del dispositivo.

È possibile usare SwDeviceSetLifetime per impostare la durata del dispositivo software su SwDeviceLifetimeParentPresent. La durata del dispositivo software viene quindi associata alla durata del dispositivo padre non software più vicino. Il creatore del dispositivo software può quindi chiudere l'handle al dispositivo software e il dispositivo verrà comunque enumerato. Ciò può essere utile per i servizi che gestiscono i dispositivi software, ma vogliono interrompere l'inattività.

Un'app client può chiamare SwDeviceSetLifetime solo dopo aver ricevuto una chiamata alla relativa funzione di callback SW_DEVICE_CREATE_CALLBACK associata alla chiamata a SwDeviceCreate.

Quando un'app client chiama SwDeviceCreate per un dispositivo software contrassegnato in precedenza per SwDeviceLifetimeParentPresent, SwDeviceCreate ha esito positivo se non sono presenti handle di dispositivo software aperti per il dispositivo (è possibile aprire un solo handle per un dispositivo). Un'app client può quindi riottenere il controllo su un dispositivo software permanente ai fini dell'aggiornamento di proprietà e interfacce o della modifica della durata.

Se l'app client specifica informazioni in SW_DEVICE_CREATE_INFO diverso da un'enumerazione precedente, il dispositivo potrebbe smettere di essere enumerato e immediatamente enumerato per applicare le modifiche. Il sistema operativo segnala solo alcune proprietà quando PnP enumera il dispositivo.

Per disinstallare un dispositivo software con una durata di SwDeviceLifetimeParentPresent, è consigliabile modificare la durata in SwDeviceLifetimeHandle prima della disinstallazione del dispositivo.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1
Server minimo supportato Windows Server 2012 R2
Piattaforma di destinazione Universale
Intestazione swdevice.h
Libreria Swdevice.lib; OneCoreUAP.lib in Windows 10
DLL Cfgmgr32.dll