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를 호출할 수 없습니다. 이렇게 하면 교착 상태가 발생합니다. 소멸자를 실행할 때 SwDeviceClose 를 호출하는 ref counted 개체를 해제하는 데 주의해야 합니다. Windows 8.1 이 제한이 해제되고 콜백 함수 내에서 SwDeviceClose를 호출할 수 있습니다.

SwDeviceClose를 호출하여 SwDevice의 수명이 SWDeviceLifetimeHandle인 경우 디바이스를 "플러깅 해제" 프로세스를 시작합니다. 이로 인해 디바이스가 더 이상 부모의 자식으로 보고되지 않아 PnP가 디바이스의 "깜짝 제거"를 실행합니다. 이 제거가 완료되기 전에 SwDeviceClose 호출이 반환됩니다. 그러나 SwDeviceClose 직후에 SwDeviceCreate안전하게 호출할 수 있습니다. 새 만들기는 이전 제거 처리가 완료될 때까지 큐에 대기한 다음 디바이스를 다시 만듭니다.

PnP 제거는 디바이스를 "존재하지 않음"으로 만들고 디바이스를 제거하지 않습니다. 디바이스의 PnP 제거는 USB 디바이스의 플러깅 해제와 동일하며 디바이스에 대한 모든 지속형 속성 상태가 유지됩니다. SwDeviceClose를 호출한 후 디바이스를 제거하려면 디바이스 제거를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 유니버설
헤더 swdevice.h
라이브러리 Swdevice.lib; Windows 10 OneCoreUAP.lib
DLL Cfgmgr32.dll

추가 정보

SwDeviceCreate