1. 윈도우의 5가지 기본 요소
(1) 유저 모드와 커널 모드
(2) 프로세스
(3) 스레드
(4) 가상 메모리
(5) 객체와 핸들
2. 멀티프로세싱
- 프로세서 개수 확인
3. 유니코드의 이용
- HANDLE hFile = CreateFileA("C:\\unicode.txt", ..., 0);
4. 서브시스템
- 환경 서브시스템 : Csrss.exe, Psxss.exe
(1) 서브시스템 DLL
- Kernel32.dll : 파일 생성과 같은 하드웨어 요청에 주로 사용
- Advapi32.dll : 보안 구성이나 확인 등 추가적으로 윈도우에서 제공하는 기능적인 부분들에 사용
- User32.dll : 사용자에게 제공하는 창이나 메뉴 등의 화면을 생성하는데 필요한 요소를 요청할 때 사용
- Gdi32.dll : User32.dll과 다르게 직접 그림을 그릴 수 있는 부분에 사용
(2) NTDLL
- WINAPI CreateFile(windows.h) -> Kernel32.CreateFile(kernel32.dll) -> Ntdll.NtCreateFile (ntdll.dll)-> Sysenter (Kernel mode)
- 참조 : https://asecurity.dev/entry/윈도우-구조-커널-진입-Ntdlldll-세부-분석
- 우편배달부 (서브시스템 DLL) ↔ 우체국 (Ntdll.dll) ↔ 커널
- WINAPI ReadFile() > kernel32.ReadFile() > ntdll.ZwReadFile() > ntdll.KiFastSystemCall() > SYSENTER > nt!NtReadFile()
'코드 > C++' 카테고리의 다른 글
Texture.cpp (1) | 2023.07.29 |
---|---|
OpenGL 환경설정 (0) | 2023.07.24 |
128TB를 16진수로 변환 (0) | 2023.07.07 |
6개의 버튼을 가진 윈도우 생성 (LNK2019, LNK1120) (0) | 2023.06.20 |
버튼 클릭 시 메세지 출력 (0) | 2023.05.16 |
댓글