SymbianOS의 파일 시스템 플러그인에서 리소스 파일에 액세스

StackOverflow https://stackoverflow.com/questions/93578

  •  01-07-2019
  •  | 
  •  

문제

PlatSec 문제로 인해 파일 시스템 플러그인 내에서 리소스 파일 API를 사용할 수 없습니다.

*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.

(텍스트 파일이나 중간 서버를 사용하지 않고) 이 문제를 해결할 수 있는 방법이 있습니까?나는 그렇지 않다고 생각합니다. 하지만 확실한 답을 얻는 것이 좋을 것입니다.

도움이 되었습니까?

해결책

Symbian 파일 서버에는 다음과 같은 기능이 있습니다.

TCB ProtServ DiskAdmin AllFiles PowerMgmt CommDD

따라서 파일 서버 프로세스에 로드되는 모든 DLL에는 최소한 이러한 기능이 있어야 합니다.당신이 언급한 것처럼 새로운 프록시 프로세스를 작성하는 것 외에는 이 문제를 해결할 방법이 없습니다.

그러나 사용하면 안되는 더 근본적인 이유가 있습니다. bafl.dll 파일 서버 플러그인 내에서:이 DLL은 파일 서버 클라이언트 API에 인터페이스하는 유틸리티 기능을 제공합니다.파일러 서버 내에서 이를 사용하려고 하면 작동하지 않습니다.기껏해야 자체 연결을 시도할 때 파일 서버 교착 상태가 발생할 수 있습니다.

나는 당신이 하려는 일을 다시 생각해보고, 대신 그것을 달성하기 위해 내부 파일 서버 API를 조사하는 것이 좋습니다.

다른 팁

파일 서버 플러그인 내에서 RFs/RFile/RDir API를 사용하는 것은 안전하지 않으며 매우 주의하지 않으면 교착 상태가 발생할 수 있습니다.

Symbian 9.5에서는 대신 사용해야 하는 새로운 API(RFilePlugin, RFsPlugin 및 RDirPlugin)가 도입됩니다.

플러그인인 RPlugin과 통신하기 위한 적절한 메커니즘이 있습니다.

RFile을 사용하지 마십시오.플러그인 스택 이전에 호출되는 RFile 함수의 초기화에서 경로가 확인되므로 작동할 것인지조차 확신할 수 없습니다.

리소스 파일에 어떤 종류의 데이터를 저장하고 있는지 알려주세요.

일반적으로 리소스 파일에 들어가는 항목은 파일 서버 플러그인에 위치하지 않습니다. 이는 몇 가지 값을 하드코딩하는 것을 의미합니다.

기술적으로 RFile.Write()를 사용하여 파일 서버 플러그인에 데이터를 보낼 수 있지만 이는 훌륭한 솔루션이 아닙니다(플러그인에서 RFile.Open("플러그인만 이해하는 잘못된 파일 이름")을 가로채기).편집하다:누군가 잘못된 파일 이름을 사용하면 플러그인으로 데이터를 보낼 수 없다고 표시했습니다.이봐, 나도 그 해결책이 맘에 안 들었어.완전성을 위해 명확히 해야 합니다.플러그인에 적용할 수 있을 만큼 괜찮아 보이는 파일 이름을 만드세요.실제 드라이브가 연결되지 않은 드라이브 문자를 사용하는 것과 같습니다(그러나 파일 이름 구문 분석 코드에서는 여전히 올바른 것으로 간주됩니다).

플러그인에서 리소스 파일 바이너리를 구문 분석하는 코드를 작성하는 것은 이론적으로는 가능하지만 훌륭한 솔루션은 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top