我想使用Windows 用户模式调度程序API ,但我在互联网上找到的每个示例C或C ++都失败了。我总是得到ERROR_NOT_SUPPORTED。
我的电脑在x64处理器中运行Windows 10 Pro 64位。我使用的是VS2015,该应用程序是一个x64控制台应用程序。
值得注意的是,在我测试过的4个样本中,并非所有呼叫都失败了
ERROR_NOT_SUPPORTED失败。这些是必要的,但是例如CreateUmsCompletionList或GetUmsCompletionListEvent不会。
使用API并非易事,但我很难相信所有这些都是错误的。
我调试了一下EnterUmsSchedulingMode内部发生的事情,看来在RtlpAttachThreadToUmsCompletionList中调用NtSetInformationThread时出现问题,虽然我不太确定。
答案 0 :(得分:3)
如果您使用的是常春藤网桥处理器,由于在x64上创建LDT的潜在安全问题,UMS将无法正常工作。如果处理器无法访问Ivy Bridge功能,Ivy Bridge和Windows 10(以及表面上的Server 2016)更新只会禁用UMS功能,可以避免此问题。