我无法使用的资源文件API从文件系统内插件由于PlatSec问题:

*PlatSec* ERROR - Capability check failed - Can't load filesystemplugin.PXT because it links to bafl.dll which has the following capabilities missing: TCB 

我的理解的问题是:

文件系统的插件dll其执行范围内的文件的系统过程。因此,所有文件系统的插件必须具有的 TCB PlatSec的特权,这反过来意味着它们不能链接针对dll不在 TCB.

有没有办法绕过这个(而不是诉诸一个文本文件,或中间服务器)?我不怀疑-但它会好得到一个明确的答案。

有帮助吗?

解决方案

塞班的文件服务器具有以下能力:

TCB ProtServ DiskAdmin AllFiles PowerMgmt CommDD

因此,任何DLL被载入文件服务进程必须至少具有这些能力。有没有办法绕过这个问题,可以简短的书写一个新的代理过程中作为你的暗示。

然而,还有一个更根本的原因,为什么你不应该使用 bafl.dll 从一个文件服务器的插件:这DLL提供的实用功能,其接口的文件服务器的端口。试图使用它从内部文件服务器服务器不会的工作;在最好的,它会导致文件服务死锁,因为它试图连接的本身。

我建议重新思考,你想做的,调查的内部文件服务器API来实现它。

其他提示

使用RFs/改变/RDir Api从内部文件服务器插件是不安全并可能导致的僵局,如果你不是非常小心。

塞9.5将介绍新的Api(RFilePlugin,RFsPlugin和RDirPlugin)这应该是代替使用。

那里有一个适当的机制,用于与插件,RPlugin.

不使用改变.我甚至不肯定它会的工作作为路径检查,在初始化的改变职能,这就是所谓的前插件堆。

告诉我们是什么样的数据存储的资源文件。

事情通常进入的资源文件没有地方在一个文件服务器,即使这意味着硬编码数值。

从技术上讲,可以发送数据文件服务器插件的使用改变.Write()但是,这不是一个很好的解决方案(截改变.Open("无效的文件名称,只有你的插件理解")中的插件).编辑:有人指出,使用一个无效的文件名称不会让你发送数据的插件。嘿,我不喜欢这种解决办法。为了completness,我应该澄清。一名看起来确定足以通过你的插件。如使用驱动器的信,没有一个真正的驱动连接到它的(但仍然会被认为是正确的,通过的文件分析代码)。

编写代码分析的资源的二进制文件中的插件,同时theoratically可能的,不是一个很好的解决方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top