【发布时间】:2021-11-20 07:32:39
【问题描述】:
我有一个微过滤器驱动程序,想将它与 FilterConnectCommunicationPort 连接。 它在 wpf 中运行良好,但即使在我添加 SECURITY_ATTRIBUTES 之后,它也会在 UWP 中返回 E_ACCESSDENIED。
SECURITY_ATTRIBUTES sa;
PSECURITY_DESCRIPTOR SecurityDescriptor;
bool ret = ConvertStringSecurityDescriptorToSecurityDescriptorW(
L"D:P(A;;GA;;;WD)(A;;GA;;;AC)(A;;GA;;;S-1-15-2-2)S:(ML;;;;;LW)",
SDDL_REVISION, &SecurityDescriptor, 0);
// Initialize a security attributes structure.
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = SecurityDescriptor;
sa.bInheritHandle = FALSE;
HRESULT hResult = S_OK;
hResult = FilterConnectCommunicationPort(NPMINI_PORT_NAME, 0, NULL, 0, &sa, &g_hPort);
if (IS_ERROR(hResult))
{
LogError("FilterConnectCommunicationPort fail! 0x%x",hResult);
return hResult;
}
我修改了应用程序包清单以声明一些受限功能。还是不行。
<rescap:Capability Name="interopServices"/>
<iot:Capability Name="lowLevelDevices"/>
我不确定UWP中是否允许FilterConnectCommunicationPort。如果api没问题,如何使用它?谢谢。
【问题讨论】:
-
是windows IOT应用吗?
-
@Anonymous 不,它只是一个语音转换器应用程序。我想捕获音频并在处理后将其发送到虚拟声卡驱动程序。
-
不确定在 UWP 中是否可行,但既然您已经在 WPF 中完成了,为什么不改用 WPF。
-
@Anonymous 我希望它是一个小部件,所以它必须是一个 uwp。
-
FilterConnectCommunicationPort需要像管理员这样的特权吗?如果是,那应该是这个原因。
标签: uwp driver minifilter