Categories
Tags
algorithms APIT arm assembly asynchronous base64 Blogging box c clang-format cmake compiler concurrency const_fn contravariant cos covariant cpp Customization cybersecurity DataStructure db Demo deserialization discrete doc DP Dynamic Example FFI flat_map FP Functional functions futures Fuwari GATs gccrs generics gitignore GUI hacking hashmap haskell heap interop invariant iterator justfile kernel LaTeX LFU linux MachineLearning Markdown math ML OnceLock optimization OS parallels perf physics pin postgresql release RPIT rust science Science serialization shift sin SmallProjects std String surrealdb swisstable synchronous tan traits triangulation utf16 utf8 Video x86_64 xilem zig
178 words
1 minutes
260204_Impl_GUI_in_Windows_Kernel
link
윈도우에서 GUI프로그램의 작동 원리
GUI 프로그램일 경우 그래픽과 메시지 등을 담당하는 기능이 커널 드라이버인 win32k.sys에서 담당하므로 시스템 콜 테이블을 가져오는 과정에서 KeServiceDescriptorTable이 아닌 KeServiceDescriptorTableShadow 구조체를 가져온다. 이 구조체는 커널 자체(KiServiceTable)와 win32k.sys의 시스템 콜 테이블이 모두 들어가 있다. 여기서 win32k.sys의 시스템 콜 테이블은 W32pServiceTable이다. win32k.sys의 시스템 콜도 역시 win32u.dll라는 라이브러리로 사용자 모드에 노출된다. user32.dll과 gdi32.dll이 win32u.dll의 함수를 사용한다.
260204_Impl_GUI_in_Windows_Kernel
https://younghakim7.github.io/blog/posts/260204_impl_gui_in_windows_kernel/