Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Windows Cloud Files API で遊びたかった
Search
ssmylh
April 13, 2025
4.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Windows Cloud Files API で遊びたかった
2025/04/12
鳴子温泉での開発合宿
ssmylh
April 13, 2025
More Decks by ssmylh
See All by ssmylh
Bluetooth Low Energy ことはじめ
ssmylh
0
1.5k
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
Side Projects
sachag
456
43k
How STYLIGHT went responsive
nonsquared
100
6.3k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Ruling the World: When Life Gets Gamed
codingconduct
0
400
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
520
Faster Mobile Websites
deanohume
310
32k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
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