kernel32.dll
handle = CreateFile()
ClseHandle(handle)
DeviceIoControl(handle)
ReadFile(handle) - 데이터를 달라고한다.
WriteFile(handle) - 데이터를 준다.
SetFilePointer(handle) - 위치를 바꾸고자 할 경우
CancleIo(handle) - 취소(해제)
ntddl.dll
유저레벨에서 커널레벨로 바꾸어준다.
kernel 에 있는 KiSysstemService 가 반겨준다.
ntdll.dll
Ntxxxx
Rtxxxx
Zwxxxx
NtCreateFile - CreateFile과 연결됨
Application -> CreateFile() -> KERNEL32.dll -> NtCreateFile() -> NTDLL.dll -> SYSENTER -> 커널입장
Application -> CloseHandle() -> KERNEL32.dll -> NtClose() -> NTDLL.dll -> SYSENTER -> 커널입장
Application -> ReadFile() -> KERNEL32.dll -> NtReadFile() -> NTDLL.dll -> SYSENTER -> 커널입장
Application -> WriteFile() -> KERNEL32.dll -> NtWriteFile() -> NTDLL.dll -> SYSENTER -> 커널입장
유저레벨 - 3번 Application
Kernel - 0번 Device Driver
댓글 영역