Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Windows Cloud Files API で遊びたかった
Search
ssmylh
April 13, 2025
0
3.1k
Windows Cloud Files API で遊びたかった
2025/04/12
鳴子温泉での開発合宿
ssmylh
April 13, 2025
Tweet
Share
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
Paper Plane
katiecoart
PRO
0
46k
First, design no harm
axbom
PRO
2
1.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
WCS-LA-2024
lcolladotor
0
450
HDC tutorial
michielstock
1
390
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
How to Ace a Technical Interview
jacobian
281
24k
The Pragmatic Product Professional
lauravandoore
37
7.1k
The SEO identity crisis: Don't let AI make you average
varn
0
290
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
Transcript
Windows Cloud Files API Ͱ༡ͼ͔ͨͬͨ @ssmylh
Cloud Files API ͱ • Windows 10 όʔδϣϯ 1709 (Fall
Creators Update) Ͱಋೖ͞Εͨɻ • Windows Ͱ OneDrive ͷ༷ʹϦϞʔτͷετϨʔδͱϩʔΧϧϑΝΠϧγεςϜΛ ౷߹͢Δҝͷ APIɻ • ϦϞʔτ্ͷϑΝΠϧΛϩʔΧϧϑΝΠϧγεςϜʹγʔϜϨεʹ౷߹͠ɺϩʔ ΧϧϑΝΠϧͷ༷ʹૢ࡞ՄೳʹͳΔɻ
༻ޠͱ͔ (1) • ಉظϧʔτ ◦ ಉظରͷϧʔτɻΤΫεϓϩʔϥͷπϦʔʹදࣔ͞ΕΔɻ • ΫϥυಉظϓϩόΠμʔ ◦ ...
༻ޠͱ͔ (2) • ϓϨʔεϗϧμʔϑΝΠϧ ◦ ϑΝΠϧγεςϜϔομʔʹରͯ͠ 1 KB ͷΈΛফඅ͠ɺ௨ৗͷ༻݅ԼͰ ʮશͳϑΝΠϧʯʹࣗಈతʹϋΠυϨʔτ͢Δɻ
• ϑΝΠϧͷঢ়ଶ ◦ ϓϨʔεϗϧμʔϑΝΠϧ ◦ શͳϑΝΠϧ ◦ ϐϯཹΊ͞ΕͨશͳϑΝΠϧ
API ܊ • Cloud Filter API (Win32 API) ◦ ϢʔβʔϞʔυͱϑΝΠϧγεςϜͷڥքͰػೳ͠ɺϓϨʔεϗϧμʔϑΝ
ΠϧͱσΟϨΫτϦͷ࡞ͱཧΛॲཧɻ • Windows.Storage.Provider (WinRT API) ◦ ಉظϓϩόΠμʔΛߏ͠ɺಉظϧʔτΛOSʹొՄೳɻ
αϙʔτ͞Ε͍ͯΔػೳ • ϓϨʔεϗϧμʔϑΝΠϧ • ඪ४Խ͞Εͨಉظϧʔτͷొ • γΣϧ౷߹ػೳ ◦ ৭ʑ… <-----
ࢼ͔ͨͬͨ͠ͱ͜Ζ
ެࣜαϯϓϧ CloudMirror αϯϓϧ • C++ • ͋ΔϩʔΧϧϑΥϧμʔΛϛϥʔ͢Δɻ • ϦϞʔτͷετϨʔδͱͯ͠ѻ͏ϑΥϧμʔͱಉظϧʔτͯ͠ѻ͏ϑΥϧμʔΛ ొ͢Δɻ
ެࣜαϯϓϧͷҝͷڥߏங • ࢲͷڥ ◦ MacBook Air M2 2022 ͔͜͜Β͕ࠈͷ࢝·Γ…
Windows ڥߏங ҎԼͷཧ༝͔Β UTM Λબ͠ɺɹWindows 11 ԾϚγϯΛߏஙɻ • ແྉ ◦
Parallels Desktop for Mac ༗ྉɻ • Apple γϦίϯରԠ Oracle VirtualBox Windows ະରԠɻ
ެࣜαϯϓϧΛಈ͔͢ (߹॓ͷલ) ಉظϧʔτʹදࣔ͞Εͨ 1ͭͷϑΝΠϧ͕։͚ͨͷͰɺ·͍͍͊ͩΖ͏ͱࢥͬͯ߹॓ʹ Μͩɻ
ެࣜαϯϓϧΛಈ͔͢ (߹॓) ಉظϧʔτʹϑΝΠϧ͕දࣔ͞ΕΔ͕ɺ։͚Δ࣌͋Δ͕ɺ݁ߏͳසͰΤϥʔ͕ग़ Δɻ
σόοά (ྦ) • ରϑΝΠϧͷಡΈऔΓॲཧͷҎԼͷՕॴͰΤϥʔͱͳ͍ͬͯͨɻ ◦ https://github.com/microsoft/Windows-classic-samples/ blob/2b94df5730177ec27e726b60017c01c97ef1a8fb/Samples/CloudMirror/ CloudMirror/FileCopierWithProgress.cpp#L139 • Win32
ͷඇಉظ I/O APIʹͳ͡Έ͕ແ͍ͷͰযΔ…
͠…ʂ • ެࣜαϯϓϧͷରϓϥοτϑΥʔϜ x86 ͚ɻ • ࣗͷ Windows ԾϚγϯ ARM64ɻ
• ެࣜαϯϓϧͷରϓϥοτϑΥʔϜΛ ARM64 ʹͯ͠Ϗϧυ͢Ε…!
ಈ͔ͳ͍ʂ • શ͘ঢ়گ͕มΘΒͣɻ • มΘͬͨͷա͗ڈͬͨ࣌ؒͷΈ… • ઢΛม͑ͯɺCloud Files API Λ༻ͨ͠
C# ͷ OSS (cfapiSync) Λಈ͔ͯ͠Έ Δɻ
ಈ͘ʂ • ͭ·ΓɺެࣜαϯϓϧʹԿ͔͓͔͍͠ͱ͜Ζ͕͋Δʁ • ެࣜαϯϓϧͷඇಉظಡΈऔΓͰ༻͍ͯ͠Δ ֤ API Λௐࠪɻ
͕͓͔͍͜͜͠ʁ • ੈؒͰΑ͋͘Δαϯϓϧ ◦ ReadFile + GetOverlappedResult ◦ ReadFileEx +
ྃϧʔνϯ • ެࣜαϯϓϧ ◦ ReadFileEx + ྃϧʔνϯ + GetOverlappedResult
ಈ͍ͨʂ ެࣜαϯϓϧͷ GetOverlappedResult ͷݺͼग़͠ Λআͨ͠Βಈ͍ͨʂ
Θͨ͠ͷ࣌ؒ ྦɻ
·ͱΊ • ຊ͏গ͠ຊདྷͷಉظΤϯδϯ෦Λ͍ͬͯ͡Έ͔ͨͬͨɻ • Command Ωʔ͕ Windows ΩʔʹׂΓ͋ͨͬͯͨͷͰɺλΠϓϛεසൃɻ Windows ͷ։ൃ
Windows ࣮ػ͕͍͍ͳɻ
ࢀߟ • ϓϨʔεϗϧμʔ ϑΝΠϧΛαϙʔτ͢ΔΫϥυಉظΤϯδϯΛߏங͢Δ • CloudMirror αϯϓϧ • cfapiSync