다음을 통해 공유


PnpSurpriseRemove 규칙(wdm)

PnpSurpriseRemove 규칙은 드라이버가 IRP_MN_SURPRISE_REMOVAL 요청을 처리하는 동안 IoDeleteDevice 또는 IoDetachDevice를 호출하지 않도록 지정합니다.

PnP 관리자는 IRP_MN_SURPRISE_REMOVAL 요청을 보내 I/O 작업에 디바이스를 더 이상 사용할 수 없으며 컴퓨터에서 예기치 않게 제거되었을 수 있음을 드라이버에 알립니다.

  • 모든 PnP 드라이버는 IRP_MN_SURPRISE_REMOVAL 요청을 처리해야 합니다.
  • 드라이버는 IRP_MN_SURPRISE_REMOVAL IRP가 성공하고 디바이스에 열려 있는 모든 핸들이 닫히기 전까지는 디바이스 개체에서 IoDeleteDevice 또는 IoDetachDevice 를 호출해서는 안 됩니다.
  • 그런 다음 PnP 관리자는 디바이스 스택에 IRP_MN_REMOVE_DEVICE 요청을 보냅니다. IRP 제거에 대한 응답으로 드라이버는 해당 디바이스 개체를 스택에서 분리하고 삭제합니다.

드라이버가 IRP_MN_SURPRISE_REMOVAL 요청에 응답하는 방법에 대한 자세한 내용은 IRP_MN_SURPRISE_REMOVAL 요청 처리를 참조하세요.

드라이버 모델: WDM

테스트 방법

컴파일 시

정적 드라이버 검증 도구 를 실행하고 PnpSurpriseRemove 규칙을 지정합니다.

다음 단계를 사용하여 코드 분석을 실행합니다.
  1. 코드를 준비합니다(역할 형식 선언 사용).
  2. 정적 드라이버 검증 도구 실행
  3. 결과를 보고 분석합니다.

자세한 내용은 정적 드라이버 검증 도구로 드라이버에서 결함 찾기를 참조하세요.

적용 대상

IoDeleteDeviceIoDetachDevice

추가 정보

확인 및 코드 분석 도구를 사용하여 드라이버 분석IRP_MN_SURPRISE_REMOVAL 요청 처리IRP_MN_SURPRISE_REMOVAL IRP_MN_REMOVE_DEVICE