다음을 통해 공유


하드웨어 알림 클라이언트 드라이버 만들기

이 섹션에서는 Microsoft에서 제공하는 KMDF 클래스 확장을 활용하는 하드웨어 알림 클라이언트 드라이버의 개발에 대한 일반적인 지침을 제공합니다.

  1. Mshwnclxstub.lib에 연결하고 hwn.h 및 hwnclx.h 헤더를 포함하는 클라이언트 드라이버 구현용 파일을 만듭니다.

  2. 필요한 KMDF 및 하드웨어 알림 클래스 확장 콜백 함수의 인스턴스를 정의합니다. 특히 다음 예제 코드와 같이 이러한 콜백 함수를 구현하고 등록해야 합니다.

    DRIVER_INITIALIZE DriverEntry;
    EVT_WDF_DRIVER_DEVICE_ADD HwnClientEvtDeviceAdd;
    HWN_CLIENT_INITIALIZE_DEVICE HwnClientInitializeDevice;
    HWN_CLIENT_UNINITIALIZE_DEVICE HwnClientUnInitializeDevice;
    HWN_CLIENT_QUERY_DEVICE_INFORMATION HwnClientQueryDeviceInformation;
    HWN_CLIENT_START_DEVICE HwnClientStartDevice;
    HWN_CLIENT_STOP_DEVICE HwnClientStopDevice;
    HWN_CLIENT_SET_STATE HwnClientSetState;
    HWN_CLIENT_GET_STATE HwnClientGetState;
    
  3. 클라이언트 드라이버 진입점이며 초기화를 담당하는 DriverEntry 루틴을 구현합니다. 하드웨어 알림 클라이언트 드라이버의 경우 이 함수는 다음을 처리해야 합니다.

  4. PnP 관리자가 디바이스 의 존재를 보고할 때 디바이스 초기화 작업을 수행하는 EVT_WDF_DRIVER_DEVICE_ADD 함수를 구현합니다. 하드웨어 알림 클라이언트 드라이버의 경우 이 함수는 다음을 처리해야 합니다.

  5. 클래스 확장에서 호출하여 사용할 하드웨어 알림 컨트롤러를 준비하는 정의된 HWN_CLIENT_INITIALIZE_DEVICE 함수를 구현합니다.

  6. 정의된 HWN_CLIENT_UNINITIALIZE_DEVICE 함수를 구현합니다. 이 함수는 클래스 확장에서 호출하여 하드웨어 알림 컨트롤러를 초기화하지 않습니다.

  7. 클래스 확장에서 호출되는 정의된 HWN_CLIENT_QUERY_DEVICE_INFORMATION 함수를 구현합니다. 이 함수는 하드웨어 알림 구성 요소의 특성을 검색합니다.

  8. 클래스 확장에서 호출되는 정의된 HWN_CLIENT_START_DEVICE 함수를 구현합니다. 이 함수는 하드웨어 알림 컨트롤러를 시작하고 클라이언트 드라이버에 대한 ACPI 리소스를 할당하는 작업을 담당합니다.

  9. 클래스 확장에서 호출되는 정의된 HWN_CLIENT_STOP_DEVICE 함수를 구현합니다. 이 함수는 하드웨어 알림 컨트롤러를 중지하고 클라이언트 드라이버에서 사용하는 ACPI 리소스를 해제하는 작업을 담당합니다.

  10. 클래스 확장에서 호출되는 정의된 HWN_CLIENT_SET_STATE 구현합니다. 이 함수는 하드웨어 알림 구성 요소 상태를 설정하는 작업을 담당합니다.

  11. 클래스 확장에서 호출되는 정의된 HWN_CLIENT_GET_STATE 구현합니다. 이 함수는 하드웨어 알림 구성 요소의 현재 값을 가져옵니다. 입력 버퍼가 NULL이면 사용자가 특정 하드웨어 알림 상태를 지정하지 않았으므로 이 함수는 모든 하드웨어 알림 구성 요소에 대한 상태 정보를 반환해야 합니다.

하드웨어 알림