我有一个C#应用程序将以管理员权限运行。我想强制DEP为它。如果DEP被禁用,则为进程设置DEP On或者终止应用程序。
但我两个都失败了。 我的代码是:
SELECT customer.customer_id as cust_id
SUM(payments.payment) as cust_pmts
(SUM(payments.payment)/6) as Jan_cohort_clv
FROM telemon_payments_data payments
LEFT JOIN telemon_customer_data customer
ON payments.customer_id = customer.customer_id
GROUP BY 1
HAVING customer.account_created_on between "2016-01-01" and "2016-01-31"
调用函数SetProcessDEPPolicy(3)总是失败并出现错误50(文档说它只有在从64位进程调用它时才会返回此错误,但事实并非如此)。
我可能在GetProcessDEPPolicy中有一些错误,因为调用失败并出现错误87(参数不正确)。也许Handle错了?
答案 0 :(得分:0)
因此,解决方案是更改 Configuration Manager 中的构建配置,从AnyCPU到x86 。现在两种方法都按预期工作。
AnyCPU的错误与x64相同(默认情况下强制执行DEP,这些方法应返回上述错误)。