If you are having issues with Device Access and MetaData, the below steps will guide you into troubleshooting and understanding why you cannot connect your Windows Store Device app to your driver.
Firstly, I want to thank my colleague Eric W Hanson for contributing to the technical aspects of this blog.
To start off, you must enable testsigning on the system and reboot. Here are instructions on enabling testsigning: http://msdn.microsoft.com/en-us/library/windows/hardware/ff553484(v=vs.85).aspx
In short, to enable testsigning you run the command: Bcdedit.exe -set TESTSIGNING ON
To disable testsigning, you need to run: Bcdedit.exe -set TESTSIGNING OFF
If you don’t have test signing enabled on the system and haven’t rebooted your system since enabling it, the device metadata system won’t set the properties that enable device access. However, it will set other properties, so you may still see the fancy device icon which may be a false positive.
If enabling testsigning does not resolve the issue you can use TraceView on deviceaccess.dll. You can get TraceView from the Windows Driver Kit: http://msdn.microsoft.com/en-us/library/windows/hardware/ff553872(v=vs.85).aspx
Use TraceView from the WDK to view the error messages reported from deviceaccess.dll. The output will tell you what part of the authentication process failed. If you point TraceView at the public symbol server (http://msdl.microsoft.com/download/symbols), you should be able to add deviceaccess.dll to your trace session through the UI and get trace message decoding.
The below should not be needed but could be handy if the above does not resolve the issue.
The steps below will help you figure out if the device property is actually being set on the device.
Debug the device container properties by using Ddodiag.exe (DdoDiag.exe can be found in %windir%\System32 directory). If you debug a device metadata package problem or any device properties problem, we recommend that you use Ddodiag.exe.
Beginning with Windows 7, the Ddodiag.exe supports listing all values of the device properties in device containers.
Follow these steps to run Ddodiag.exe:
1. Launch command prompt
2. Type “Start /wait ddodiag.exe –o <Filename.xml>” and hit enter key
3. Type notepad.exe <Filename.xml>
Note: The xml contains all properties of device containers in the system. If you are investigating a specific device problem, find the hardwareID or ModelID in the XML output file and see the properties of the device container. If you are investigating whether a given property value is set or not, try to find the value in that XML output file.
Here is how you can quickly tell if Device Metadata is installed properly:
1. For the relevant Hardware ID – look for the DDO element (the device container) and see all properties that belong to the container. One of the properties is Metadata Path.
2. If filename listed in MetadataPath does not match the target name, it isn’t installed properly and solution is to re-install the device metadata.
If the device metadata is installed properly, the values you set for Manufacturer Name or Package Name for that Hardware ID should be listed properly. At this point, look for the relevant properties that are needed have been properly declared in device metadata.
Here are some resources additional resources:
1. Enabling test signing is required (and then a re-boot): http://msdn.microsoft.com/en-us/library/windows/hardware/ff553484(v=vs.85).aspx
2. The OSR board is very helpful in using the samples: https://www.osronline.com/custom.cfm?name=index_fullframeset.cfm&pageURL=https://www.osronline.com/store/index.cfm
3. Docs for WSDA: http://msdn.microsoft.com/en-us/library/windows/apps/hh464909.aspx
Follow the Windows Store Developer Solutions team on Twitter @wsdevsol. Comments are welcome, both below and on twitter.