I’m trying to test sending a driver an ioctl via a UWP app. Per multiple references this requires a custom capability. I have added these lines to my driver’s INF:
[Foo.NT.Interfaces]
AddInterface=“{%GUID_DEVINTERFACE_FOO%}”, , FooAddInterface
[FooAddInterface]
AddProperty=FooAddInterface.AddProps
[FooAddInterface.AddProps]
{%DEVPKEY_DeviceInterface_UnrestrictedAppCapabilities%}, 8, 0x2012, %CustomCapability%
[Strings]
GUID_DEVINTERFACE_FOO=“705791F3-E013-45A8-827B-80F4020B5F21” ; This is my device interface as registered by IoRegisterDeviceInterface
DEVPKEY_DeviceInterface_UnrestrictedAppCapabilities=“026e516e-b814-414b-83cd-856d6fef4822” ; This seems to be some magic guid value
CustomCapability=“microsoft.hsaTestCustomCapability_q536wpkpf5cy2” ; Borrowing this verbatim from the MS sample
Note that I’m doing this via the INF since my driver is a WDM driver and I didn’t see a way to add the custom capability property to the interface outside of kmdf-land.
In my UWP app I have added an SCCD:
<?xml version="1.0" encoding="utf-8"?> 0000Upon deployment, I get the error:
Severity Code Description Project File Line Suppression State
Error DEP8000 : Unexpected deployment failure : RemoteCommandException : error 0x800701C8: While preparing to process the request, the system failed to register the windows.capability extension due to the following error: The custom capability’s SCCD has an invalid catalog.
.
0x800701c8
I cannot find a single word of documentation on what the Catalog element of the CustomCapabilityDescriptor is supposed to be. I have found MS samples that have it set to both “0000” and “xxxx” but both of those generate this same error.
Furthermore, I’m guessing that even if I get past this error I’ll hit an issue with the AppPackageFamilyName, but if I change that name then the sig hash will be wrong, right? I know 1809 added the “allow all” but as far as I can tell 1803 is the latest released version for my target (dragonboard 410c). I really just want to try to test this proof of concept (to see if I can send an IOCTL to my device from a UWP app) on a single developer box, but this has burned a few days of time at this point. Anybody have any tips?
-JT