프로그래밍/Windows Device Driver
[Windows Driver] 커널 파일 저장 될 때의 파일 길이 구하기
꿀봉♪
2014. 1. 10. 23:13
반응형
scanner의 데이터를 볼 경우 저장된 값 이외에 쓰레기 값들이 들어온다.
이 이유는 드라이버 개발자를 위한 윈도우 파일 시스템의 책 내용에서 추측할 수 있는데 책에는 이렇게 나와 있다.
저장되는 파일의 크기는 stack location의 parameter의 union 구조체에 저장 되어 있는데(parameters.Write.Length) 이 크기가 실제 데이터 크기가 아니란다. 항상 페이지 크기로 설정 되어 있기 때문이란다.(0x10000)
그렇기에 실제 크기를 알고자 할 경우 FSRTL_COMMON_FCB_HEADER 구조체에서 파일 크기와 관련된 멤버 변수를 추출해야 한단다.
FcbHeader = currenIrpStack->FileObject->FsContext , size =
FcbHeader->FileSize.LowPart
이렇게 구해오랜다.
반응형