Поделиться через


Функция SwDeviceClose (swdevice.h)

Закрывает дескриптор программного устройства. При закрытии дескриптора, если время существования SwDevice — SWDeviceLifetimeHandle, PnP инициирует процесс "отключения" устройства. Устройство больше не будет называться дочерним по отношению к родительскому устройству.

Синтаксис

void SwDeviceClose(
  [in] HSWDEVICE hSwDevice
);

Параметры

[in] hSwDevice

Закрываемый дескриптор HSWDEVICE .

Возвращаемое значение

None

Remarks

После возврата SwDeviceClose операционная система гарантированно не будет вызывать функцию обратного вызова SW_DEVICE_CREATE_CALLBACK , а все вызовы функций API программного устройства, которые выполнялись, гарантированно будут завершены.

SwDeviceClose можно вызвать в любое время, даже если функция обратного вызова еще не была вызвана.

В Windows 8 нельзя вызвать SwDeviceClose внутри функции обратного вызова SW_DEVICE_CREATE_CALLBACK. Это приведет к взаимоблокировки. Будьте осторожны при освобождении объекта ref counted, который будет вызывать SwDeviceClose при выполнении деструктора. В Windows 8.1 это ограничение снимается, и вы можете вызвать SwDeviceClose внутри функции обратного вызова.

Вызывая SwDeviceClose, если время существования SwDevice равно SWDeviceLifetimeHandle, вы инициируете процесс отключения устройства. Это приводит к тому, что устройство больше не будет считаться дочерним по отношению к его родительскому элементу, что приводит к тому, что PnP выдает "неожиданное удаление" устройства. Вызов SwDeviceClose возвращается до завершения удаления. Однако можно безопасно вызвать SwDeviceCreate сразу после SwDeviceClose. Новое создание будет помещено в очередь до завершения предыдущей обработки удаления, а затем устройство будет создано повторно.

При удалении PnP устройство "Отсутствует" и устройство не удаляется. Удаление PnP устройства аналогично отключению USB-устройства, и все сохраняемые свойства устройства останутся. Если вы хотите удалить устройство после вызова SwDeviceClose, см. раздел Удаление устройства.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Универсальное
Верхняя часть swdevice.h
Библиотека Swdevice.lib; OneCoreUAP.lib в Windows 10
DLL Cfgmgr32.dll

См. также раздел

SwDeviceCreate