Condividi tramite


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

Vedi anche

SwDeviceCreate