APIs affected by the platsecprocessisolation keyword

Each Symbian platform release may include APIs, which are insecure. These APIs are inherited from earlier versions of the OS, which are based on EKA1 kernel. You may choose to allow or not allow such APIs using the platsecprocessisolation Obey file keyword. The following is a list of APIs, which are affected by platsecprocessisolation keyword.

Note: The list also states whether the API can be hidden at build time by defining the __SECURE_API__ macro.

API

Restriction

Hidden by __SECURE_API__ macro ?

RThread::Kill(TInt aReason)

Not allowed on threads in a different process.

No

RThread::Terminate(TInt aReason)

Not allowed on threads in a different proces.

No

RThread::Panic(const TDesC& aCategory,TInt aReason)

Not allowed on threads in a different process.

No

RThread::Suspend()

Not allowed on threads in a different process.

No

RThread::Resume()

Not allowed on threads in a different process.

No

RThread::SetPriority(TThreadPriority aPriority)

Not allowed on threads in a different process. (Unless the process has enabled PriorityControl then it's priority can be changed between Foreground and Background.)

No

RThread::RequestComplete(TRequestStatus*& aStatus, TInt aReason)

Not allowed on threads in a different process.

No

RThread::Heap()

Removed. Not allowed on threads in a different process.

Yes

RThread::SetProcessPriority(TProcessPriority aPriority)

Deprecated. Not allowed on threads in a different process.

No

RThread::Protected()

Removed.

Yes

RThread::SetProtected(TBool aState)

Removed. Use User::SetCritical() instead.

Yes

RThread::System()

Removed. Use User::Critical() instead.

Yes

RThread::SetSystem(TBool aState)

Removed. Use User::SetCritical() instead. Not allowed on threads in a different process.

Yes

RThread::GetDesLength(const TAny *aPtr)

Removed.

Yes

RThread::GetDesMaxLength(const TAny *aPtr)

Removed.

Yes

RThread::ReadL(const TAny* aPtr, TDes8& aBuf, TInt anOffset)

Removed.

Yes

RThread::ReadL(const TAny* aPtr, TDes16& aBuf, TInt anOffset)

Removed.

Yes

RThread::WriteL(const TAny* aPtr, const TDesC8& aBuf, TInt anOffset)

Removed.

Yes

RThread::WriteL(const TAny* aPtr, const TDesC16& aBuf, TInt anOffset)

Removed.

Yes

RThread::Rename(const TDesC& aName)

Removed. Use User::RenameThread() instead. Not allowed on threads in a different process

Yes

RThread::ExceptionHandler()

Removed. Use User::ExceptionHandler() instead. Can only be called to get the handler for the current thread.

Yes

RThread::SetExceptionHandler(TExceptionHandler aHandler,TUint32 aMask)

Removed. Use User::SetExceptionHandler() instead. Can only be called to set the handler for the current thread.

Yes

RThread::ModifyExceptionMask(TUint32 aClearMask, TUint32 aSetMask)

Removed. Use User::ModifyExceptionMask() instead. Can only be called to modify the exception mask for the current thread.

Yes

RThread::RaiseException(TExcType aType)

Removed. Use User::RaiseException() instead. Can only be called to raise an exception on the current thread.

Yes

RThread::IsExceptionHandled(TExcType aType)

Removed. Use User::IsExceptionHandled() instead. Can only be called to query the current thread.

Yes

RThread::Create(const TDesC& aName,TThreadFunction aFunction,TInt aStackSize,TAny* aPtr,RLibrary* aLibrary,RHeap* aHeap, TInt aHeapMinSize,TInt aHeapMaxSize,TOwnerType aType)

Removed.

No

RProcess::Kill(TInt aReason)

Unless PowerMgmt capabilility is held this can only allowed to be called by the process itself, or by the process which created it (if it has not yet been resumed).

No

RProcess::Terminate(TInt aReason)

Unless PowerMgmt capabilility is held this can only allowed to be called by the process itself or by the process which created it (if it has not yet been resumed).

No

RProcess::Panic(const TDesC& aCategory,TInt aReason)

Unless PowerMgmt capabilility is held this can only allowed to be called by the process itself or by the process which created it (if it has not yet been resumed).

No

RProcess::SetType(const TUidType& aType)

Removed.

Yes

RProcess::Resume()

Can only be called by the process which created the process to be resumed.

No

RProcess::CommandLineLength()

Removed. Use User::CommandLineLength() instead.

Yes

RProcess::CommandLine(TDes& aCommand)S

Removed. Use User::CommandLine() instead.

Yes

RProcess::SetPriority(TProcessPriority aPriority)

Can only be called by a process to change it's own priority, or by the process which created the process having it's priority changed if it hasn't yet been resumed. Iff a process has enabled PriorityControl then it's priority can be changed between Foreground and Background.

No

RProcess::Protected()

Removed. Use User::ProcessCritical() instead.

Yes

RProcess::SetProtected(TBool aState)

Removed. Use User::ProcessSetCritical() instead.

Yes

RProcess::System()

Removed. Use User::ProcessCritical() instead.

Yes

RProcess::SetSystem(TBool aState)

Removed. Use User::ProcessSetCritical() instead. Can only be used on the current process.

Yes

RProcess::SetJustInTime(TBool aState)

Can only be called by a process to change it's own JustInTime state or by the process which created the process having it's JustInTime state changed if it hasn't yet been resumed.

No

RProcess::Owner(RProcess& aOwner)

Removed.

Yes

RProcess::SetOwner(const RProcess& aProcess)

Removed.

Yes

RProcess::Rename(const TDesC& aName)

Removed. Use User::RenameProcess() instead. Only allowed for a process renaming itself.

Yes

RMessagePtr2::Read(TInt aParam,TDes8& aDes,TInt aOffset)O

The client descriptor refered to by aParam must be a TDesC8 (not a TDesC16). Failure is indicated by a return code of KErrBadDescriptor.

No

RMessagePtr2::Read(TInt aParam,TDes16& aDes,TInt aOffset)

The client descriptor refered to by aParam must be a TDesC16 (not a TDesC8). Failure is indicated by a return code of KErrBadDescriptor.

No

RMessagePtr2::Write(TInt aParam,const TDesC8& aDes,TInt aOffset)

The client descriptor refered to by aParam must be a TDes8 (not a TDes16). Failure is indicated by a return code of KErrBadDescriptor.

No

RMessagePtr2::Write(TInt aParam,const TDesC16& aDes,TInt aOffset)

The client descriptor refered to by aParam must be a TDes16 (not a TDes8). Failure is indicated by a return code of KErrBadDescriptor.

No

RMessagePtr2::SetProcessPriority(TProcessPriority aPriority)

Client must have enabled priority control with User::SetPriorityControl().

No

RMessage::ReadL(const TAny* aPtr,TDes8& aDes)

Removed.

Yes

RMessage::ReadL(const TAny* aPtr,TDes8& aDes,TInt anOffset)

Removed.

Yes

RMessage::ReadL(const TAny* aPtr,TDes16& aDes)

Removed.

Yes

RMessage::ReadL(const TAny* aPtr,TDes16& aDes,TInt anOffset)

Removed.

Yes

RMessage::WriteL(const TAny* aPtr,const TDesC8& aDes)

Removed.

Yes

RMessage::WriteL(const TAny* aPtr,const TDesC8& aDes,TInt anOffset)

Removed.

Yes

RMessage::WriteL(const TAny* aPtr,const TDesC16& aDes)

Removed.

Yes

RMessage::WriteL(const TAny* aPtr,const TDesC16& aDes,TInt anOffset)

Removed.

Yes

RMessage::RMessage(const RMessagePtr2& aPtr)

Removed.

No

RMessage (all other methods)

Removed.

Yes

TFindChunk::Next(TFullName& aResult)

Can't find objects without a name.

No

TFindLogicalDevice::Next(TFullName& aResult)

Can't find objects without a name.

No

TFindPhysicalDevice::Next(TFullName& aResult)

Can't find objects without a name.

No

TFindLibrary::Next(TFullName& aResult)

Can't find objects without a name

No

TFindServer::Next(TFullName& aResult)

Can't find objects without a name.

No

TFindMutex::Next(TFullName& aResult)

Can't find objects without a name.

No

TFindProcess::Next(TFullName& aResult)

Can't find objects without a name.

No

TFindSemaphore::Next(TFullName& aResult)

Can't find objects without a name.

No

TFindThread::Next(TFullName& aResult)

Can't find objects without a name.

No

RChunk::OpenGlobal(const TDesC& aName,TBool isReadOnly,TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RDevice::Open(const TDesC& aName,TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RMutex::OpenGlobal(const TDesC& aName,TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RCondVar::OpenGlobal(const TDesC& aName, TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RSemaphore::OpenGlobal(const TDesC& aName,TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RProcess::Open(const TDesC& aName,TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RThread::Open(const TDesC& aName,TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RMsgQueueBase::OpenGlobal(const TDesC& aName, TOwnerType aType)

Can't open objects without a name or objects that are not global.

No

RChunk::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RDevice::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RMutex::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RCondVar::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RSemaphore::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RProcess::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RThread::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RMsgQueueBase::Duplicate(const RThread& aSrc,TOwnerType aType=EOwnerProcess)

If the handle being duplicated belongs to a different process then it can't be duplicated if the object doesn't have a name or isn't global.

No

RThread::Open(TThreadId aID, TOwnerType aType=EOwnerProcess)

Can't open objects without a name.

No

RHandleBase::Open(const TFindHandleBase& aFindHandle,TOwnerType aType)

Can't open objects without a name or those which aren't global.

No

UserSvr::CaptureEventHook()

Can only be called by the Window Server process.

No

class CSharableSession

Removed.

Yes

class CSession

Removed.

Yes

class CServer

Removed.

Yes

class RServer

Removed.

Yes

RSessionBase::Share(TAttachMode aAttachMode=EExplicitAttach)

Removed.

Yes

RSessionBase::Attach()

Removed.

Yes

RSessionBase::Send(TInt aFunction,TAny* aPtr)

Removed.

Yes

RSessionBase::SendReceive(TInt aFunction,TAny* aPtr,TRequestStatus& aStatus)

Removed.

Yes

RSessionBase::SendReceive(TInt aFunction,TAny* aPtr)

Removed.

Yes

RSubSessionBase::CreateSubSession(RSessionBase& aSession,TInt aFunction,const TAny* aPtr)

Removed.

Yes

RSubSessionBase::Send(TInt aFunction,const TAny* aPtr)

Removed.

Yes

RSubSessionBase::SendReceive(TInt aFunction,const TAny* aPtr,TRequestStatus& aStatus)

Removed.

Yes

RSubSessionBase::SendReceive(TInt aFunction,const TAny* aPtr)

Removed.

Yes

UserSvr::DllGlobalAlloc(TInt aHandle,TInt aSize)

Removed.

Yes

UserSvr::DllGlobalAllocated(TInt aHandle)

Removed.

Yes

UserSvr::DllGlobalRead(TInt aHandle,TInt aPos,TInt aLength,TDes8& aDes)

Removed.

Yes

UserSvr::DllGlobalWrite(TInt aHandle,TInt aPos,const TDesC8& aDes)

Removed.

Yes

Dll::GlobalAlloc(TInt aSize)

Removed.

Yes

Dll::GlobalAllocated()

Removed.

Yes

Dll::GlobalRead(TInt aPos, TInt aLength, TDes8& aDes)

Removed.

Yes

Dll::GlobalWrite(TInt aPos,const TDesC8& aDes)

Removed.

Yes

TBusLocalDrive::Lock(TMediaPassword& aOldPassword, TMediaPassword& aNewPassword, TBool aStorePassword)

Removed.

Yes

class CSecurityEncryptBase

Removed.

Yes

class CSecurityDecryptBase

Removed.

Yes

class CSecurityBase

Removed.

Yes

class CBoundedSecurityBase

Removed.

Yes

class Security

Removed.

Yes

RBusLogicalChannel::DoCreate(const TDesC& aDevice,const TVersion& aVer,const TDesC* aChan,TInt aUnit,const TDesC* aDriver,const TDesC8* anInfo,TOwnerType aType=EOwnerProcess)

Removed.

Yes

RHeap::Adjust(TAny* aCell,TInt anOffset,TInt aDelta)

Removed.

Yes

RHeap::AdjustL(TAny* aCell,TInt anOffset,TInt aDelta)

Removed.

Yes

RHeap::FreeAll()

Removed.

Yes

class THeapWalk

Removed.

Yes

enum TDllReason

Removed.

Yes

class RDebug

) Removed. (Apart from Printf functions

Yes

class TFindLogicalChannel

Removed.

Yes

Rdevice::IsAvailable(TInt aUnit, const TDesC* aPhysicalDevice, const TDesC16* anInfo)

Removed.

Yes

RLibrary::EntryPoint()

Removed.

Yes

RLibrary::DllRefTable()

Removed.

Yes

RThread::GetRamSizes(TInt& aHeapSize,TInt& aStackSize)

Removed. Use RThread::StackInfo() instead.

Yes

RProcess::GetRamSizes(TInt& aCodeSize, TInt& aConstDataSize, TInt& anInitialisedDataSize, TInt& anUninitialisedDataSize)

Removed. Use RThread::GetMemoryInfo() instead.

Yes

class TNotifyInfo

Removed.

Yes

class Password

Removed.

Yes

User::Adjust(TAny* aCell,TInt aOffset,TInt aDelta)

Removed.

Yes

User::AdjustL(TAny* aCell,TInt aOffset,TInt aDelta)

Removed.

Yes

User::__DbgMarkStart(RHeap::TDbgHeapType aHeapType)

Removed.

Yes

User::__DbgMarkCheck(RHeap::TDbgHeapType aHeapType,TBool aCountAll,TInt aCount,const TDesC8& aFileName,TInt aLineNum)

Removed.

Yes

User::__DbgMarkEnd(RHeap::TDbgHeapType aHeapType,TInt aCount)

Removed.

Yes

User::__DbgSetAllocFail(RHeap::TDbgHeapType aHeapType,RHeap::TAllocFail aType,TInt aRate)

Removed.

Yes

UserSvr::InitRegisterCallback(TCallBack, TInt)

Removed.

Yes

UserSvr::ChangeLocale(RLibrary aLibrary)

Removed.

Yes

UserSvr::DllInitialiseData(TInt aHandle)

Removed.

Yes

UserSvr::DllFreeData(TInt aHandle)

Removed.

Yes

UserSvr::WsRegisterThread(TThreadFunction)

Removed.

Yes

UserSvr::ServerStarted()

Removed.

Yes

RMutex::Count()

Removed.

Yes

RSemaphore::Count()

Removed.

Yes