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가 디바이스를 열거했다고 해서 디바이스가 아직 시작되지 않았으며 디바이스에 대한 드라이버가 아직 인터페이스를 등록하거나 사용하도록 설정하지 않았습니다. 대부분의 경우 앱이 디바이스를 사용하려는 경우 디바이스 인터페이스 도착을 기다리는 것이 좋습니다.

참고 콜백 함수는 생성된 디바이스에 대한 디바이스 instance ID를 제공합니다. 소프트웨어 디바이스 API의 호출자는 디바이스 instance ID를 추측하거나 생성하지 말고 항상 콜백 함수에서 제공하는 값을 사용하는 것이 좋습니다.
 
콜백 함수는 임의의 스레드 풀 스레드에서 실행됩니다. 클라이언트 앱은 콜백 함수에서 필요한 만큼의 작업을 수행할 수 있습니다.

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

항상 CreateResult에 전달되는 HRESULT를 검사 PnP가 디바이스를 열거할 수 있는지 확인합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 데스크톱
머리글 swdevice.h

추가 정보

SwDeviceCreate