I/O 요청을 등록하고, 디바이스 드라이버가 I/O 요청을 처리하기 이전에 앞서 요청했던 I/O 작업을 취소하고 싶을 수있다. 윈도우에서는 이를 위해 CancleIo와 CancleIoEx 함수를 제공한다. CancleIo BOOL WINAPI CancelIo( _In_ HANDLE hFile ); 지정된 핸들에 대해 진행 중인 I/O작업이 있고, 해당 함수를 호출 하는 스레드에서 실행된 경우 CancleIo 함수는 이를 취소한다. I/O작업은 Overlapped I/O로 실행될때만 유효하다. 취소된 모든 I/O작업은 ERROR_OPERATION_ABORTED를 포함하여 완료되며, I/O 작업에 대한 모든 완료통지는 정상적으로 발생한다. 해당 함수는 핸들이 IOCP와 연계되어 있는 경우 사용하기 힘들다. ..
I/O Manager I/O 시스템은 IRP (I/O Request Packet)이라 불리는 패킷에 기반하여 동작한다 예외로, IRP생성을 생락하고 I/O를 수행하는 Fast I/O라는 기법이 있다. I/O Manager는 I/O작업을 표현하기 위해 메모리에 IRP를 생성하고, IRP에 대한 포인터를 드라이버에 전달한 후 I/O작업이 완료되면 패킷을 폐기한다. 드라이버는 요청된 I/O 작업이 완료되었거나, 추가 처리를 위해 다른 드라이버로 전달해야하기 때문에, IRP를 수신하고, IRP가 지정한 작업을 수행한 후, IRP를 I/O Manager에게 다시 전달한다. I/O Manager는 여러 드라이버가 공통으로 쓸 수 있는 I/O처리 수행코드를 제공하고, 드라이버가 제공하는 모듈식 인터페이스 덕에 I/O..