EVT_WDF_DRIVER_DEVICE_ADD 콜백 함수(wdfdriver.h)
[KMDF 및 UMDF에 적용]
드라이버의 EvtDriverDeviceAdd 이벤트 콜백 함수는 플러그 앤 플레이(PnP) 관리자가 디바이스의 존재를 보고할 때 디바이스 초기화 작업을 수행합니다.
구문
EVT_WDF_DRIVER_DEVICE_ADD EvtWdfDriverDeviceAdd;
NTSTATUS EvtWdfDriverDeviceAdd(
[in] WDFDRIVER Driver,
[in, out] PWDFDEVICE_INIT DeviceInit
)
{...}
매개 변수
[in] Driver
드라이버를 나타내는 프레임워크 드라이버 개체에 대한 핸들입니다.
[in, out] DeviceInit
프레임워크 할당 WDFDEVICE_INIT 구조체에 대한 포인터입니다.
반환 값
EvtDriverDeviceAdd 콜백 함수는 작업이 성공하면 STATUS_SUCCESS 반환해야 합니다. 그렇지 않으면 이 콜백 함수는 Ntstatus.h에 정의된 오류 상태 값 중 하나를 반환해야 합니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
설명
PnP 디바이스를 지원하는 각 프레임워크 기반 드라이버는 EvtDriverDeviceAdd 콜백 함수를 제공해야 합니다. 드라이버는 WdfDriverCreate를 호출하기 전에 콜백 함수의 주소를 WDF_DRIVER_CONFIG 구조에 배치해야 합니다.
이 프레임워크는 버스 드라이버가 드라이버가 지원하는 하드웨어 ID와 일치하는 하드웨어 식별자(ID)가 있는 디바이스를 검색한 후 드라이버의 EvtDriverDeviceAdd 콜백 함수를 호출합니다. 운영 체제에서 디바이스 중 하나가 컴퓨터에 처음 연결되면 드라이버를 설치하는 데 사용하는 INF 파일을 제공하여 드라이버에서 지원하는 하드웨어 ID를 지정합니다. 시스템에서 INF 파일 및 하드웨어 ID를 사용하는 방법에 대한 자세한 내용은 설치 프로그램에서 드라이버를 선택하는 방법을 참조하세요.
드라이버의 EvtDriverDeviceAdd 콜백 함수는 일반적으로 다음 초기화 작업 중 적어도 일부를 수행합니다.
-
드라이버가 I/O 요청을 받을 수 있도록 I/O 큐를 만듭니다.
-
애플리케이션이 디바이스와 통신하는 데 사용하는 디바이스 인터페이스를 만듭니다.
-
다른 드라이버에서 사용할 수 있는 드라이버 정의 인터페이스를 만듭니다.
- WMI(Windows Management Instrumentation) 지원을 초기화합니다.
-
드라이버가 디바이스 인터럽트 처리를 처리하는 경우 인터럽트 개체를 만듭니다.
드라이버의 EvtDriverDeviceAdd 콜백 함수가 디바이스 개체를 만들지만 STATUS_SUCCESS 반환하지 않는 경우 프레임워크는 디바이스 개체와 해당 자식 디바이스를 삭제합니다.
함수 드라이버의 EvtDriverDeviceAdd 콜백 함수가 STATUS_SUCCESS 반환하지 않는 경우 I/O 관리자는 디바이스에 대한 디바이스 스택을 빌드하지 않습니다.
필터 드라이버의 EvtDriverDeviceAdd 콜백 함수가 STATUS_SUCCESS 반환하지 않으면 프레임워크는 반환 값을 STATUS_SUCCESS 변환하고 I/O 관리자는 필터 드라이버 없이 디바이스 스택을 빌드합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
최소 KMDF 버전 | 1.0 |
최소 UMDF 버전 | 2.0 |
머리글 | wdfdriver.h(Wdf.h 포함) |
IRQL | PASSIVE_LEVEL |