다음을 통해 공유


CM_NOTIFY_ACTION 열거형(cfgmgr32.h)

이 열거형은 플러그 앤 플레이 디바이스 이벤트 유형을 식별합니다.

Syntax

typedef enum _CM_NOTIFY_ACTION {
  CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
  CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL,
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVE,
  CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED,
  CM_NOTIFY_ACTION_DEVICEREMOVEPENDING,
  CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE,
  CM_NOTIFY_ACTION_DEVICECUSTOMEVENT,
  CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED,
  CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED,
  CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED,
  CM_NOTIFY_ACTION_MAX
} CM_NOTIFY_ACTION, *PCM_NOTIFY_ACTION;

상수

 
CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL
값: 0
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE. 이 작업은 필터 조건을 충족하는 디바이스 인터페이스가 사용하도록 설정되었음을 나타냅니다.
CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE.

이 작업은 필터 조건을 충족하는 디바이스 인터페이스가 비활성화되었음을 나타냅니다.
CM_NOTIFY_ACTION_DEVICEQUERYREMOVE
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE.

이 작업은 디바이스가 쿼리 제거 중임을 나타냅니다. 쿼리 제거가 성공하도록 하려면 CloseHandle 을 호출하여 디바이스에 열려 있는 핸들을 닫습니다. 이렇게 하지 않으면 열려 있는 핸들을 사용하면 이 디바이스의 쿼리 제거가 성공하지 못하게 됩니다. 자세한 내용은 디바이스 인터페이스 도착 및 디바이스 제거 알림 등록 을 참조하세요.

쿼리 제거를 거부하려면 ERROR_CANCELLED 반환합니다. 그러나 쿼리 제거를 거부하지 않고 디바이스에 열려 있는 핸들을 닫아 쿼리 제거를 허용하지 않는 것이 좋습니다.
CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE.

이 작업은 디바이스의 쿼리 제거가 실패했음을 나타냅니다. 이전 CM_NOTIFY_ACTION_DEVICEQUERYREMOVE 알림 중에 이 디바이스에 대한 핸들을 닫은 경우 디바이스에 대한 새 핸들을 열어 I/O 요청을 계속 보냅니다. 자세한 내용은 디바이스 인터페이스 도착 및 디바이스 제거 알림 등록 을 참조하세요.
CM_NOTIFY_ACTION_DEVICEREMOVEPENDING
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE.

디바이스가 제거됩니다. 디바이스에 대한 열린 핸들이 여전히 있는 경우 CloseHandle 을 호출하여 디바이스 핸들을 닫습니다. 자세한 내용은 디바이스 인터페이스 도착 및 디바이스 제거 알림 등록 을 참조하세요. 시스템은 해당 CM_NOTIFY_ACTION_DEVICEQUERYREMOVE 메시지를 보내지 않고 CM_NOTIFY_ACTION_DEVICEREMOVEPENDING 알림을 보낼 수 있습니다. 이러한 경우 애플리케이션과 드라이버는 가능한 한 디바이스 손실로부터 복구해야 합니다.
CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE.

디바이스가 제거되었습니다. 디바이스에 대한 열린 핸들이 여전히 있는 경우 CloseHandle 을 호출하여 디바이스 핸들을 닫습니다. 자세한 내용은 디바이스 인터페이스 도착 및 디바이스 제거 알림 등록 을 참조하세요. 시스템은 해당 CM_NOTIFY_ACTION_DEVICEQUERYREMOVE 또는 CM_NOTIFY_ACTION_DEVICEREMOVEPENDING 메시지를 보내지 않고 CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE 알림을 보낼 수 있습니다. 이러한 경우 애플리케이션과 드라이버는 가능한 한 디바이스 손실로부터 복구해야 합니다.
CM_NOTIFY_ACTION_DEVICECUSTOMEVENT
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE. 이 작업은 드라이버 정의 사용자 지정 이벤트가 발생했을 때 전송됩니다.
CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE. 이 작업은 필터 조건을 충족하는 새 디바이스 instance 열거되면 전송됩니다.
CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE. 이 작업은 필터 조건을 충족하는 디바이스 instance 시작될 때 전송됩니다.
CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED
이 값에 대해 CM_NOTIFY_FILTER 구조체의 FilterType 멤버를 설정합니다.
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE. 이 작업은 필터 조건을 충족하는 디바이스 instance 더 이상 존재하지 않을 때 전송됩니다.
CM_NOTIFY_ACTION_MAX
사용하지 마십시오.

설명

드라이버가 CM_Register_Notification 함수를 호출할 때 pCallback 매개 변수는 지정된 PnP 이벤트가 발생할 때 호출할 루틴에 대한 포인터를 포함합니다. 콜백 루틴의 Action 매개 변수는 CM_NOTIFY_ACTION 열거형의 값입니다.

요구 사항

요구 사항
헤더 cfgmgr32.h

추가 정보

CM_NOTIFY_FILTER

CM_Register_Notification