Suche senden
Hochladen
Windows via C/C++ Chapter 10
โข
Als PPTX, PDF herunterladen
โข
0 gefรคllt mir
โข
1,182 views
I
iluvs
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 39
Jetzt herunterladen
Empfohlen
Boost
Boost
Jin Woo Lee
ย
[KGC 2012]Boost.asio๋ฅผ ์ด์ฉํ ๋คํธ์ ํ๋ก๊ทธ๋๋ฐ
[KGC 2012]Boost.asio๋ฅผ ์ด์ฉํ ๋คํธ์ ํ๋ก๊ทธ๋๋ฐ
ํฅ๋ฐฐ ์ต
ย
๋ง๊ณ 100 ๋ณด๋๋ก ๋์๋ณด์ 14
๋ง๊ณ 100 ๋ณด๋๋ก ๋์๋ณด์ 14
์ข ์ธ ์
ย
C++์ ๋ฆฌ ์ค๋งํธํฌ์ธํฐ
C++์ ๋ฆฌ ์ค๋งํธํฌ์ธํฐ
fefe7270
ย
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary
Chris Ohk
ย
Javascriptแแ ขแแ กแฏแแ กแแ ด แแ ฎแซแแ ณแ แ ฉ python แแ ณแฏแแ งแแ กแแ ฉแแ ต
Javascriptแแ ขแแ กแฏแแ กแแ ด แแ ฎแซแแ ณแ แ ฉ python แแ ณแฏแแ งแแ กแแ ฉแแ ต
์ง์ ์ค
ย
Windows reversing study_basic_8
Windows reversing study_basic_8
Jinkyoung Kim
ย
๊ด์ด๋[๋ฐ๋] 1.vhdl intro
๊ด์ด๋[๋ฐ๋] 1.vhdl intro
NAVER D2
ย
Empfohlen
Boost
Boost
Jin Woo Lee
ย
[KGC 2012]Boost.asio๋ฅผ ์ด์ฉํ ๋คํธ์ ํ๋ก๊ทธ๋๋ฐ
[KGC 2012]Boost.asio๋ฅผ ์ด์ฉํ ๋คํธ์ ํ๋ก๊ทธ๋๋ฐ
ํฅ๋ฐฐ ์ต
ย
๋ง๊ณ 100 ๋ณด๋๋ก ๋์๋ณด์ 14
๋ง๊ณ 100 ๋ณด๋๋ก ๋์๋ณด์ 14
์ข ์ธ ์
ย
C++์ ๋ฆฌ ์ค๋งํธํฌ์ธํฐ
C++์ ๋ฆฌ ์ค๋งํธํฌ์ธํฐ
fefe7270
ย
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary
Chris Ohk
ย
Javascriptแแ ขแแ กแฏแแ กแแ ด แแ ฎแซแแ ณแ แ ฉ python แแ ณแฏแแ งแแ กแแ ฉแแ ต
Javascriptแแ ขแแ กแฏแแ กแแ ด แแ ฎแซแแ ณแ แ ฉ python แแ ณแฏแแ งแแ กแแ ฉแแ ต
์ง์ ์ค
ย
Windows reversing study_basic_8
Windows reversing study_basic_8
Jinkyoung Kim
ย
๊ด์ด๋[๋ฐ๋] 1.vhdl intro
๊ด์ด๋[๋ฐ๋] 1.vhdl intro
NAVER D2
ย
Boost๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ด๋ถ๊ตฌ์กฐ 20151111 ์์งํ
Boost๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ด๋ถ๊ตฌ์กฐ 20151111 ์์งํ
JinTaek Seo
ย
Windows reversing study_basic_5
Windows reversing study_basic_5
Jinkyoung Kim
ย
ํ์ด์ฌ 2์ ์ ๋์ฝ๋
ํ์ด์ฌ 2์ ์ ๋์ฝ๋
์ฑ์ฃผ ์ด
ย
[KGC 2011]Boost ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ C++11
[KGC 2011]Boost ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ C++11
ํฅ๋ฐฐ ์ต
ย
Web hacking introduction
Web hacking introduction
Jinkyoung Kim
ย
Javascript ๊ต์ก์๋ฃ pdf
Javascript ๊ต์ก์๋ฃ pdf
Hyosang Hong
ย
[Td 2015]๋ น์จ c++ ์ฝ๋์ ๋ชจ๋ c++๋ก ๊ธฐ๋ฆ์น ํ๊ธฐ(์ฅ์ฐฌํธ)
[Td 2015]๋ น์จ c++ ์ฝ๋์ ๋ชจ๋ c++๋ก ๊ธฐ๋ฆ์น ํ๊ธฐ(์ฅ์ฐฌํธ)
Sang Don Kim
ย
C++ 11 ์ ๋ํด์ ์ฝ๊ฒ ์์๋ด ์๋ค 1๋ถ
C++ 11 ์ ๋ํด์ ์ฝ๊ฒ ์์๋ด ์๋ค 1๋ถ
Gwangwhi Mah
ย
์ฌ๋ก๋ฅผ ํตํด ์ดํด๋ณด๋ ํ๋กํ์ผ๋ง๊ณผ ์ต์ ํ NDC2013
์ฌ๋ก๋ฅผ ํตํด ์ดํด๋ณด๋ ํ๋กํ์ผ๋ง๊ณผ ์ต์ ํ NDC2013
Esun Kim
ย
Near field communication
Near field communication
DH Y.
ย
Cpp 0x kimRyungee
Cpp 0x kimRyungee
scor7910
ย
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
GangSeok Lee
ย
System+os study 1
System+os study 1
Jinkyoung Kim
ย
Windows reversing study_basic_1
Windows reversing study_basic_1
Jinkyoung Kim
ย
8 swift แแ ฎแผแแ ฅแธแแ กแทแแ ฎ
8 swift แแ ฎแผแแ ฅแธแแ กแทแแ ฎ
Changwon National University
ย
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique์ ๋ฐ์ ๊ณผ ์ต์ ํธ๋๋
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique์ ๋ฐ์ ๊ณผ ์ต์ ํธ๋๋
GangSeok Lee
ย
GopherCon Korea 2015 - Python ๊ฐ๋ฐ์๋ฅผ ์ํ Go (์ด๊ฒฝ์ฐฌ)
GopherCon Korea 2015 - Python ๊ฐ๋ฐ์๋ฅผ ์ํ Go (์ด๊ฒฝ์ฐฌ)
Kyoungchan Lee
ย
Pwnable study basic_3
Pwnable study basic_3
Jinkyoung Kim
ย
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger ํ์ฉ๊ณผ ํ๋ฌ๊ทธ์ธ ์ ์
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger ํ์ฉ๊ณผ ํ๋ฌ๊ทธ์ธ ์ ์
GangSeok Lee
ย
Windows reversing study_basic_2
Windows reversing study_basic_2
Jinkyoung Kim
ย
10 ๋๊ธฐ๋ฐ๋น๋๊ธฐ์ฅ์นio
10 ๋๊ธฐ๋ฐ๋น๋๊ธฐ์ฅ์นio
ssuser3fb17c
ย
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ
ํ์ค ๊น
ย
Weitere รคhnliche Inhalte
Was ist angesagt?
Boost๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ด๋ถ๊ตฌ์กฐ 20151111 ์์งํ
Boost๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ด๋ถ๊ตฌ์กฐ 20151111 ์์งํ
JinTaek Seo
ย
Windows reversing study_basic_5
Windows reversing study_basic_5
Jinkyoung Kim
ย
ํ์ด์ฌ 2์ ์ ๋์ฝ๋
ํ์ด์ฌ 2์ ์ ๋์ฝ๋
์ฑ์ฃผ ์ด
ย
[KGC 2011]Boost ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ C++11
[KGC 2011]Boost ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ C++11
ํฅ๋ฐฐ ์ต
ย
Web hacking introduction
Web hacking introduction
Jinkyoung Kim
ย
Javascript ๊ต์ก์๋ฃ pdf
Javascript ๊ต์ก์๋ฃ pdf
Hyosang Hong
ย
[Td 2015]๋ น์จ c++ ์ฝ๋์ ๋ชจ๋ c++๋ก ๊ธฐ๋ฆ์น ํ๊ธฐ(์ฅ์ฐฌํธ)
[Td 2015]๋ น์จ c++ ์ฝ๋์ ๋ชจ๋ c++๋ก ๊ธฐ๋ฆ์น ํ๊ธฐ(์ฅ์ฐฌํธ)
Sang Don Kim
ย
C++ 11 ์ ๋ํด์ ์ฝ๊ฒ ์์๋ด ์๋ค 1๋ถ
C++ 11 ์ ๋ํด์ ์ฝ๊ฒ ์์๋ด ์๋ค 1๋ถ
Gwangwhi Mah
ย
์ฌ๋ก๋ฅผ ํตํด ์ดํด๋ณด๋ ํ๋กํ์ผ๋ง๊ณผ ์ต์ ํ NDC2013
์ฌ๋ก๋ฅผ ํตํด ์ดํด๋ณด๋ ํ๋กํ์ผ๋ง๊ณผ ์ต์ ํ NDC2013
Esun Kim
ย
Near field communication
Near field communication
DH Y.
ย
Cpp 0x kimRyungee
Cpp 0x kimRyungee
scor7910
ย
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
GangSeok Lee
ย
System+os study 1
System+os study 1
Jinkyoung Kim
ย
Windows reversing study_basic_1
Windows reversing study_basic_1
Jinkyoung Kim
ย
8 swift แแ ฎแผแแ ฅแธแแ กแทแแ ฎ
8 swift แแ ฎแผแแ ฅแธแแ กแทแแ ฎ
Changwon National University
ย
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique์ ๋ฐ์ ๊ณผ ์ต์ ํธ๋๋
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique์ ๋ฐ์ ๊ณผ ์ต์ ํธ๋๋
GangSeok Lee
ย
GopherCon Korea 2015 - Python ๊ฐ๋ฐ์๋ฅผ ์ํ Go (์ด๊ฒฝ์ฐฌ)
GopherCon Korea 2015 - Python ๊ฐ๋ฐ์๋ฅผ ์ํ Go (์ด๊ฒฝ์ฐฌ)
Kyoungchan Lee
ย
Pwnable study basic_3
Pwnable study basic_3
Jinkyoung Kim
ย
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger ํ์ฉ๊ณผ ํ๋ฌ๊ทธ์ธ ์ ์
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger ํ์ฉ๊ณผ ํ๋ฌ๊ทธ์ธ ์ ์
GangSeok Lee
ย
Windows reversing study_basic_2
Windows reversing study_basic_2
Jinkyoung Kim
ย
Was ist angesagt?
(20)
Boost๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ด๋ถ๊ตฌ์กฐ 20151111 ์์งํ
Boost๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ด๋ถ๊ตฌ์กฐ 20151111 ์์งํ
ย
Windows reversing study_basic_5
Windows reversing study_basic_5
ย
ํ์ด์ฌ 2์ ์ ๋์ฝ๋
ํ์ด์ฌ 2์ ์ ๋์ฝ๋
ย
[KGC 2011]Boost ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ C++11
[KGC 2011]Boost ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ C++11
ย
Web hacking introduction
Web hacking introduction
ย
Javascript ๊ต์ก์๋ฃ pdf
Javascript ๊ต์ก์๋ฃ pdf
ย
[Td 2015]๋ น์จ c++ ์ฝ๋์ ๋ชจ๋ c++๋ก ๊ธฐ๋ฆ์น ํ๊ธฐ(์ฅ์ฐฌํธ)
[Td 2015]๋ น์จ c++ ์ฝ๋์ ๋ชจ๋ c++๋ก ๊ธฐ๋ฆ์น ํ๊ธฐ(์ฅ์ฐฌํธ)
ย
C++ 11 ์ ๋ํด์ ์ฝ๊ฒ ์์๋ด ์๋ค 1๋ถ
C++ 11 ์ ๋ํด์ ์ฝ๊ฒ ์์๋ด ์๋ค 1๋ถ
ย
์ฌ๋ก๋ฅผ ํตํด ์ดํด๋ณด๋ ํ๋กํ์ผ๋ง๊ณผ ์ต์ ํ NDC2013
์ฌ๋ก๋ฅผ ํตํด ์ดํด๋ณด๋ ํ๋กํ์ผ๋ง๊ณผ ์ต์ ํ NDC2013
ย
Near field communication
Near field communication
ย
Cpp 0x kimRyungee
Cpp 0x kimRyungee
ย
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
[2013 CodeEngn Conference 08] manGoo - Windows 8 Exploit
ย
System+os study 1
System+os study 1
ย
Windows reversing study_basic_1
Windows reversing study_basic_1
ย
8 swift แแ ฎแผแแ ฅแธแแ กแทแแ ฎ
8 swift แแ ฎแผแแ ฅแธแแ กแทแแ ฎ
ย
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique์ ๋ฐ์ ๊ณผ ์ต์ ํธ๋๋
[2012 CodeEngn Conference 07] manGoo - Exploit Writing Technique์ ๋ฐ์ ๊ณผ ์ต์ ํธ๋๋
ย
GopherCon Korea 2015 - Python ๊ฐ๋ฐ์๋ฅผ ์ํ Go (์ด๊ฒฝ์ฐฌ)
GopherCon Korea 2015 - Python ๊ฐ๋ฐ์๋ฅผ ์ํ Go (์ด๊ฒฝ์ฐฌ)
ย
Pwnable study basic_3
Pwnable study basic_3
ย
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger ํ์ฉ๊ณผ ํ๋ฌ๊ทธ์ธ ์ ์
[2008 CodeEngn Conference 02] seaofglass - Immunity Debugger ํ์ฉ๊ณผ ํ๋ฌ๊ทธ์ธ ์ ์
ย
Windows reversing study_basic_2
Windows reversing study_basic_2
ย
รhnlich wie Windows via C/C++ Chapter 10
10 ๋๊ธฐ๋ฐ๋น๋๊ธฐ์ฅ์นio
10 ๋๊ธฐ๋ฐ๋น๋๊ธฐ์ฅ์นio
ssuser3fb17c
ย
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ
ํ์ค ๊น
ย
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ + 12์ฅ ํ์ด๋ฒ
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ + 12์ฅ ํ์ด๋ฒ
ํ์ค ๊น
ย
Overlapped IO์ IOCP ์กฐ์ฌ ๋ฐํ
Overlapped IO์ IOCP ์กฐ์ฌ ๋ฐํ
Kwen Won Lee
ย
GCGC- CGCII ์๋ฒ ์์ง์ ์ ์ฉ๋ ๊ธฐ์ (4) - Executing System
GCGC- CGCII ์๋ฒ ์์ง์ ์ ์ฉ๋ ๊ธฐ์ (4) - Executing System
์ํ ์กฐ
ย
windows via c++ Ch 5. Job
windows via c++ Ch 5. Job
Hyosung Jeon
ย
Device driver
Device driver
Yongjae Choi
ย
Iocp ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ดํด
Iocp ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ดํด
Nam Hyeonuk
ย
[KGC2014] ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ์ก๊ธฐ ์ํ C++ - C# ํผํฉ ๋ฉํฐํ๋ซํผ ๊ฒ์ ์ํคํ ์ฒ ์ค๊ณ
[KGC2014] ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ์ก๊ธฐ ์ํ C++ - C# ํผํฉ ๋ฉํฐํ๋ซํผ ๊ฒ์ ์ํคํ ์ฒ ์ค๊ณ
Sungkyun Kim
ย
NodeJs๋ก ๋๋ฐ์ด์ค ํต์ ํ๊ธฐ
NodeJs๋ก ๋๋ฐ์ด์ค ํต์ ํ๊ธฐ
TaeYoung Kim
ย
Tizen main loop ์ดํด
Tizen main loop ์ดํด
Hermet Park
ย
I phone 2 release
I phone 2 release
Jaehyeuk Oh
ย
Do IoT Yourself! - ์ฌ๋ฌผ ๊ฐ์ ์ฐ๊ฒฐ์ ์ํ Open API
Do IoT Yourself! - ์ฌ๋ฌผ ๊ฐ์ ์ฐ๊ฒฐ์ ์ํ Open API
Hyunghun Cho
ย
NODE.JS ๊ธ๋ก๋ฒ ๊ธฐ์ ์ ์ฉ ์ฌ๋ก ๊ทธ๋ฆฌ๊ณ , real-time ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐํ๊ธฐ
NODE.JS ๊ธ๋ก๋ฒ ๊ธฐ์ ์ ์ฉ ์ฌ๋ก ๊ทธ๋ฆฌ๊ณ , real-time ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐํ๊ธฐ
John Kim
ย
eclipse์์ intelliJ IDEA๋ก
eclipse์์ intelliJ IDEA๋ก
Juntai Park
ย
I os push: ์ธ์์์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ ์จ, ๋๊ธฐํ๊ฒฝ ์ก
I os push: ์ธ์์์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ ์จ, ๋๊ธฐํ๊ฒฝ ์ก
HannaSungKim
ย
Meteor IoT
Meteor IoT
Jaeho Lee
ย
Init to systemd
Init to systemd
Jaeock Shim
ย
OpenStack Swift Debugging
OpenStack Swift Debugging
OpenStack Korea Community
ย
Open vSwitch์ Vendor Extension ๊ตฌํ
Open vSwitch์ Vendor Extension ๊ตฌํ
Seung-Hoon Baek
ย
รhnlich wie Windows via C/C++ Chapter 10
(20)
10 ๋๊ธฐ๋ฐ๋น๋๊ธฐ์ฅ์นio
10 ๋๊ธฐ๋ฐ๋น๋๊ธฐ์ฅ์นio
ย
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ
ย
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ + 12์ฅ ํ์ด๋ฒ
11์ฅ ์๋์ฐ ์ค๋ ๋ ํ + 12์ฅ ํ์ด๋ฒ
ย
Overlapped IO์ IOCP ์กฐ์ฌ ๋ฐํ
Overlapped IO์ IOCP ์กฐ์ฌ ๋ฐํ
ย
GCGC- CGCII ์๋ฒ ์์ง์ ์ ์ฉ๋ ๊ธฐ์ (4) - Executing System
GCGC- CGCII ์๋ฒ ์์ง์ ์ ์ฉ๋ ๊ธฐ์ (4) - Executing System
ย
windows via c++ Ch 5. Job
windows via c++ Ch 5. Job
ย
Device driver
Device driver
ย
Iocp ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ดํด
Iocp ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ดํด
ย
[KGC2014] ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ์ก๊ธฐ ์ํ C++ - C# ํผํฉ ๋ฉํฐํ๋ซํผ ๊ฒ์ ์ํคํ ์ฒ ์ค๊ณ
[KGC2014] ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ์ก๊ธฐ ์ํ C++ - C# ํผํฉ ๋ฉํฐํ๋ซํผ ๊ฒ์ ์ํคํ ์ฒ ์ค๊ณ
ย
NodeJs๋ก ๋๋ฐ์ด์ค ํต์ ํ๊ธฐ
NodeJs๋ก ๋๋ฐ์ด์ค ํต์ ํ๊ธฐ
ย
Tizen main loop ์ดํด
Tizen main loop ์ดํด
ย
I phone 2 release
I phone 2 release
ย
Do IoT Yourself! - ์ฌ๋ฌผ ๊ฐ์ ์ฐ๊ฒฐ์ ์ํ Open API
Do IoT Yourself! - ์ฌ๋ฌผ ๊ฐ์ ์ฐ๊ฒฐ์ ์ํ Open API
ย
NODE.JS ๊ธ๋ก๋ฒ ๊ธฐ์ ์ ์ฉ ์ฌ๋ก ๊ทธ๋ฆฌ๊ณ , real-time ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐํ๊ธฐ
NODE.JS ๊ธ๋ก๋ฒ ๊ธฐ์ ์ ์ฉ ์ฌ๋ก ๊ทธ๋ฆฌ๊ณ , real-time ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐํ๊ธฐ
ย
eclipse์์ intelliJ IDEA๋ก
eclipse์์ intelliJ IDEA๋ก
ย
I os push: ์ธ์์์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ ์จ, ๋๊ธฐํ๊ฒฝ ์ก
I os push: ์ธ์์์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ ์จ, ๋๊ธฐํ๊ฒฝ ์ก
ย
Meteor IoT
Meteor IoT
ย
Init to systemd
Init to systemd
ย
OpenStack Swift Debugging
OpenStack Swift Debugging
ย
Open vSwitch์ Vendor Extension ๊ตฌํ
Open vSwitch์ Vendor Extension ๊ตฌํ
ย
Windows via C/C++ Chapter 10
1.
2.
3.
๋๊ธฐ?! ๋น๋๊ธฐ?! โข ๋๊ธฐ(Synchronous)
: ๋์ ๋ฐ์ํ๋ โข ๋น๋๊ธฐ(Asynchronous) : ๋์์ ์กด์ฌํ์ง ์๋
4.
5.
์ฅ์น๋ ?! โข ์ ์
: ํต์ ๊ฐ๋ฅํ ์ด๋ค ๊ฒ โข ์ข ๋ฅ : ํ์ผ, ์ง๋ ฌํฌํธ, ๋ฉ์ผ์ฌ๋กฏ, ์์ผ, etc... (p.388 ํ 10-1) โข ํน์ฑ : ์ผ๋ถ ์ฅ์น๋ฅผ ์ ์ธํ๊ณ ๋ ์ธํฐํ์ด์ค๊ฐ ๊ฐ๋ค. ๏ผ CreateMailSlot(), CreateNamedPipe() HANDLE hHandle = CreateFile(... ์์ฑ SetCommConfig (HANDLE hCommDev, ... SetMailslotInfo (HANDLE hMailslot, ... ์ด์ฉ CloseHandle(HANDLE hObject) ์ข ๋ฃ !! ๋จ ์ฅ์น๊ฐ Socket์ด์๋ค๋ฉด Closesocket(SOCKET s)
6.
HANDLE CreateFile (
PCTSTR pszName, DWORD dwDesireAccess, DWORD dwShareMode, PSECURITY_ATTRIBUTES psa, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hFileTemplate); โข pszName : ํน์ ์ฅ์น์ ์ธ์คํด์ค / ์ฅ์น์ ํ์ ์ ๊ตฌ๋ถ โข dwDesireAccess : ์ฅ์น์ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธธ ์ํ๋ ๋ฒ์ โข dwShareMode : ์ฅ์น์ ๊ณต์ ํน์ฑ โข Psa : ๋ณด์ ์ค์ โข dwCreationDisposition : ํ์ผ์ ์ฌ๋ ๋ฐฉ๋ฒ โข dwFlagsAndAttributes : ์ธ๋ถ์ ํต์ Flag / ํ์ผ์ ํน์ฑ โข hFileTemplate : ์ด๋ฏธ ์ด๋ฆฐ ํ์ผ์ ๋ํ ํธ๋ค or NULL !! ํ์ผ์ด ์๋ ๋ค๋ฅธ ์ฅ์น์ ๋ํด์๋ ๋ฐ๋์ OPEN_EXISTING (p.391 ~ 398)
7.
8.
์ฅ์น ์ด์ฉํ๊ธฐ โข ํ์ผ
ํฌ๊ธฐ ์ป๊ธฐ โข ํ์ผ ํฌ์ธํฐ ์์น ์ง์ โข ํ์ผ์ ๋ ์ค์ BOOL GetFileSize (hFile, ...); ๋ ผ๋ฆฌ์ ์ธ ํฌ๊ธฐ ๋ฐํ DWORD GetCompressedFileSize (pszFileName, ...); ๋ฌผ๋ฆฌ์ ์ธ ํฌ๊ธฐ ๋ฐํ ReadFile (hFile, ...); 64bit ์คํ์ SetFilePointEx (hFile, ... ); ๋๊ธฐ์ ์ธ I/O๋ฅผ ์ํํ ์์น SetEndOfFile(hFile, ...); ์ปค๋์ค๋ธ์ ํธ์ ํ์ผ ํฌ์ธํฐ ๋ณ๊ฒฝ
9.
10.
๋๊ธฐ ์ฅ์น I/O โข
๋๊ธฐ ์ฅ์น I/O ์ํ โข ๋๊ธฐ ์ฅ์น I/O ์ทจ์ (์ ์ ์ผ๋ก ๋๋ผ์ด๋ฒ์ ๋ฌ๋ ค์๋ค.) BOOL ReadFile ( HANDLE hFile, PVOID pvBuffer, DWORD nNumByteToRead, PDWORD pdwNumBytes, OVERLAPPED* pOverlapped); BOOL CancelSynchronousIo (HANDLE hThread);
11.
12.
์ปดํจํฐ๊ฐ ์ํํ๋ ๋ค๋ฅธ
์์ ๋ค์ ๋นํด ์ฅ์น I/O๋ ์๋์ ์ผ๋ก ๊ฐ ์ฅ ๋๋ฆฌ๊ณ , ์์ธกํ ์ ์๋ ์์ ์ค ํ๋๋ค. ๋น๋๊ธฐ I/O ์์ฒญ์ ๊ณ ์ฑ๋ฅ์ ํ์ฅ์ฑ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๊ธฐ ์ํ์ฌ ์ค๊ณ ๋์๋ค. 1. ์ค์ ๋ก I/O ์์ ์ ์ํํ ์ฅ์น์ ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ก ์ ๋ฌ 2. ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๊ฐ ์ฅ์น๋ก ๋ถํฐ ์๋ต ๋๊ธฐ 3. ์ ํ๋ฆฌ์ผ์ด์ ์ I/O ์๋ฃ๋ ๋๊น์ง ๋ค๋ฅธ ์์ ์ํ BOOL ReadFile ( HANDLE hFile, PVOID pvBuffer, DWORD nNumByteToRead, PDWORD pdwNumBytes, OVERLAPPED* pOverlapped); FILE_FLAG_OVERLAPPED
13.
typedef struct _OVERLAPPED
{ DWORD Internal; DWORD InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent; } OVERLAPPED, *LPOVERLAPPED; โข Internal : ์ฒ๋ฆฌ๋ I/O์ ์๋ฌ ์ฝ๋๋ฅผ ๋ด๋๋ฐ ์ฌ์ฉํ๋ค. ๋น๋๊ธฐ I/O ์์ฒญ ์ ์๋ํ๋ฉด ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ Internal ๋ฉค๋ฒ ๊ฐ์ STATUS_PENDING์ผ๋ก ์ค์ ํ์ฌ ์์ง ์์ ์ด ์๋ฃ๋์ง ์์์ผ๋ฉฐ ์ด๋ ํ ์๋ฌ๋ ๋ฐ์ํ์ง ์์์์ ๋ํ๋ธ๋ค. โข InternalHigh : ๋น๋๊ธฐ I/O ์์ ์ด ์๋ฃ๋๋ฉด ์ด ๋ฉค๋ฒ๋ ์ค์ ๋ก ์ก์์ ๋ ๋ฐ์ดํธ ์๋ฅผ ์ ์ฅํ๊ฒ ๋๋ค.
14.
โข Offset :
์ด ์ธ์์ ์๋ OffsetHigh๋ฅผ ํตํด ํ์ผ ๋ด์์ I/O ์์ ์ ์ ์ํ ์์น๋ฅผ 64๋นํธ ์คํ์ ๊ฐ์ผ๋ก ์ง์ ํ ์ ์๋ค. ๋์ผํ ํ์ผ ์ปค๋ ์ค๋ธ์ ํธ์ ๋ํด ์ฌ๋ฌ ๋ฒ์ ๋น๋๊ธฐ I/O ์์ฒญ ์์๋ ๋ฐ๋์ OVERLAPPED ๊ตฌ์กฐ์ฒด ๋ด์ I/O ์์ ์ ์์ํ ์์น๋ฅผ ์ง์ ํด์ผ ํ๋ค. โข OffsetHigh : ์์ Offset๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ฉฐ 32๋นํธ ์์ ํ์ผ์ ์ค ํ์ ์ ๋ํ๋ธ๋ค. โข hEvent : ์ด ๋ฉค๋ฒ๋ I/O ์๋ฃ ํต์ง๋ฅผ ์์ ํ๋ ๋ค ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ํ๋์ ๋ฐฉ๋ฒ์์ ์ฌ์ฉ๋๋ค. ์ผ๋ฌํฐ๋ธ I/O ํต์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ฌ ์ฉ์ ์์๋ก ์ด ๋ฉค๋ฒ๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
15.
โข ๋น๋๊ธฐ I/O
์์ฒญ์ด ์๋ฃ๋๋ฉด I/O ์์ฒญ ์ ์ฌ์ฉํ๋ OVERLAPPED ๊ตฌ์กฐ์ฒด์ ์ฃผ์๋ฅผ ๋๋ ค์ฃผ๊ฒ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ด ๊ตฌ์กฐ์ฒด์ ์ฅ์น ํธ๋ค์ด๋ ์ ์ฉํ ์ปจํ ์คํธ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋งํ ๋ฉค๋ฒ๋ฅผ ํฌํจ์์ผ์ ์์ฑํ๊ธฐ๋ ํ๋ค. Enum IOType { OP_RECV, OP_SEND } class OVERLAPPEDEX : public OVERLAPPED { IOType m_eIOType; SOCKET m_hSocket; };
16.
๋น๋๊ธฐ ์ฅ์น I/O
์ฌ์ฉ ์ ์ฃผ์์ 1. ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๋ ๋น๋๊ธฐ I/O์์ฒญ์ ํญ์ ์ ์ ์ ์ถ๋ก ์ฒ๋ฆฌ ์ํจ 2. ์๋ฌ ํ์ธ์ ์ํํ๋ ์ ๋นํ ๋ฐฉ๋ฒ์ ๋ํด ์๊ณ ์์ด์ผ ํ๋ค. 1. ๋น๋๊ธฐ ์์ฒญ์๋ ์์คํ ์ ์ํด ๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ ๋ ์๋ค. 2. Read / Write File์ I/O ์์ฒญ์ด ๋๊ธฐ์ ์ผ๋ก ์ํ๋๋ ๊ฒฝ์ฐ 0์ด ์ ๋ ๊ฐ์ ๋ฐํ 3. I/O ์์ฒญ์ด ๋น๋๊ธฐ์ ์ผ๋ก ์ํ๋๋ ๊ฒฝ์ฐ๋ ์๋ฌ ๋ฐ์์ FALSE ๋ฐํ, ๊ณ ๋ก GetLastError (ERROR_IO_PENDING) 3. ๋ฐ์ดํฐ ๋ฒํผ์ OVERLAPPED ๊ตฌ์กฐ์ฒด๋ I/O ์์ฒญ์ด ์๋ฃ๋ ๋๊น์ง ์ฎ๊ฒจ์ง๊ฑฐ๋ ์ญ์ ๋์ง ์์์ผ ํ๋ค.
17.
์์ฒญ๋ ์ฅ์น I/O์
์ทจ์ โข CancelIo ํจ์ ํธ์ถ โข ์ด ํจ์๋ฅผ ํธ์ถํ ์ค๋ ๋๊ฐ ์ฝ์ ํ ๋ชจ๋ I/O ์์ฒญ ์ทจ์ โข ์ฅ์น์ ๋ํ ํธ๋ค ๋ซ๊ธฐ โข ์ด๋ค ์ค๋ ๋๊ฐ I/O ์์ฒญ์ ์ฝ์ ํ์ง ๊ณ ๋ คํ์ง ์๊ณ ๋ชจ๋ I/O ์์ฒญ ์ทจ์ โข ํธ๋ค์ด I/O ์ปดํ๋ ์ด์ ํฌํธ์ ์ฐ๊ณ๋์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๋ฉด, ์ค๋ ๋๊ฐ ์ข ๋ฃ๋ ๋ ์ข ๋ฃ๋ ์ค๋ ๋๊ฐ ์ฝ์ ํ์๋ ๋ชจ๋ I/O ์์ฒญ์ด ์ทจ์ โข ํน์ ์ฅ์น์ ๋ํด ํ๋์ I/O ์์ฒญ๋ง ์ทจ์ํ ๋ โข CancelIoEx ํจ์ ํธ์ถ
18.
19.
์๋ฃ ํต์ง ๋ฐฉ๋ฒ? โข
๋น๋๊ธฐ ํธ์ถ์ ์ธ์ ์๋ฃ๋ ์ง ์ ์ ์๊ธฐ๋๋ฌธ์ I/O ์์ ์ด ์๋ฃ๋๋ฉด ์๋ฃ ๋ ์ฌ์ค์ ํต์งํด ์ฃผ์ด์ผ ํ๋ค.
20.
์๋ฃ ํต์ง ๋ฐฉ๋ฒ? ๋ฐฉ๋ฒ
์์ฝ ๋๋ฐ์ด์ค ์ปค๋ ์ค๋ธ์ ํธ ์๊ทธ๋๋ง โข ๋จ์ผ์ ์ฅ์น์ ๋ํด ๋ค์์ I/O ์์ฒญ ์ ํฉํ์ง ์๋ค. โข ํน์ ์ค๋ ๋๊ฐ I/O ์์ฒญ์ ์ฝ์ ํ๊ณ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์๋ฃ ํต์ง๋ฅผ ์์ ํ ์ ์๋ค. ์ด๋ฒคํธ ์ปค๋ ์ค๋ธ์ ํธ์ ์๊ทธ๋๋ง โข ๋จ์ผ์ ์ฅ์น์ ๋ํด ๋ค์์ I/O ์์ฒญ์ ์ํํ ์ ์๋ค. โข ํน์ ์ค๋ ๋๊ฐ I/O ์์ฒญ์ ์ฝ์ ํ๊ณ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์๋ฃ ํต์ง๋ฅผ ์์ ํ ์ ์๋ค. ์ผ๋ฌํฐ๋ธ I/O ์ฌ์ฉ โข ๋จ์ผ์ ์ฅ์น์ ๋ํด ๋ค์์ I/O ์์ฒญ์ ์ํํ ์ ์๋ค. โข ํญ์ I/O ์์ฒญ์ ์ฝ์ ํ ์ค๋ ๋๊ฐ ์๋ฃ ํต์ง๋ฅผ ์์ ํ๋ค. I/O ์ปดํ๋ฆฌ์ ํฌํธ ์ฌ์ฉ โข ๋จ์ผ์ ์ฅ์น์ ๋ํด ๋ค์์ I/O ์์ฒญ์ ์ํํ ์ ์๋ค. โข ํน์ ์ค๋ ๋๊ฐ I/O ์์ฒญ์ ์ฝ์ ํ๊ณ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์๋ฃ ํต์ง๋ฅผ ์์ ํ ์ ์๋ค. โข ์ด ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ํ์ฅ์ฑ์ด ๋ฐ์ด๋๊ณ ์ ์ฐ์ฑ์ด ์ ๋ค.
21.
๋๋ฐ์ด์ค ์ปค๋ ์ค๋ธ์ ํธ์
์๊ทธ๋๋ง โข ๋๋ฐ์ด์ค ์ปค๋ ์ค๋ธ์ ํธ์ ์๊ทธ๋๊ณผ ๋ ผ์๊ทธ๋ ์ํ๋ฅผ ์ด์ฉ. HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...) BYTE bBuffer[100]; OVERLAPPED o = { 0 }; o.Offset = 345; BOOL bReadDone = ReadFile(hFile, bBuffer, 100, NULL, &o); DWORD dwError = GetLastError(); If (!bReadDone && (dwError == ERROR_IO_PENDING)) { WaitForSingleObject(hFile, INFINITE); bReadDone = TRUE; } If (bReadDone) { ... }
22.
๋๋ฐ์ด์ค ์ปค๋ ์ค๋ธ์ ํธ์
์๊ทธ๋๋ง โข ๋น๋๊ธฐ I/O๋ฅผ ์ํด ๋๋ฐ์ด์ค๋ฅผ ์ด ๋ ๋ฐ๋์ FILE_FLAG_OVERLAPPED โข OVERLAPPED ๊ตฌ์กฐ์ฒด์ Offset, OffsetHigh, hEvent ์ด๊ธฐํ โข bReadDone์ ํ์ธํ ๋๊ธฐ์ ์ผ๋ก ์ํ๋์๋์ง ํ์ธํ๊ณ ๋๊ธฐ์ ์ด ์๋ ๋ผ๋ฉด ๋น๋๊ธฐ์ ์ผ๋ก I/O ์์ ์ด ์์ฒญ๋์๋์ง ํ์ธ โข ์ฝ๊ธฐ ์์ ์๋ฃ ์ bBuffer์๋ ์ฝ์ ๋ฐ์ดํฐ๊ฐ, OVERLAPPED ๊ตฌ์กฐ์ฒด์ Internal ๋ฉค๋ฒ์๋ Error์ฝ๋๊ฐ, InternalHigh ๋ฉค๋ฒ์๋ ์ฝ์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ ๊ฐ ๊ฐ๊ฐ ์ ์ฅ๋๋ค.
23.
๋๋ฐ์ด์ค ์ปค๋ ์ค๋ธ์ ํธ์
์๊ทธ๋๋ง์ ๋ฌธ์ ? HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...) BYTE bReadBuffer[100]; OVERLAPPED oRead = { 0 }; ReadFile(hFile, bReadBuffer, 100, NULL, &oRead); BYTE bWriteBuffer[10] = {0, 1, 2, 3, ... }; OVERLAPPED oWrite = { 0 }; oWrite.Offset = 10; WirteFile(hFile, bWriteBuffer, _countof(bWriteBuffer), NULL, &oWrite); ... WaitForSingleObject(hFile, INFINITE) // ???
24.
์ด๋ฒคํธ ์ปค๋ ์ค๋ธ์ ํธ์
์๊ทธ๋๋ง HANDLE hHandle = CreateFile(..., FILE_FLAG_OVERLAPPED, ...) BYTE bReadBuffer[100]; OVERLAPPED oRead = { 0 }; oRead.hEvent = CreateEvent(...); ReadFile(hFile, bReadBuffer, 100, NULL, &oRead); BYTE bWriteBuffer[10] = {0, 1, 2, 3, ... }; OVERLAPPED oWrite = { 0 }; oWirte.hEvent = CreateEvent(...); WirteFile(hFile, bWriteBuffer, _countof(bWriteBuffer), NULL, &oWrite);
25.
์ด๋ฒคํธ ์ปค๋ ์ค๋ธ์ ํธ์
์๊ทธ๋๋ง HANDLE h[2]; h[0] = oRead.hEvent; h[1] = oWrite.hEvent; DWORD dw = WaitForMultipleObjects(2, h, FALSE, INFINITE); Switch (dw โ WAIT_OBJECT_0) { case 0: // ์ฝ๊ธฐ ์์ ์๋ฃ break; case 1: // ์ฐ๊ธฐ ์์ ์๋ฃ break; } ๏ผ GetOverlappedResult(...) ๏ผ ํ์ง๋ง ํ์ฌ๋ Internal๊ณผ InternalHigh์ด ๋ฌธ์ํ
26.
์ผ๋ฌํฐ๋ธ I/O ๏ผ APC(Asynchronous
Procedure Call) ๏ผ ์ค๋ ๋๊ฐ ์์ฑ๋๋ฉด APC ํ๋ผ ๋ถ๋ฆฌ๋ ํ๊ฐ ํ๋์ฉ ์์ฑ ๏ผ ReadFileEX / WriteFileEX BOOL ReadFileEx ( HANDLE hFile, PVOID pvBuffer, DWORD nNumByteToRead, OVERLAPPED* pOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE pfnRoutine); VOID WINAPI CompletionRoutine ( DWORD dwError, DWORD pwNumBytes, OVERLAPPED* po);
27.
์ผ๋ฌํฐ๋ธ I/O hFile =
CreateFile(..., FILE_FLAG_OVERLAPPED, ...); ReadFileEx(hFile, ...); WriteFileEx(hFile, ...); ReadFileEx(hFile, ...); SomeFunc(); Write I/O Read I/O Read I/O ๏ผ ์ค๋ ๋๋ฅผ ์ธํฐ๋ฝํธ ๊ฐ๋ฅํ ์ํ๊ฐ ๋์์์ ์๋ ค์ค์ผํ๋ค. ๏ผ ์ฆ, ์ค๋ ๋๋ฅผ ์ผ๋ฌํฐ๋ธ ์ํ๋ก ๋ณ๊ฒฝ
28.
์ผ๋ฌํฐ๋ธ I/O ๏ผ ์ผ๋ฌํฐ๋ธ
์ํ๋ก ๋ณ๊ฒฝํ ์ ์๋ ํจ์ โข SleepEx / WaitForSingleObjectEx / WaitForMultipleObjectsEx / SignalObjectAndWait / GetQueuedCompletionStatusEx / MsgWaitForMultipleObjectsEx ๏ผ ์ผ๋ฌํฐ๋ธ I/O์ ์ฅ๋จ์ โข ์ฅ์ โข ๋น๋๊ธฐ ํธ์ถ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ค๋ค..ใ .ใ โข ๋จ์ผ ์ค๋ ๋๋ผ์ ๋๊ธฐํ ์ฒ๋ฆฌ๋ฅผ ํ ํ์๊ฐ ์๋ค. ใ .ใ โข ๋จ์ โข ์ฝ๋ฐฑํจ์ โข ์ฐ๋ ๋ฉ ๋ฌธ์
29.
I/O ์ปดํ๋ฆฌ์ ํฌํธ โข
์ปจ์ปค๋ฐํธ ๋ชจ๋ธ โข ์ปจ์ปค๋ฐํธ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ์๋น์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋์ฐ์์ ๊ตฌํ ํ์์ ๋ ์ฑ๋ฅ์ด ๊ธฐ๋๋งํผ ๋์ค์ง ์์ ๊ฐ์ ํด์ ๋์จ ๊ฒฐ๊ณผ๋ก ํ์ด๋ ๊ฒ์ด ๋ฐ๋ก I/O ์ปดํ๋ฆฌ์ ํฌํธ ์ปค๋ ์ค๋ธ์ ํธ์ด๋ค โข I/O ์ปดํ๋ฆฌ์ ํฌํธ ์์ฑ HANDLE CreateIoCompletionPort( HANDLE hFile, HANDLE hExistingCompletionPort, ULONG_PTR CompletionKey, DWORD dwNumberOfConcurrentThreads);
30.
I/O ์ปดํ๋ฆฌ์ ํฌํธ
HANDLE CreateNewCompletionPort (DWORD dwThreads) { return CreateIoCompletionPort( INVALID_HANDLE_VALUE, NULL, 0, dwThreads); | โข dwThreads โข ๋์ผ ์๊ฐ์ ๋์์ ์ํํ ์ ์๋ ์ค๋ ๋์ ์ต๋ ๊ฐ์ โข ๋ณดํต์ CPU ๊ฐ์๋งํผ์ ์ ๋ ฅ
31.
I/O ์ปดํ๋ฆฌ์ ํฌํธ โข
I/O ์ปดํ๋ฆฌ์ ํฌํธ ์ฐ๊ณ HANDLE CreateIoCompletionPort( HANDLE hFile, HANDLE hExistingCompletionPort, ULONG_PTR CompletionKey, DWORD dwNumberOfConcurrentThreads); โข hFile : ์ฅ์น์ ๋ํ ํธ๋ค (ํ์ผ, ์์ผ, ๋ฉ์ผ์ฌ๋กฏ, ํ์ดํ๋ฑ) โข hExistingCompletionPort : ์์ฑํด ๋ I/O ์ปดํ๋ฆฌ์ ํฌํธ ํธ๋ค โข CompletionKey : ์ปดํ๋ฆฌ์ ํค (์ฌ์ฉ์๊ฐ ์์๋ก ๊ฒฐ์ ํ ์ ์๋ค.)
32.
I/O ์ปดํ๋ฆฌ์ ํฌํธ โข
I/O ์ปดํ๋ฆฌ์ ํฌํธ ์ฐ๊ณ BOOL AssociateDeviceWithCompletionPort( HANDLE hDevice, HANDLE hExistingCompletionPort, ULONG_PTR CompletionKey,) { HANDLE h = CreateIoCompletionPort(hDevice, hCompletionPort, dwCompletionKey, 0); return (h == hCompletionPort); }
33.
I/O ์ปดํ๋ฆฌ์ ํฌํธ
โข ์ฅ์น ๋ฆฌ์คํธ โข I/O ์ปดํ๋ฆฌ์ ํ โข ๋๊ธฐ ์ค๋ ๋ ํ โข ๋ฆด๋ฆฌ์ฆ ์ค๋ ๋ ๋ฆฌ์คํธ โข ์ผ์ ์ ์ง ์ค๋ ๋ ๋ฆฌ์คํธ
34.
I/O ์ปดํ๋ฆฌ์ ํฌํธ ์ปค๋
๋ชจ๋ Device List I/O Request List I/O Completion Queue ์ ์ ๋ชจ๋ WSARecv() WSASend() GetQueuedCompletionS CreateCompletionPort ReadFileEX() tatus() โฆ
35.
I/O ์ปดํ๋ฆฌ์ ํฌํธ๋ฅผ
์ด์ฉํ ์ํคํ ์ณ ์ค๊ณ โข ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ค๋ ๋ ํ โข ํ ๋ด์ ๋ช ๊ฐ์ ์ค๋ ๋๋ฅผ ์์ฑํด ๋๋ ๊ฒ์ด ์ข์๊ฐ? (๋ค์๋ฐํ์๋ถ) โข ์๋ฃ ํต์ง๊ฐ ์ ๋ฌ ๋์์ ๋ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ค๋ ๋๋ฅผ ๋๊ธฐ ์ํ๋ก!! BOOL GetQueuedCompletionStatus( HANDLE hCompletionPort, PDWORD pdwNumberOfBytesTransferred, PULONG_PTR pCompletionKey, OVERLAPPED** ppOverlapped, DWORD dwMilliseconds);
36.
I/O ์ปดํ๋ฆฌ์ ํฌํธ๋ฅผ
์ด์ฉํ ์ํคํ ์ณ ์ค๊ณ โข ๋๊ธฐ ์ค๋ ๋ ํ โข ํ์ ์ ์ถ(LIFO) ๋ฐฉ์์ผ๋ก ์ค๋ ๋๋ฅผ ๊นจ์ด๋ค. โข ๋ฆด๋ฆฌ์ฆ ์ค๋ ๋ ๋ฆฌ์คํธ โข I/O ์ปดํ๋ฆฌ์ ํฌํธ๊ฐ ๋๊ธฐ ์ค๋ ๋ ํ์ ์๋ ์ค๋ ๋๋ฅผ ๊นจ์ฐ๋ ๊ฒฝ์ฐ โข ์ผ์ ์ ์ง๋์๋ ์ค๋ ๋๊ฐ ๋ค์ ๊นจ์ด๋ฌ์ ๊ฒฝ์ฐ โข ์ผ์ ์ ์ง ์ค๋ ๋ ๋ฆฌ์คํธ โข ์ํ ์ค์ด๋ ์ค๋ ๋๊ฐ ์ค๋ ๋๋ฅผ ์ ์ง์ํค๋ ํจ์๋ฅผ ํธ์ถ โข ์ ์ง ์ค์ด๋ ์ค๋ ๋๊ฐ ๊นจ์ด๋๋ฉด ๋ฆด๋ฆฌ์ฆ ์ค๋ ๋ ๋ฆฌ์คํธ๋ก ์ฝ์
37.
I/O ์ปดํ๋ฆฌ์ ํฌํธ์
์ค๋ ๋ ํ ๊ด๋ฆฌ๋ฐฉ๋ฒ โข I/O ์ปดํ๋ฆฌ์ ํฌํธ ์์ฑํ ๋ ์ง์ ํ ์ค๋ ๋ ๊ฐ์ ์ด์์ ์ด๊ณผํ ์ ์๋ค โข ๊ทผ๋ฐ ์?! ์ด๋ณด๋ค ๋ง์ ์ค๋ ๋๋ฅผ ํ๋ก ๊ด๋ฆฌํด์ผ ํ๋๊ฐ? โข ๋ฆด๋ฆฌ์ฆ ์ค๋ ๋ ๋ฆฌ์คํธ โข ๋๊ธฐ ์ค๋ ๋ ๋ฆฌ์คํธ ๏ผ I/O ์ปดํ๋ฆฌ์ ์ฌ์ฉ ๋ชฉ์ ๏ผ CPU๊ฐ ๊ณ์ํด์ ์์ ์ ์ํํ๋๋ก ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ
Jetzt herunterladen