330 likes | 865 Views
HW-747T. Building Metro style apps that connect to specialized devices. George Roussos Senior Program Manager Microsoft Corporation. Nar Ganapathy Partner SDE Microsoft Corporation. Agenda. What is a specialized device? Differentiating your device with an Metro style app
E N D
HW-747T Building Metro style apps that connect to specialized devices George Roussos Senior Program Manager Microsoft Corporation Nar Ganapathy Partner SDE Microsoft Corporation
Agenda • What is a specialized device? • Differentiating your device with an Metro style app • Specialized device access models • Specialized device access APIs You’ll leave with an understanding of how to… • Access specialized devices from Metro style apps • Choose the right API and access model for your device
What is a specialized device? Devices with Extensible Built-in Experiences Printers Webcam MB SIM Specialized Devices Portable Storage Networked Other
Windows 8 provides flexible APIs to build a Metro style app that showcases your device’s unique functionality.
Why… • Device makers want the flexibility to differentiate • Not every device can be covered by a built-in experience or API in Windows 8 • So we enabled you to create your own experience as a Metro style app
Customer benefits • App is automatically installed when device connects • Can experience the richness of device with a Metro style app
Device maker benefits • A Metro style app can access your device’s unique functionality • Windows 8 installs your app when your device is connected • You can control 100% of pixels displayed • You can control which Metro style apps access your device
Specialized device access models Open device access • Many apps can access device • Example devices: camera, smartphone, eBook reader Restricted device access • Access restricted to app(s) declared in device metadata • Example device: credit-card reader
Device access for desktop apps App Process App SetupDi API WPD HID WinUSB CreateFile/DeviceIoControl I/O Manager Driver Device Microsoft Partner
Comparison with Metro style app model Desktop model Application A Application B I/O manager – access check per user Driver Device Microsoft Partner
Comparison with Metro style app model Metro style model Metro style app A Metro style app B Device Access Broker I/O manager – access check per user Driver Device Microsoft Partner
Specialized device access for Metro style apps Driver Package app container Metro style app (HTML/JS, C#,C++) Windows.Storage Windows.Networking Windows Runtime Component (C++) DeviceIoControl Windows Portable Device (WPD) Device Metadata Device Broker I/O Manager Application Manifest Driver Device Microsoft Partner
Specialized device APIs and access models Category API Family Access Model Portable Windows Portable Device (WPD) Both Specialized Storage Windows.Storage Open Networked Windows.Networking Open Other DeviceIOControl Restricted
demo Windows portable device Based upon the portable device services SDK sample Nokia N8
WPD APIs Application Manifest <Capabilities> <DeviceCapability Name=“Device Service GUID” /> </Capabilities> app container Metro style app (optional) Windows Runtime Component (C++) WPD APIs Device Metadata SoftwareInfo.xml ,,,,,, <DeviceCompanionApplications><Package>….</Package> </DeviceCompanionApplications> Optional Driver MTP or MSC Class Driver Portable Device Microsoft Partner
Windows.StorageAPIs app container Application Manifest <Capabilities> removableStorage </Capabilities> Metro style app (HTML/JS, C#, C++) Windows.Storage APIs Device Metadata SoftwareInfo.xml ,,,,,, <DeviceCompanionApplications><Package>….</Package> </DeviceCompanionApplications> Storage Device Microsoft Partner
Windows.NetworkingAPIs Application Manifest <Capabilities> Internet </Capabilities> app container Metro style app (HTML/JS, C#, C++) Windows.Networking APIs Device Metadata SoftwareInfo.xml ,,,,,, <DeviceCompanionApplications><Package>….</Package> </DeviceCompanionApplications> Networked PNP-X Device Microsoft Partner
DeviceIOControlAPIs app container Application Manifest <Capabilities> <DeviceCapabilityName=“GUID for custom device interface class” /> </Capabilities> Metro style app (e.g., Microsoft.SDKSamples.Mofx2App) Windows Runtime Component (C++) CreateDeviceAccessInstance & DeviceIoControlAPI Device Metadata SoftwareInfo.xml ,,,,,, <PrivilegedApplications>App Identity, AccessCustomDriver </PrivilegedApplications> Custom Driver Other Device Driver Package [OsrUsb_Interface_AddProperty] {Enable restricted interface} Microsoft Partner
demo DeviceIOControl SDK sample: accessing a custom device WDK sample: OSRUSBFX2 OSR USB FX2 learning kit
Recap • Differentiate your specialized device with a Metro style app • Windows 8 has four APIs families for Metro style apps to access the unique functionality of your device • Many apps can access your device in the open device access model • Device makers can control which Metro style apps access their device in the restricted device access model
Related sessions • [HW-322T] Designing great devices and drivers • [HW-283T] Introducing Metro style device apps • [HW-275T] Building and delivering a great Metro style app for your device • [PLAT-278T] Using connected devices in Metro style apps
Further reading and documentation • Windows Dev Center home • SDK Samples • Custom Device Access • Portable Device Services • Removable Storage • Whitepapers • Metro style Device App for Specialized Devices - Design Guide • The Device Software Lifecycle – Deployment, Acquisition, Uninstall and Update Process • Metro style Device App for Specialized Devices Custom Driver Access Design Guide • Metro style Device App for Specialized Devices Custom Driver Access Development Guide • Questions? • Please visit the forums on the Windows Dev Center at http://forums.dev.windows.com • For best response, please include the Build Session # in the title of your post
thank you Feedback and questions http://forums.dev.windows.com Session feedbackhttp://bldw.in/SessionFeedback
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.