다음을 통해 공유


IDriverEntry::OnDeviceAdd 메서드(wudfddi.h)

[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한됩니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF를 사용하여 시작 참조하세요.]

OnDeviceAdd 메서드는 시스템에 새 디바이스를 추가합니다.

구문

HRESULT OnDeviceAdd(
  [in] IWDFDriver           *pWdfDriver,
  [in] IWDFDeviceInitialize *pWdfDeviceInit
);

매개 변수

[in] pWdfDriver

새 디바이스가 속한 부모 드라이버 개체의 IWDFDriver 인터페이스에 대한 포인터입니다.

[in] pWdfDeviceInit

드라이버가 새로 만든 디바이스를 초기화하는 데 사용하는 IWDFDeviceInitialize 인터페이스에 대한 포인터입니다.

반환 값

OnDeviceAdd 는 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 이 메서드는 Winerror.h에 정의된 오류 코드 중 하나를 반환합니다. 드라이버는 프레임워크 디바이스 개체를 만들기 위해 IWDFDriver::CreateDevice 메서드를 성공적으로 호출한 경우에만 S_OK 반환해야 합니다. 드라이버가 오류 코드를 반환하는 경우 UMDF는 드라이버가 필터 드라이버인지 함수 드라이버인지에 관계없이 전체 디바이스 스택을 중단합니다.

설명

드라이버 호스트 프로세스에 로드되는 각 디바이스에 대해 새 디바이스 개체가 만들어집니다. 새 디바이스가 시스템에 도착하면 프레임워크는 OnDeviceAdd 를 호출하여 드라이버에 도착 사실을 알리고 호출에서 IWDFDriverIWDFDeviceInitialize 인터페이스를 전달합니다. 드라이버는 IWDFDeviceInitialize::RetrieveDevicePropertyStore 메서드를 호출하여 디바이스 설치의 일부로 제공되는 디바이스 정보를 쿼리할 수 있습니다. 드라이버는 IWDFDriver::CreateDevice 메서드를 호출하여 디바이스를 구성하고 만들어야 합니다. 드라이버가 S_OK 반환하기 전에 IWDFDriver::CreateDevice 를 성공적으로 호출하지 않으면 UMDF는 드라이버의 동작이 올바르지 않다고 판단하고 호스트 프로세스를 종료합니다.

OnDeviceAdd 메서드가 S_OK 반환하는 모든 드라이버는 이후에 UMDF가 디바이스 스택을 중단하면 IPnpCallbackHardware::OnReleaseHardware 메서드에 대한 호출을 받게 됩니다.

드라이버가 IWDFDriver::CreateDevice 를 호출한 후 pWdfDeviceInit 매개 변수가 가리키는 IWDFDeviceInitialize 인터페이스를 사용하지 마세요.

자세한 내용은 디바이스 추가를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 wudfddi.h(Wudfddi.h 포함)

추가 정보

IDriverEntry

IPnpCallbackHardware::OnReleaseHardware

IWDFDeviceInitialize

IWDFDeviceInitialize::RetrieveDevicePropertyStore

IWDFDriver

IWDFDriver::CreateDevice