Building Metro style apps that connect to specialized devices 11/8/2018 8:13 PM HW-747T Building Metro style apps that connect to specialized devices George Roussos Senior Program Manager Microsoft Corporation Nar Ganapathy Partner SDE Microsoft Corporation © 2010 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.
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?
Extensible Built-in Experiences 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
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 architecture
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 app container Driver Package Metro style app (HTML/JS, C#,C++) Windows. Networking Windows. Storage Windows Runtime Component (C++) DeviceIoControl Windows Portable Device (WPD) Device Metadata Device Broker I/O Manager Application Manifest Driver Device Microsoft Partner
Windows Portable Device (WPD) Specialized device APIs and access models Category API Family Access Model Specialized Portable Windows Portable Device (WPD) Both Storage Windows.Storage Open Networked Windows.Networking Open Other DeviceIOControl Restricted
Windows portable device (WPD) APIs
Windows portable device 11/8/2018 8:13 PM demo Windows portable device Based upon the portable device services SDK sample Nokia N8 © 2010 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.
(optional) Windows Runtime Component (C++) WPD APIs app container Application Manifest <Capabilities> <DeviceCapability Name=“Device Service GUID” /> </Capabilities> Metro style app (optional) Windows Runtime Component (C++) WPD APIs Device Metadata SoftwareInfo.xml ,,,,,, <DeviceCompanionApplications> <Package>….</Package> </DeviceCompanionApplications> Optional Driver Portable Device MTP or MSC Class Driver Microsoft Partner
Storage device APIs
Metro style app (HTML/JS, C#, C++) Windows.Storage APIs 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
Network device APIs
Windows.Networking APIs app container Application Manifest <Capabilities> Internet </Capabilities> Metro style app (HTML/JS, C#, C++) Windows.Networking APIs Device Metadata SoftwareInfo.xml ,,,,,, <DeviceCompanionApplications> <Package>….</Package> </DeviceCompanionApplications> Networked PNP-X Device Microsoft Partner
DeviceIOControl APIs
DeviceIOControl APIs app container Application Manifest <Capabilities> <DeviceCapability Name=“GUID for custom device interface class” /> </Capabilities> Metro style app (e.g., Microsoft.SDKSamples.Mofx2App) Windows Runtime Component (C++) CreateDeviceAccessInstance & DeviceIoControl API 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 11/8/2018 8:13 PM demo DeviceIOControl SDK sample: accessing a custom device WDK sample: OSRUSBFX2 OSR USB FX2 learning kit © 2010 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.
Recap
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 feedback http://bldw.in/SessionFeedback
11/8/2018 8:13 PM © 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. © 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.