ICreateDeviceAccessAsync返回E_ACCESSDENIED [英] ICreateDeviceAccessAsync returns E_ACCESSDENIED
问题描述
我正在开发一个Windows商店应用程序,它可以像这里的示例一样与驱动程序进行通信 http://code.msdn.microsoft.com/windowsapps/Custom-device-access-sample-43bde679.
I am developing a Windows Store App that communicates with a driver like the sample here http://code.msdn.microsoft.com/windowsapps/Custom-device-access-sample-43bde679.
我已经关注了示例,但在调用ICreateDeviceAccessAsync :: GetResult()时得到了一个E_ACCESSDENIED。
I have followed the example but get an E_ACCESSDENIED when calling ICreateDeviceAccessAsync::GetResult().
这是一个使用sancized的traceView转储的deviceaccess.dll我的Windows应用商店应用和自定义驱动程序:
Here is a sanitized TraceView dump of deviceaccess.dll using my Windows Store App and custom driver:
DeviceAccess DeviceBroker: Opening handle for instance path \\?\ACPI#XXX3400#2&daba3ff&1#{0043cbde-43a1-481a-a5a7-30e23f38321e}
DeviceAccess DeviceInterfaceAccessCheck: Entering for class GUID {0043CBDE-43A1-481A-A5A7-30E23F38321E}.
DeviceAccess DeviceInterfaceAccessCheck: Device interface path \\?\ACPI#XXX3400#2&daba3ff&1#{0043cbde-43a1-481a-a5a7-30e23f38321e} is restricted.
DeviceAccess DeviceInterfaceAccessCheck: Opening restricted interface; checking for AppID match.
DeviceAccess DeviceInterfaceAccessCheck: Checking for package "abcd.efgh.ijkl_gyer1wweeafyy" in privileged list for path \\?\ACPI#XXX3400#2&daba3ff&1#{0043cbde-43a1-481a-a5a7-30e23f38321e}.
DeviceAccess DeviceInterfaceAccessCheck: Container for path \\?\ACPI#XXX3400#2&daba3ff&1#{0043cbde-43a1-481a-a5a7-30e23f38321e} is {00000000-0000-0000-FFFF-FFFFFFFFFFFF}.
DeviceAccess DeviceBroker: Failed access check with hr 80070005.
DeviceAccess DeviceBroker: Exiting OpenDeviceFromInterfacePath with hr 80070005.
请注意,特权应用列表没有任何条目!
Note that the privileged app list does not have any entries!
为了比较,使用自定义设备访问示例(我有一个OSR USB-FX-2学习工具包)的deviceaccess.dll的TraceView转储:
For comparison, TraceView dump of deviceaccess.dll using the custom device access example (I have an OSR USB-FX-2 learning kit):
DeviceAccess DeviceBroker: Opening handle for instance path \\?\USB#VID_0547&PID_1002#6&58d4601&0&2#{573e8c73-0cb4-4471-a1bf-fab26c31d384}
DeviceAccess DeviceInterfaceAccessCheck: Entering for class GUID {573E8C73-0CB4-4471-A1BF-FAB26C31D384}.
DeviceAccess DeviceInterfaceAccessCheck: Device interface path \\?\USB#VID_0547&PID_1002#6&58d4601&0&2#{573e8c73-0cb4-4471-a1bf-fab26c31d384} is restricted.
DeviceAccess DeviceInterfaceAccessCheck: Opening restricted interface; checking for AppID match.
DeviceAccess DeviceInterfaceAccessCheck: Checking for package "microsoft.sdksamples.customdeviceaccess.cs_8wekyb3d8bbwe" in privileged list for path \\?\USB#VID_0547&PID_1002#6&58d4601&0&2#{573e8c73-0cb4-4471-a1bf-fab26c31d384}.
DeviceAccess DeviceInterfaceAccessCheck: Container for path \\?\USB#VID_0547&PID_1002#6&58d4601&0&2#{573e8c73-0cb4-4471-a1bf-fab26c31d384} is {BC1A0B61-1886-11E2-BE9A-888888888788}.
DeviceAccess DeviceInterfaceAccessCheck: Found privileged app list.
DeviceAccess DeviceInterfaceAccessCheck: Found package "Microsoft.SDKSamples.CustomDeviceAccess.JS_8wekyb3d8bbwe" in privileged list; not a match.
DeviceAccess DeviceInterfaceAccessCheck: Found package match.
DeviceAccess DeviceBroker: Successfully brokered handle.
DeviceAccess DeviceBroker: Exiting OpenDeviceFromInterfacePath with hr 0.
我跟着确切相同的驱动程序 - >设备元数据 - >创作,重启,禁用驱动程序签名实施,安装驱动程序,两种情况下的步骤。
I followed the exact same Driver->Device Metadata->Authoring, reboot, disable driver signiture enforcement, install driver, steps in both cases.
我还能做些什么来调试/解决原因我的驱动程序没有特权应用列表?
Is there anything else I can do to debug/resolve why my driver does not have a privileged apps list?
谢谢!
推荐答案
忘记提及:我的驱动程序解决方案文件实际上包含七个驱动程序项目。 我在进行驱动程序元数据创作时打开了这个超级解决方案。 这有关系吗?
Forgot to mention: my driver solution file actually contains seven driver projects. I had this super solution open when doing the driver metadata authoring. Does this matter?
我还尝试在打开应用程序正在与之通信的单个驱动程序解决方案后创作驱动程序元数据,但这也无效。
I also tried authoring driver metadata after opening only the single driver solution that the App is communicating with, but this didn't work either.
这篇关于ICreateDeviceAccessAsync返回E_ACCESSDENIED的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!