2011-06-20 89 views
1

这件事给了我一个非常糟糕的头痛。StartService返回访问被拒绝的SERVICE_KERNEL_DRIVER

我试图加载驱动程序到使用CreateServiceSERVICE_ALL_ACCESS一切的过程似乎都很正常,直到我真正尝试使用StartService它总是失败,我以管理员身份运行该ERROR_ACCESS_DENIED启动该服务,我已经在应用中烘焙了一个清单,我已经尝试了安全属性,它不会工作。

如果任何人对如何调试这个任何建议,我所有的耳朵...

我使用的是Windows 7 SP1 x64的安装,最新DDK,如果有与驱动程序有问题本身我会得到一些其他问题,对吧?不只是,访问被拒绝?

我在辩论的东西,但有麻烦的测试是,如果有任何用户模式/内核模式的安全考虑,我没有处理。所有这些代码都运行在相同的高级进程中,但它不起作用!

驱动程序能否以某种方式导致此错误发生?

+0

您的服务未设置为禁用,是吗? – Gabe

+0

我当然希望不会,它是使用SERVICE_DEMAND_START标志创建的,并且根据文档和CurrentControlSet(服务注册键条目)它是按需加载的(未禁用)。 –

回答

1

哦,恐怖,我应该早些看到这个,无论如何,驱动程序中调用的错误代码是通过create service调用传播的。该返回值恰好与ERROR_ACCESS_DENIED相同,但实际上与驱动程序未正确签名有关。

这个page解释了你需要做什么才能调用驱动程序中的某些功能。