共用方式為


swDeviceClose 函式 (swdevice.h)

關閉軟體裝置句柄。 當句柄關閉時,如果 SwDevice 的存留期是 SWDeviceLifetimeHandle,PnP 會起始裝置「解除叢集」的程式。 裝置將不再回報為其父裝置的子系。

語法

void SwDeviceClose(
  [in] HSWDEVICE hSwDevice
);

參數

[in] hSwDevice

要關閉 的 HSWDEVICE 句柄。

傳回值

備註

在 SwDeviceClose 傳回之後,操作系統保證不會呼叫SW_DEVICE_CREATE_CALLBACK回呼函式,而且保證所有進行中的軟體裝置 API 函式呼叫都已完成。

即使尚未呼叫回呼函式,您隨時都可以呼叫 SwDeviceClose

在 Windows 8 中,您無法在SW_DEVICE_CREATE_CALLBACK回呼函式內呼叫 SwDeviceClose。 這樣做會導致死結。 請小心釋放 ref counted 物件,以在解構函式執行時呼叫 SwDeviceClose 。 在 Windows 8.1 中,此限制會隨即解除,您可以在回呼函式內呼叫 SwDeviceClose

藉由呼叫 SwDeviceClose,如果 SwDevice 的存留期是 SWDeviceLifetimeHandle,您就會起始裝置「解除叢集」的程式。 這會導致裝置不再回報為其父系的子系,導致 PnP 發出裝置的「意外移除」。 對 SwDeviceClose 的呼叫會在完成此移除之前傳回。 不過,您可以在 SwDeviceClose 之後安全地呼叫 SwDeviceCreate。 新的建立會排入佇列,直到先前的移除處理完成為止,然後重新建立裝置。

PnP 移除會讓裝置「不存在」,且不會卸載裝置。 拿掉裝置的 PnP 與取消叢集 USB 裝置相同,且裝置的所有持續性屬性狀態都會保留。 如果您想要在呼叫 SwDeviceClose 之後卸載裝置,請參閱 卸載裝置

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
目標平台 Universal
標頭 swdevice.h
程式庫 Swdevice.lib;Windows 10 上的 OneCoreUAP.lib
Dll Cfgmgr32.dll

另請參閱

SwDeviceCreate