enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Missing C# library classes?

Fri Jan 22, 2016 9:01 am

Using Microsoft Visual Studio 2015 (both Enterprise and Community on different machines give the same result) on Windows 10, two Raspberry Pi 2 B with Windows IoT running fine, one Pi headless, the other with Pi LCD display. I can compile, deploy and run the IoT samples without problems. The IoT mscorlib is installed, and reinstalling it with NuGet changes nothing. Adding the reference to Windows IoT Extensions for the UWP changes nothing.

When writing IoT apps, Visual Studio does not find commonly used C# network classes like Ping and Dns. The same code compiles and runs fine in Windows console and desktop applications on Windows 10. Among the other oddities I found, there is a File.Open() method but not a File.Close() on IoT. So how am I supposed to close a file? File.Flush() and File.Dispose() are still available, and calling them seems to close the file and make it readable afterwards, but it looks like a hack.

So what am I to do if I need simple network functionality like Ping and DNS lookup: look for third-party C# libraries of uncertain quality (suggestions welcome), or forget about Windows IoT and go with Linux on the Pi?

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Fri Jan 22, 2016 12:23 pm

You do need to be very careful about which class trees you use.

In most cases networking and the like are now in different trees to what they were before Windows 8.

See the FAQ for examples.
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Fri Jan 22, 2016 12:30 pm

ricl -> Thanks, but do you mean that the library structure for Windows 10 console/desktop and Windows 10 IoT is different? The same code that fails to compile for IoT compiles and runs successfully on a Windows 10 PC.

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Fri Jan 22, 2016 12:37 pm

Porting from the Desktop is non-trivial if the code is not Windows 8 compliant.

Best bet is to start a new project of the appropriate type and then add source files to that. Makes the environment one less thing to worry about.

Then networking and that sort of things are mostly under

#using Windows...

rather than previous Win 7

#using System....

Bad to mix the two I suspect.
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Fri Jan 22, 2016 1:57 pm

As far as I can see, most of the network stuff is now (C# 2015 on Windows 10) in System.Net, including class Dns. Class Ping and helper classes are in System.Net.NetworkInformation. But these classes are nowhere in the ARM libraries.

Does anyone know how/where to get a list of the .Net classes actually available in Windows 10 IoT?

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Fri Jan 22, 2016 2:04 pm

Those libraries are not available in IoT see

http://ms-iot.github.io/content/en-US/w ... leApis.htm

for the Windows unsupported APIs
---
Windows.ApplicationModel.Appointments.Appointment
Windows.ApplicationModel.Appointments.AppointmentInvitee
Windows.ApplicationModel.Appointments.AppointmentManager
Windows.ApplicationModel.Appointments.AppointmentOrganizer
Windows.ApplicationModel.Appointments.AppointmentProperties
Windows.ApplicationModel.Appointments.AppointmentRecurrence
Windows.ApplicationModel.Appointments.AppointmentsProvider.AppointmentsProviderLaunchActionVerbs
Windows.ApplicationModel.Appointments.FindAppointmentsOptions
Windows.ApplicationModel.Background.AlarmApplicationManager
Windows.ApplicationModel.Background.AppointmentStoreNotificationTrigger
Windows.ApplicationModel.Background.CachedFileUpdaterTrigger
Windows.ApplicationModel.Background.ChatMessageNotificationTrigger
Windows.ApplicationModel.Background.CommunicationBlockingAppSetAsActiveTrigger
Windows.ApplicationModel.Background.ContactStoreNotificationTrigger
Windows.ApplicationModel.Background.EmailStoreNotificationTrigger
Windows.ApplicationModel.Background.NetworkOperatorHotspotAuthenticationTrigger
Windows.ApplicationModel.Background.PhoneTrigger
Windows.ApplicationModel.Background.PushNotificationTrigger
Windows.ApplicationModel.Background.ToastNotificationActionTrigger
Windows.ApplicationModel.Background.ToastNotificationHistoryChangedTrigger
Windows.ApplicationModel.Calls.PhoneCallHistoryEntry
Windows.ApplicationModel.Calls.PhoneCallHistoryEntryAddress
Windows.ApplicationModel.Calls.PhoneCallHistoryEntryQueryOptions
Windows.ApplicationModel.Calls.PhoneCallHistoryManager
Windows.ApplicationModel.Calls.PhoneCallManager
Windows.ApplicationModel.Calls.PhoneDialOptions
Windows.ApplicationModel.Calls.PhoneLine
Windows.ApplicationModel.Calls.VideoCapabilitiesManager
Windows.ApplicationModel.Chat.ChatCapabilitiesManager
Windows.ApplicationModel.Chat.ChatConversationThreadingInfo
Windows.ApplicationModel.Chat.ChatMessage
Windows.ApplicationModel.Chat.ChatMessageAttachment
Windows.ApplicationModel.Chat.ChatMessageManager
Windows.ApplicationModel.Chat.ChatQueryOptions
Windows.ApplicationModel.Chat.ChatRecipientDeliveryInfo
Windows.ApplicationModel.Chat.RcsManager
Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingAccessManager
Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingAppManager
Windows.ApplicationModel.Contacts.Contact
Windows.ApplicationModel.Contacts.ContactAddress
Windows.ApplicationModel.Contacts.ContactAnnotation
Windows.ApplicationModel.Contacts.ContactCardOptions
Windows.ApplicationModel.Contacts.ContactConnectedServiceAccount
Windows.ApplicationModel.Contacts.ContactDate
Windows.ApplicationModel.Contacts.ContactEmail
Windows.ApplicationModel.Contacts.ContactField
Windows.ApplicationModel.Contacts.ContactFieldFactory
Windows.ApplicationModel.Contacts.ContactInstantMessageField
Windows.ApplicationModel.Contacts.ContactJobInfo
Windows.ApplicationModel.Contacts.ContactLaunchActionVerbs
Windows.ApplicationModel.Contacts.ContactLocationField
Windows.ApplicationModel.Contacts.ContactManager
Windows.ApplicationModel.Contacts.ContactPhone
Windows.ApplicationModel.Contacts.ContactPicker
Windows.ApplicationModel.Contacts.ContactQueryOptions
Windows.ApplicationModel.Contacts.ContactSignificantOther
Windows.ApplicationModel.Contacts.ContactWebsite
Windows.ApplicationModel.Contacts.FullContactCardOptions
Windows.ApplicationModel.Contacts.KnownContactField
Windows.ApplicationModel.Core.HolographicApplication
Windows.ApplicationModel.Email.EmailAttachment
Windows.ApplicationModel.Email.EmailFetchOptions
Windows.ApplicationModel.Email.EmailIrmTemplate
Windows.ApplicationModel.Email.EmailMailboxAutoReplySettings
Windows.ApplicationModel.Email.EmailManager
Windows.ApplicationModel.Email.EmailMeetingInfo
Windows.ApplicationModel.Email.EmailMessage
Windows.ApplicationModel.Email.EmailRecipient
Windows.ApplicationModel.Search.Core.SearchSuggestionManager
Windows.ApplicationModel.Search.LocalContentSuggestionSettings
Windows.ApplicationModel.Search.SearchQueryLinguisticDetails
Windows.ApplicationModel.Sync.Office365SyncConfiguration
Windows.ApplicationModel.UserDataAccounts.UserDataAccountManager
Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormatTypes
Windows.Devices.Enumeration.DevicePicker
Windows.Devices.Printers.Print3DDevice
Windows.Graphics.Display.StereoHeadMountedDisplay
Windows.Graphics.Holographic.HolographicSpace
Windows.Graphics.Printing.Print3DManager
Windows.Graphics.Printing.Print3DModelPackage
Windows.Management.Deployment.PackageVolume
Windows.Media.Casting.CastingDevicePicker
Windows.Media.ContentRestrictions.RatedContentDescription
Windows.Media.ContentRestrictions.RatedContentRestrictions
Windows.Media.ContentRestrictions.RatedContentRestrictionsImpl
Windows.Media.DialProtocol.DialDevicePicker
Windows.Media.MixedRealityCapture.MixedRealityCaptureAudioEffectDefinition
Windows.Media.MixedRealityCapture.MixedRealityCaptureVideoEffectDefinition
Windows.Media.Playback.BackgroundMediaPlayer
Windows.Media.Playback.PlaybackMediaMarker
Windows.Media.Playback.PlaybackMediaMarkerSequence
Windows.Media.Protection.ComponentRenewal
Windows.Media.Protection.PlayReady.PlayReadyDomainJoinServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyDomainLeaveServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyLicenseAcquisitionServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyMeteringReportServiceRequest
Windows.Media.Protection.PlayReady.PlayReadyRevocationServiceRequest
Windows.Media.Protection.PlayReady.PlayReadySoapMessage
Windows.Media.SpeechRecognition.SpeechRecognizer
Windows.Media.SystemMediaTransportControls
Windows.Networking.NetworkOperators.HotspotAuthenticationContext
Windows.Networking.NetworkOperators.MobileBroadbandAccountWatcher
Windows.Networking.NetworkOperators.ProvisioningAgent
Windows.Networking.NetworkOperators.WellKnownCSimFilePaths
Windows.Networking.NetworkOperators.WellKnownRuimFilePaths
Windows.Networking.NetworkOperators.WellKnownSimFilePaths
Windows.Networking.NetworkOperators.WellKnownUSimFilePaths
Windows.Networking.Vpn.VpnProfile
Windows.Security.Credentials.UI.CredentialPicker
Windows.Security.Credentials.UI.CredentialPickerOptions
Windows.Security.Credentials.UI.UserConsentVerifier
Windows.Security.EnterpriseData.DataProtectionManager
Windows.Security.EnterpriseData.FileProtectionManager
Windows.Security.EnterpriseData.FileRevocationManager
Windows.Security.EnterpriseData.ProtectionPolicyManager
Windows.Services.Maps.Guidance.GuidanceEngine
Windows.Services.Maps.Guidance.MapSensor
Windows.Services.Maps.Guidance.Traffic
Windows.Storage.Pickers.FileOpenPicker
Windows.Storage.Pickers.FileSavePicker
Windows.Storage.Pickers.FolderPicker
Windows.System.Energy.BackgroundEnergyManager
Windows.System.Energy.Diagnostics.BackgroundEnergyDiagnostics
Windows.System.Energy.Diagnostics.ForegroundEnergyDiagnostics
Windows.System.Energy.ForegroundEnergyManager
Windows.System.Profile.HardwareIdentification
Windows.System.Profile.KnownRetailInfoProperties
Windows.System.Profile.RetailInfo
Windows.System.Profile.SystemManufacturers.SmbiosInformation
Windows.System.UserProfile.AdvertisingManager
Windows.UI.Composition.Compositor
Windows.UI.Core.CoreInput
Windows.UI.Core.CoreWindowDialog
Windows.UI.Core.CoreWindowFlyout
Windows.UI.Input.Inking.InkManager
Windows.UI.Input.Inking.InkRecognizerContainer
Windows.UI.Popups.MessageDialog
Windows.UI.Xaml.Controls.ListPickerFlyout
Windows.UI.Xaml.Controls.Primitives.JumpListItemBackgroundConverter
Windows.UI.Xaml.Controls.Primitives.JumpListItemForegroundConverter
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Fri Jan 22, 2016 2:05 pm

And see also

http://ms-iot.github.io/content/en-US/w ... ngTool.htm

Windows 10 IoT Core API Porting Tool

Are the APIs that your current Win32 application or library depend on available in Windows 10 IoT Core? If not, are there equivalent APIs you can use? This tool can answer these questions for you and assist you in migrating your current Win32 applications and libraries to Windows IoT Core.
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

mimi123
Posts: 583
Joined: Thu Aug 22, 2013 3:32 pm

Re: Missing C# library classes?

Fri Jan 22, 2016 5:55 pm

enricosavazzi wrote:Using Microsoft Visual Studio 2015 (both Enterprise and Community on different machines give the same result) on Windows 10, two Raspberry Pi 2 B with Windows IoT running fine, one Pi headless, the other with Pi LCD display. I can compile, deploy and run the IoT samples without problems. The IoT mscorlib is installed, and reinstalling it with NuGet changes nothing. Adding the reference to Windows IoT Extensions for the UWP changes nothing.

When writing IoT apps, Visual Studio does not find commonly used C# network classes like Ping and Dns. The same code compiles and runs fine in Windows console and desktop applications on Windows 10. Among the other oddities I found, there is a File.Open() method but not a File.Close() on IoT. So how am I supposed to close a file? File.Flush() and File.Dispose() are still available, and calling them seems to close the file and make it readable afterwards, but it looks like a hack.

So what am I to do if I need simple network functionality like Ping and DNS lookup: look for third-party C# libraries of uncertain quality (suggestions welcome), or forget about Windows IoT and go with Linux on the Pi?
You may also use the full .NET framework from a Windows RT machine

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Fri Jan 22, 2016 6:39 pm

"You may also use the full .NET framework from a Windows RT machine"

True. But you can't run that on a Pi AFAIK.
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

mimi123
Posts: 583
Joined: Thu Aug 22, 2013 3:32 pm

Re: Missing C# library classes?

Sat Jan 23, 2016 8:35 am

ricl wrote:"You may also use the full .NET framework from a Windows RT machine"

True. But you can't run that on a Pi AFAIK.
You can run it with overriding the DLLs, but that isn't the subject :)

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Sat Jan 23, 2016 10:53 am

mimi123 wrote:
ricl wrote:"You may also use the full .NET framework from a Windows RT machine"

True. But you can't run that on a Pi AFAIK.
You can run it with overriding the DLLs, but that isn't the subject :)
Please example that as it may be of interest to people. Override DLLs?

Exactly what is it that you are saying can be done and how?
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Mon Jan 25, 2016 7:36 am

@ricl: Thanks, now it looks like we are headed somewhere (although I am still a bit unsure where, no doubt because I am new at this). I ran IotAPIPortingTool.exe on the program I wrote for Windows Console to test my code (where it compiles and runs fine, while the same code does not compile for UWP), and it displays the following message. The csv file it generated is empty except a header. This seems to indicate that the code should be IoT compatible:

Code: Select all

Summary for Users\Enrico\Documents\Visual Studio 2015\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
All DLLs are compatible
All functions are comptible


Compatible with Windows IoT Core!
Could it be that the Windows 10 IoT standard installation on the Pi is missing some key DLL(s)?

beta-tester
Posts: 1332
Joined: Fri Jan 04, 2013 1:57 pm
Location: de_DE

Re: Missing C# library classes?

Mon Jan 25, 2016 1:03 pm

enricosavazzi wrote: (where it compiles and runs fine, while the same code does not compile for UWP)
what exactly does the compiler tells you?
{ I only give negative feedback }
RPi B (256MB), B (512MB), B+, ZeroW; 2B; 3B, 3B+; 4B (4GB)

mimi123
Posts: 583
Joined: Thu Aug 22, 2013 3:32 pm

Re: Missing C# library classes?

Mon Jan 25, 2016 5:29 pm

ricl wrote:
mimi123 wrote:
ricl wrote:"You may also use the full .NET framework from a Windows RT machine"

True. But you can't run that on a Pi AFAIK.
You can run it with overriding the DLLs, but that isn't the subject :)
Please example that as it may be of interest to people. Override DLLs?

Exactly what is it that you are saying can be done and how?
The .NETFramework directory seems to be working when copied from an RT8.1 install. Windows Forms stuff starts after some registry keys stuff, but they don't seem to display(I need a way to display for Session 0 that isn't UWP)

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Mon Jan 25, 2016 8:27 pm

"You may also use the full .NET framework from a Windows RT machine"

"True. But you can't run that on a Pi AFAIK.
You can run it with overriding the DLLs, but that isn't the subject :)

Please example that as it may be of interest to people. Override DLLs?

Exactly what is it that you are saying can be done and how?"

The .NETFramework directory seems to be working when copied from an RT8.1 install. Windows Forms stuff starts after some registry keys stuff, but they don't seem to display(I need a way to display for Session 0 that isn't UWP)[/quote]

I don't doubt you can make somethings work. The problem is that you are probably stepping outside what MS will consider 'supported' so you may be very much on your own if that is the case.
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Wed Jan 27, 2016 12:33 pm

beta-tester wrote:
enricosavazzi wrote: (where it compiles and runs fine, while the same code does not compile for UWP)
what exactly does the compiler tells you?
The IDE complains that it cannot find classes Ping, Dns and a few other related ones.
The "light bulb" for potential fixes in the IDE does not offer to add "using" statements, the only alternatives are to create a class with that name, and similar suggestions.
In Solution Explorer, References, double-clicking on an available reference displays the tree of namespaces and classes in this reference. There are very few classes in System.Net (not Dns, anyway), and as far as I remember there is no System.Net.NetworkInformation (where Ping should be). In a Windows Console application, instead, double-clicking on the System reference in Solution Explorer shows a tree that contains all the expected namespaces and classes, including Dns and Ping.

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Wed Jan 27, 2016 12:44 pm

I tried a couple of alternatives to the Ping .Net class, without success.

One is to use raw sockets. Trying to create a raw socket in IoT causes a socket access rights violation, since raw sockets in Windows 10 can only be created while running a program as Administrator. There are plenty of Ping examples on the net that use raw sockets, but they are old, before the time when Microsoft tightened the access rights of raw sockets.

The other is to import a couple of Win32 functions from icmp.dll, which is present in all Windows version including IoT. The code works fine when run in Windows 10 on a PC. On a Pi with IoT, there are no errors or exceptions, but the data struct passed on to the dll, which after the call should contain the ICMP response, is returned untouched with whatever values I filled it before calling the exported function.

There is a ping.exe in IoT, and it works (as tested with PowerShell). I am thinking of calling it from my code, pipe its output to a file, and then parse the file. It is an ugly hack, but it seems to be a desperate way to get the job done. Same with nslookup.exe to get an IP address from domain name.

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Wed Jan 27, 2016 9:54 pm

There is an MS api to call Win32 from C# that handles all the piping to and from. I'll try and see if I can find the ref
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

mimi123
Posts: 583
Joined: Thu Aug 22, 2013 3:32 pm

Re: Missing C# library classes?

Thu Jan 28, 2016 11:40 am

ricl wrote:There is an MS api to call Win32 from C# that handles all the piping to and from. I'll try and see if I can find the ref
Did you try PInvoke?

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Thu Jan 28, 2016 12:58 pm

mimi123 wrote:
ricl wrote:There is an MS api to call Win32 from C# that handles all the piping to and from. I'll try and see if I can find the ref
Did you try PInvoke?
My attempt to use icmp.dll, described in an earlier post, did use the PInvoke (Platform Invoke) services. As I mentioned, it works in Windows 10 on a PC, but not in Windows 10 IoT on a Pi.

mimi123
Posts: 583
Joined: Thu Aug 22, 2013 3:32 pm

Re: Missing C# library classes?

Thu Jan 28, 2016 4:05 pm

enricosavazzi wrote:
mimi123 wrote:
ricl wrote:There is an MS api to call Win32 from C# that handles all the piping to and from. I'll try and see if I can find the ref
Did you try PInvoke?
My attempt to use icmp.dll, described in an earlier post, did use the PInvoke (Platform Invoke) services. As I mentioned, it works in Windows 10 on a PC, but not in Windows 10 IoT on a Pi.
Build with ARM instead of AnyCPU, it may fix something if you didn't do it already

ricl
Posts: 657
Joined: Wed Aug 26, 2015 11:55 am

Re: Missing C# library classes?

Thu Jan 28, 2016 7:48 pm

https://ms-iot.github.io/content/en-US/ ... Sample.htm

ProcessLauncher Sample

We’ll learn how to launch an external process (exe) from a Universal Windows Platform (UWP) app using Windows.System.ProcessLauncher API.

This is a headed sample. To better understand what headed mode is and how to configure your device to be headed, follow the instructions here.
ricl : F/gamma = ma : Law ii(a) : https://climatedatablog.wordpress.com/2016/01/02/an-energy-challenge-2016/ #AnEnergyChallenge2016

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Sat Jan 30, 2016 5:28 am

mimi123 wrote: Build with ARM instead of AnyCPU, it may fix something if you didn't do it already
Already done in above tests, with the results described above.

To make it clearer, the code does not work in a Windows Universal app (regardless of platform: Win32, Win64, ARM). It works if I copy the same code into a Windows Console or Windows Forms application.

enricosavazzi
Posts: 14
Joined: Thu Jan 21, 2016 10:06 am

Re: Missing C# library classes?

Sat Jan 30, 2016 7:40 am

I may have found an answer:
http://stackoverflow.com/questions/3475 ... g/34756693
I do not have time to test this right now, but it is interesting that these questions are being asked by others. If this is true, then we must forget what we already know about Windows networking APIs and use completely different network APIs in Windows Universal apps, including Windows IoT on the Raspberry Pi.

mimi123
Posts: 583
Joined: Thu Aug 22, 2013 3:32 pm

Re: Missing C# library classes?

Sat Jan 30, 2016 8:42 am

enricosavazzi wrote:
mimi123 wrote: Build with ARM instead of AnyCPU, it may fix something if you didn't do it already
Already done in above tests, with the results described above.

To make it clearer, the code does not work in a Windows Universal app (regardless of platform: Win32, Win64, ARM). It works if I copy the same code into a Windows Console or Windows Forms application.
Build a Console app and run that on a RPi, API not accessible from Universal

Return to “Windows 10 for IoT”