C++是否可以从用户模式java应用程序查询特权Windows服务?
背景
我正在开发一个应用程序,需要使用java查询硬盘上的所有可用文件。由于性能是一项主要要求,我编写了一个本机应用程序,它访问windows Master File Table ($MBT)
以获取所有有效的文件条目
我计划将本机修改为windows服务(以管理员权限运行..需要访问MFT),然后使用我的用户模式java应用程序通过一些IPC技术与它联系(特别是共享内存或命名管道或socket…需要评估)
目标应用程序是特定于windows的,java用于文本处理(我知道python/perl很擅长,但很久没有使用它们)
问题
现在我的问题是-
- 是否可以从有限的用户级应用程序查询特权windows服务李>
- 如果没有,实现这一点的变通方法是什么李>
- 我认为socket可能是IPC机制,因为其他两个可能会因
Access Denied
而失败。我这样假设对吗李> - 将本机代码转换为JNI/DLL,然后使用它是否正确?但在这种情况下,我必须通过拥有自定义清单文件以管理员权限启动java应用程序李>
平台
- Windows7企业版
- Visual Studio 2012(用于本地$MFT访问)
- JDK build 1.7.0_25-b17
谢谢
# 1 楼答案
因为这是一个特定于Windows的问题,所以您可以使用特定于Windows的解决方案。在这种情况下,具有适当安全性的命名管道就足够了。在您的服务中创建管道时,您将对其进行保护,以授予允许桌面应用程序访问管道的权限
# 2 楼答案