SW_DEVICE_CREATE_CALLBACK 콜백 함수(swdevice.h)
레지스트리에서 백업이 있는 디바이스를 제공하고 호출자가 hSwDevice 핸들을 사용하여 소프트웨어 디바이스 API 함수를 호출할 수 있도록 합니다.
구문
SW_DEVICE_CREATE_CALLBACK SwDeviceCreateCallback;
void SwDeviceCreateCallback(
[in] HSWDEVICE hSwDevice,
[in] HRESULT CreateResult,
[in, optional] PVOID pContext,
[in, optional] PCWSTR pszDeviceInstanceId
)
{...}
매개 변수
[in] hSwDevice
소프트웨어 디바이스에 대한 핸들입니다.
[in] CreateResult
소프트웨어 디바이스의 열거가 성공했는지를 나타내는 HRESULT입니다.
[in, optional] pContext
선택적으로 클라이언트 앱에서 SwDeviceCreate에 제공한 컨텍스트입니다.
[in, optional] pszDeviceInstanceId
디바이스 instance PnP가 디바이스에 할당한 ID입니다.
반환 값
없음
설명
운영 체제는 PnP가 디바이스를 열거한 후 SW_DEVICE_CREATE_CALLBACK 콜백 함수를 호출합니다. 콜백 함수가 호출되면 디바이스가 레지스트리에서 백업되고 hSwDevice 핸들을 사용하여 소프트웨어 디바이스 API 함수에 대한 호출을 수행할 수 있습니다. 생성된 디바이스에 대해 디바이스와 함께 작동하는 다른 API를 사용할 수도 있습니다.
디바이스의 PnP 열거형은 디바이스가 진행하는 첫 번째 단계입니다. 디바이스의 PnP 열거 후 디바이스에는 레지스트리 지원만 있으며 디바이스에 대해 속성을 설정할 수 있습니다. PnP가 디바이스를 열거했다고 해서 디바이스가 아직 시작되지 않았으며 디바이스에 대한 드라이버가 아직 인터페이스를 등록하거나 사용하도록 설정하지 않았습니다. 대부분의 경우 앱이 디바이스를 사용하려는 경우 디바이스 인터페이스 도착을 기다리는 것이 좋습니다.
Windows 8 콜백 함수 내에서 SwDeviceClose를 호출할 수 없습니다. 이렇게 하면 교착 상태가 발생합니다. 소멸자를 실행할 때 SwDeviceClose 를 호출하는 ref counted 개체를 해제하는 데 주의해야 합니다. Windows 8.1 이 제한이 해제되고 콜백 함수 내에서 SwDeviceClose를 호출할 수 있습니다.
항상 CreateResult에 전달되는 HRESULT를 검사 PnP가 디바이스를 열거할 수 있는지 확인합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 |
지원되는 최소 서버 | Windows Server 2012 |
대상 플랫폼 | 데스크톱 |
머리글 | swdevice.h |