[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) 지원을 초기화합니다.
-
드라이버가 DMA 작업을 처리하는 경우DMA(직접 메모리 액세스) 트랜잭션을 사용하도록 설정합니다.
드라이버의 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 |