Using MSFT Uncertified Play To DLNA devices with W8 Modern UI Apps

 

Today I’m one step closer to giving up my iPad as my Surface RT can now perform one more task on my must have list. Full DLNA Play To sharing from the Charms bar/Devices for non Microsoft certified devices was a biggie on my list.

A little history: In Windows 7, Microsoft introduced Play To which used the DLNA spec to let me send media from my computer to a DLNA DMR. I had so so results with my 2009 Samsung TV due to poor transcoding support, but great results with my WDTV Live Hub and my SONOS speakers. The so-so experience on my TV and the not wonderful experience on other device by many many people caused Microsoft to rethink their strategy for Windows 8 and come up with their own certification process for devices to “insure” a good experience. This translated into a restrictive policy for Windows 8 Start Screen/Metro/Modern UI Apps where only MS certified devices would appear in an applications Settings: Devices menu. What this meant for me was that I could no longer send music to my SONOS speakers from these Apps, although I could do so from the classic Desktop-Explorer-Libraries view. I certainly was annoyed and disappointed. To me, this meant that Microsoft was going down the closed eco-system route and emulating Apple. DLNA is an open standard, and there are tiered requirements. MS was seeking to bulletproof the experience, but in the process left many of us hanging. I certainly wished for, and expressed my desire for, an advanced user setting to “Show non MS certified devices”, and I still think that is the necessary change that Microsoft needs to make.

Others in the geek world wanted a way to use their non certified devices and Rafael Rivera came up with a way for x86 based Windows 8 computers to do just this. He didn’t find a way to do this on Surface RT. And that’s where I most wanted this functionality. Note: The information that follows applies to Windows 8/Windows RT and I have tested on my Surface RT, my Surface Pro, and a Windows 8 desktop.

So I started looking at the registry. What I am about to describe works on both my Surface and Surface RT tablets but it is the only way so far to enable this functionality on RT.

Before you start,verify that your device supports Play To in the classic desktop/explorer/libraries interface. To do this, right click a supported media file in a classic library and verify the Play To menu appears and that you can successfully send to your target device and it plays the media you selected.

There is an interesting key in the registry:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Device Association Framework\InboxProviders

\DAFUPnPProvider\Plugins\DlnaMetadataProvider\DeviceShims]

When expanded, it shows devices from just a few companies.

 

providers

Why only five vendors?

If you export the DeviceShims reg key, things get interesting. For example, specific vendors and specific devices have entries, such as:

 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Device Association Framework\InboxProviders

\DAFUPnPProvider\Plugins\DlnaMetadataProvider\DeviceShims\ONKYO]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Device Association Framework\InboxProviders

\DAFUPnPProvider\Plugins\DlnaMetadataProvider\DeviceShims\ONKYO\HT-R690]
"IsLegacyDMR"=dword:00000001

 

Do you find the IsLegacyDMR an interesting dword? If you look at the entire exported key, it is one of those AHA moments.

What follow is for geeks only. Use at your own risk. Back up your registry and back up the specific key. And use what follows entirely at your own risk. Obviously you will want to at least use the touch/type keyboard for this process.

First, the DeviceShims key is “protected” and you will need to take ownership and give yourself full control.

1. Right click the DeviceShims key, then click Permissions.

2. Click the Advanced tab, then click the Change hyperlink next to the Owner. You can use your Microsoft account for this.

3. Apply

4. Give users (pcname\username) full control

5. Reboot

Second, you will need to determine the exact information on the device(s) you want to empower to use the Start Screen Play To functionality.

1. Go to the classic desktop and classic explorer

2. Find your device in the network list

3. Right click the device and select properties

4. You will need the Manufacturer and the Model, case sensitive. In the example below, the Manufacturer is Sonos, Inc. and the Model is Sonos Play:5

 

devprops

Third, You need to create the registry values for your device(s).

1. Create a new key under DeviceShims with the manufacturer (Sonos, Inc. in my example)

2. Under the just created key, create a new subkey for the model (Sonos Play:5 in my example).

3. Create a 32 bit dword IsLegacyDMR and set the HEX value to 1

 

If you export the key, the newly created value would look like

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Device Association Framework\InboxProviders\DAFUPnPProvider\Plugins\DlnaMetadataProvider\DeviceShims\Sonos, Inc.]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Device Association Framework\InboxProviders\DAFUPnPProvider\Plugins\DlnaMetadataProvider\DeviceShims\Sonos, Inc.\Sonos PLAY:5]
"IsLegacyDMR"=dword:00000001

 

4. Reboot

End result:

success

Here’s my Surface RT happily sending the output of the PRadio App (Pandora) to my Sonos.