Freigeben über


SwDeviceClose-Funktion (swdevice.h)

Schließt das Handle des Softwaregeräts. Wenn das Handle geschlossen ist und die Lebensdauer des SwDevice SWDeviceLifetimeHandle lautet, initiiert PnP den Vorgang zum "Trennen" des Geräts. Das Gerät wird nicht mehr als untergeordnetes Element des übergeordneten Geräts gemeldet.

Syntax

void SwDeviceClose(
  [in] HSWDEVICE hSwDevice
);

Parameter

[in] hSwDevice

Das zu schließende HSWDEVICE-Handle .

Rückgabewert

Keine

Bemerkungen

Nach der Rückgabe von SwDeviceClose wird garantiert, dass das Betriebssystem die SW_DEVICE_CREATE_CALLBACK-Rückruffunktion nicht aufruft, und alle Aufrufe von Softwaregeräte-API-Funktionen, die ausgeführt wurden, sind garantiert abgeschlossen.

Sie können SwDeviceClose jederzeit aufrufen, auch wenn die Rückruffunktion noch nicht aufgerufen wurde.

In Windows 8 können Sie SwDeviceClose nicht innerhalb der rückruffunktion SW_DEVICE_CREATE_CALLBACK aufrufen. Dies führt zu einem Deadlock. Achten Sie darauf, ein Ref counted-Objekt freizugeben, das SwDeviceClose aufruft, wenn sein Destruktor ausgeführt wird. In Windows 8.1 wird diese Einschränkung aufgehoben, und Sie können SwDeviceClose innerhalb der Rückruffunktion aufrufen.

Wenn swDeviceClose aufgerufen wird und die Lebensdauer des SwDevice-Geräts SWDeviceLifetimeHandle ist, initiieren Sie den Vorgang zum "Trennen" des Geräts. Dies führt dazu, dass das Gerät nicht mehr als untergeordnetes Element des übergeordneten Geräts gemeldet wird, was dazu führt, dass PnP eine "überraschende Entfernung" des Geräts ausgibt. Der Aufruf von SwDeviceClose wird zurückgegeben, bevor diese Entfernung abgeschlossen ist. Sie können SwDeviceCreate jedoch sofort nach SwDeviceClose aufrufen. Die neue Erstellung wird in die Warteschlange gestellt, bis die vorherige Entfernungsverarbeitung abgeschlossen ist, und dann wird das Gerät neu erstellt.

Die PnP-Entfernung macht das Gerät "Nicht vorhanden" und deinstalliert das Gerät nicht. Die PnP-Entfernung eines Geräts entspricht dem Entfernen eines USB-Geräts, und der gesamte persistente Eigenschaftszustand für das Gerät bleibt erhalten. Wenn Sie das Gerät nach dem Aufrufen von SwDeviceClose deinstallieren möchten, lesen Sie Deinstallieren des Geräts.

Anforderungen

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

Weitere Informationen

SwDeviceErstellen