Funzione SwDeviceClose (swdevice.h)
Chiude l'handle del dispositivo software. Quando l'handle viene chiuso, se la durata del dispositivo SwDevice è SWDeviceLifetimeHandle, PnP avvierà il processo di "scollegamento" del dispositivo. Il dispositivo non verrà più segnalato come figlio del dispositivo padre.
Sintassi
void SwDeviceClose(
[in] HSWDEVICE hSwDevice
);
Parametri
[in] hSwDevice
Handle HSWDEVICE da chiudere.
Valore restituito
nessuno
Osservazioni
Dopo aver restituito SwDeviceClose , il sistema operativo non chiama la funzione di callback SW_DEVICE_CREATE_CALLBACK e tutte le chiamate alle funzioni API del dispositivo software che erano in corso sono garantite di aver completato.
È possibile chiamare SwDeviceClose in qualsiasi momento anche se la funzione di callback non è ancora stata chiamata.
In Windows 8 non è possibile chiamare SwDeviceClose all'interno della funzione di callback SW_DEVICE_CREATE_CALLBACK. In questo modo si verificherà un deadlock. Prestare attenzione al rilascio di un oggetto con conteggio di riferimento che chiamerà SwDeviceClose quando viene eseguito il distruttore. In Windows 8.1 questa restrizione viene revocata e è possibile chiamare SwDeviceClose all'interno della funzione di callback.
Chiamando SwDeviceClose, se la durata del dispositivo SwDevice è SWDeviceLifetimeHandle, si avvia il processo di "scollegamento" del dispositivo. In questo modo il dispositivo non viene più segnalato come figlio del relativo padre, che causa la rimozione a sorpresa del dispositivo da parte di PnP. La chiamata a SwDeviceClose viene restituita prima del completamento della rimozione. Tuttavia, è possibile chiamare in modo sicuro SwDeviceCreate immediatamente dopo SwDeviceClose. La nuova creazione verrà accodata fino al completamento dell'elaborazione di rimozione precedente e quindi il dispositivo verrà ricreato.
La rimozione di PnP rende il dispositivo "Non presente" e non disinstalla il dispositivo. La rimozione di PnP di un dispositivo è uguale alla disconnessione di un dispositivo USB e lo stato della proprietà persistente per il dispositivo rimarrà. Se si vuole disinstallare il dispositivo dopo aver chiamato SwDeviceClose, vedere Disinstallare il dispositivo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Server minimo supportato | Windows Server 2012 |
Piattaforma di destinazione | Universale |
Intestazione | swdevice.h |
Libreria | Swdevice.lib; OneCoreUAP.lib in Windows 10 |
DLL | Cfgmgr32.dll |