
Windows Driver/Kernel & Driver 개발
DO_BUFFERED_IO 사용시 주의 할 점.
필터 드라이버를 만들면서 커널에서 애플리케이션으로 내용을 전달하기 위해 아래 사진과 같은 코드를 사용했습니다. 그런데 eventBuffer에 항상 NULL로 저장되는 현상이 있어 원인을 찾아본 결과 커널 모드 드라이버가 SystemBuffer를 사용하면, I/O Manager가 유저 모드 버퍼의 데이터를 커널로 복사해서 SystemBuffer에 넣어주는데 DO_DIRECT_IO로 선언하고 SystemBuffer를 사용하려고 하니 NULL로 나온것 이였습니다.그래서 DO_DIRECT_IO로 선언을 했다면 애플리케이션 입장에서는 관계가 없지만, 드라이버는 SystemBuffer를 보면 안 되고 MDL에서 직접 데이터를 다뤄야합니다. Direct I/O 특징Direct I/O에서는 I/O Manager가..