IoSetCancelRoutine()
CancelIO() 에 대한 취소요청을 수락하기 위한 작업을 해야 한다. 주어진 IRP가 취소할 때를 대비해서 CancelRoutine을 셋팅한다. IRP가 가지는 특별한 약속이 있다. 1. 생성된 IRP는 반드시 해제되어야 한다. 2. 응용프로그램의 요청에 의해서 생성된 IRP는 반드시 완료 요청되어야 한다. 3. IRP가 완료 요청되는 상황은 "성공", "에러", "취소" 의 3가지 경우가 되어야 한다. IRP를 취소하는 방법은 실제로 DDK함수 IoCancelIrp()를 이용하는 방법이다. 사용자 프로그램이 의도적으로 취소요청을 하는 경우에는 Win32 API CancelIO() 함수를 사용한다. 물론 이함수는 내부적으로 IoCancelIrp()를 호출한다. IoCancelIrp()는 해당 IRP에..
청강컴정/시스템프로그래밍
2009. 4. 30. 20:34