Adaptation/GUID-DB441DFF-0075-5122-A2EB-A6EF76375D71.dita
changeset 15 307f4279f433
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-DB441DFF-0075-5122-A2EB-A6EF76375D71.dita	Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,842 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-DB441DFF-0075-5122-A2EB-A6EF76375D71" xml:lang="en"><title> APIs affected by the platsecprocessisolation keyword</title><shortdesc>Certain legacy APIs are insecure. Using the <codeph>platsecprocessisolation</codeph> keyword affects whether those APIs are allowed.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>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 <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-B5EE7071-532B-591B-904B-93108A42D939">platsecprocessisolation</xref> Obey file keyword. The following is
+a list of APIs, which are affected by <xref href="GUID-43852F38-4841-5E6F-927B-A38ED4424F0C.dita#GUID-43852F38-4841-5E6F-927B-A38ED4424F0C/GUID-B5EE7071-532B-591B-904B-93108A42D939">platsecprocessisolation</xref> keyword. </p>
+<p> <b>Note</b>: The list also states whether the API can be hidden
+at build time by defining the <codeph>__SECURE_API__</codeph> macro. </p>
+<table id="GUID-E864D522-8783-5858-BA8F-FBD36DCB85EC">
+<tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/>
+<colspec colname="col2"/>
+<tbody>
+<row>
+<entry><p> <b>API</b>  </p> </entry>
+<entry><p> <b>Restriction</b>  </p> </entry>
+<entry><p> <b>Hidden by __SECURE_API__ macro ?</b>  </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Kill(TInt aReason)</codeph>  </p> </entry>
+<entry><p>Not allowed on threads in a different process. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Terminate(TInt aReason)</codeph>  </p> </entry>
+<entry><p>Not allowed on threads in a different proces. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Panic(const TDesC&amp; aCategory,TInt
+            aReason)</codeph>  </p> </entry>
+<entry><p>Not allowed on threads in a different process. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Suspend()</codeph>  </p> </entry>
+<entry><p>Not allowed on threads in a different process. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Resume()</codeph>  </p> </entry>
+<entry><p>Not allowed on threads in a different process. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::SetPriority(TThreadPriority aPriority)</codeph>  </p> </entry>
+<entry><p>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.) </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::RequestComplete(TRequestStatus*&amp; aStatus,
+TInt             aReason)</codeph>  </p> </entry>
+<entry><p>Not allowed on threads in a different process. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Heap()</codeph>  </p> </entry>
+<entry><p>Removed. Not allowed on threads in a different process. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::SetProcessPriority(TProcessPriority  
+          aPriority)</codeph>  </p> </entry>
+<entry><p>Deprecated. Not allowed on threads in a different process. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Protected()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::SetProtected(TBool aState)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-94182E2E-2CDD-3204-B2C1-18D722A14400"><apiname>User::SetCritical()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::System()</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-518F09CB-9E69-301D-B181-6BDEAF7D3F77"><apiname>User::Critical()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::SetSystem(TBool aState)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-94182E2E-2CDD-3204-B2C1-18D722A14400"><apiname>User::SetCritical()</apiname></xref> instead.
+Not allowed on threads in a different process. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::GetDesLength(const TAny *aPtr)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::GetDesMaxLength(const TAny *aPtr)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::ReadL(const TAny* aPtr, TDes8&amp; aBuf,
+TInt             anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::ReadL(const TAny* aPtr, TDes16&amp; aBuf,
+TInt             anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::WriteL(const TAny* aPtr, const TDesC8&amp;
+aBuf,             TInt anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::WriteL(const TAny* aPtr, const TDesC16&amp;
+aBuf,             TInt anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Rename(const TDesC&amp; aName)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-7B587954-D211-328B-8868-5196C0ADE5D6"><apiname>User::RenameThread()</apiname></xref> instead.
+Not allowed on threads in a different process </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::ExceptionHandler()</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-E11E87FD-AFA4-353F-887B-EF36154E4B4E"><apiname>User::ExceptionHandler()</apiname></xref> instead. Can only be called to get the handler for the current thread. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::SetExceptionHandler(TExceptionHandler
+            aHandler,TUint32 aMask)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-FDB3FF0D-705D-3EFE-9666-F26F7E390D54"><apiname>User::SetExceptionHandler()</apiname></xref> instead. Can only be called to set the handler for the current thread. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::ModifyExceptionMask(TUint32 aClearMask,
+TUint32             aSetMask)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-77B2CCE3-B8FB-331A-9E61-15B2040CEC70"><apiname>User::ModifyExceptionMask()</apiname></xref> instead. Can only be called to modify the exception mask for the
+current thread. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::RaiseException(TExcType aType) </codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-6AB971F1-EE72-38E9-AA4A-9E0D8FACD4FE"><apiname>User::RaiseException()</apiname></xref> instead.
+Can only be called to raise an exception on the current thread. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::IsExceptionHandled(TExcType aType) </codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-3016380F-1101-395E-AEC8-1A1BA8DF3914"><apiname>User::IsExceptionHandled()</apiname></xref> instead. Can only be called to query the current thread. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Create(const TDesC&amp; aName,TThreadFunction
+            aFunction,TInt aStackSize,TAny* aPtr,RLibrary* aLibrary,RHeap*
+aHeap, TInt             aHeapMinSize,TInt aHeapMaxSize,TOwnerType
+aType)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Kill(TInt aReason)</codeph>  </p> </entry>
+<entry><p>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). </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Terminate(TInt aReason)</codeph>  </p> </entry>
+<entry><p>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). </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Panic(const TDesC&amp; aCategory,TInt
+            aReason)</codeph>  </p> </entry>
+<entry><p>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). </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::SetType(const TUidType&amp; aType) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Resume() </codeph>  </p> </entry>
+<entry><p>Can only be called by the process which created the process
+to be resumed. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::CommandLineLength()</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-6791564A-717D-3FD7-873D-BAD51DD98E4F"><apiname>User::CommandLineLength()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::CommandLine(TDes&amp; aCommand)S</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-26212880-9DD8-3D5A-BEA9-AD79D72F6224"><apiname>User::CommandLine()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::SetPriority(TProcessPriority aPriority)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Protected()</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-59C2CE5A-75F9-3D36-B801-2EB6AB08C77F"><apiname>User::ProcessCritical()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::SetProtected(TBool aState)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-E2FD7D21-83EE-3EB5-8516-5ABCE7976853"><apiname>User::ProcessSetCritical()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::System()</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-59C2CE5A-75F9-3D36-B801-2EB6AB08C77F"><apiname>User::ProcessCritical()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::SetSystem(TBool aState)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-E2FD7D21-83EE-3EB5-8516-5ABCE7976853"><apiname>User::ProcessSetCritical()</apiname></xref> instead. Can only be used on the current process. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::SetJustInTime(TBool aState)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Owner(RProcess&amp; aOwner)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::SetOwner(const RProcess&amp; aProcess) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Rename(const TDesC&amp; aName)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-F2781607-FD9A-3CCA-BB0B-3ADA6C993E33"><apiname>User::RenameProcess()</apiname></xref> instead.
+Only allowed for a process renaming itself. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessagePtr2::Read(TInt aParam,TDes8&amp; aDes,TInt
+            aOffset)O</codeph>  </p> </entry>
+<entry><p>The client descriptor refered to by <codeph>aParam</codeph> must be a <xref href="GUID-FB97E0A3-352A-316F-97C6-69E4741A8120.dita"><apiname>TDesC8</apiname></xref> (not a <codeph>TDesC16</codeph>). Failure is indicated by a return code of <codeph>KErrBadDescriptor</codeph>. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessagePtr2::Read(TInt aParam,TDes16&amp; aDes,TInt
+            aOffset)</codeph>  </p> </entry>
+<entry><p>The client descriptor refered to by <codeph>aParam</codeph> must be a <codeph>TDesC16</codeph> (not a <xref href="GUID-FB97E0A3-352A-316F-97C6-69E4741A8120.dita"><apiname>TDesC8</apiname></xref>). Failure is indicated by a return code of <codeph>KErrBadDescriptor</codeph>. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessagePtr2::Write(TInt aParam,const TDesC8&amp;
+aDes,TInt             aOffset)</codeph>  </p> </entry>
+<entry><p>The client descriptor refered to by <codeph>aParam</codeph> must be a <xref href="GUID-445B19E5-E2EE-32E2-8D6C-C7D6A9B3C507.dita"><apiname>TDes8</apiname></xref> (not a <codeph>TDes16</codeph>). Failure is indicated by a return code of <codeph>KErrBadDescriptor</codeph>. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessagePtr2::Write(TInt aParam,const TDesC16&amp;
+aDes,TInt             aOffset)</codeph>  </p> </entry>
+<entry><p>The client descriptor refered to by <codeph>aParam</codeph> must be a <codeph>TDes16</codeph> (not a <xref href="GUID-445B19E5-E2EE-32E2-8D6C-C7D6A9B3C507.dita"><apiname>TDes8</apiname></xref>). Failure is indicated by a return code of <codeph>KErrBadDescriptor</codeph>. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessagePtr2::SetProcessPriority(TProcessPriority
+            aPriority)</codeph>  </p> </entry>
+<entry><p>Client must have enabled priority control with <xref href="GUID-C197C9A7-EA05-3F24-9854-542E984C612D.dita#GUID-C197C9A7-EA05-3F24-9854-542E984C612D/GUID-4A8EA8E2-9493-3CCC-BFAA-7EA10D2216DB"><apiname>User::SetPriorityControl()</apiname></xref>. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::ReadL(const TAny* aPtr,TDes8&amp; aDes) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::ReadL(const TAny* aPtr,TDes8&amp; aDes,TInt
+            anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::ReadL(const TAny* aPtr,TDes16&amp; aDes)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::ReadL(const TAny* aPtr,TDes16&amp; aDes,TInt
+            anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::WriteL(const TAny* aPtr,const TDesC8&amp;
+            aDes)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::WriteL(const TAny* aPtr,const TDesC8&amp;
+aDes,TInt             anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::WriteL(const TAny* aPtr,const TDesC16&amp;
+            aDes)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::WriteL(const TAny* aPtr,const TDesC16&amp;
+            aDes,TInt anOffset)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage::RMessage(const RMessagePtr2&amp; aPtr) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMessage (all other methods)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindChunk::Next(TFullName&amp; aResult)</codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindLogicalDevice::Next(TFullName&amp; aResult) </codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindPhysicalDevice::Next(TFullName&amp; aResult) </codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindLibrary::Next(TFullName&amp; aResult)</codeph>  </p> </entry>
+<entry><p>Can't find objects without a name </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindServer::Next(TFullName&amp; aResult)</codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindMutex::Next(TFullName&amp; aResult)</codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindProcess::Next(TFullName&amp; aResult)</codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindSemaphore::Next(TFullName&amp; aResult) </codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TFindThread::Next(TFullName&amp; aResult)</codeph>  </p> </entry>
+<entry><p>Can't find objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RChunk::OpenGlobal(const TDesC&amp; aName,TBool
+            isReadOnly,TOwnerType aType)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RDevice::Open(const TDesC&amp; aName,TOwnerType
+aType)</codeph> </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMutex::OpenGlobal(const TDesC&amp; aName,TOwnerType
+            aType)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RCondVar::OpenGlobal(const TDesC&amp; aName, TOwnerType
+            aType)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSemaphore::OpenGlobal(const TDesC&amp; aName,TOwnerType
+            aType)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Open(const TDesC&amp; aName,TOwnerType
+            aType)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Open(const TDesC&amp; aName,TOwnerType
+aType)             </codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMsgQueueBase::OpenGlobal(const TDesC&amp; aName,
+TOwnerType             aType)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or objects that are not
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RChunk::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RDevice::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMutex::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RCondVar::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSemaphore::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMsgQueueBase::Duplicate(const RThread&amp; aSrc,TOwnerType
+            aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>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. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::Open(TThreadId aID, TOwnerType       
+     aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RHandleBase::Open(const TFindHandleBase&amp;  
+          aFindHandle,TOwnerType aType)</codeph>  </p> </entry>
+<entry><p>Can't open objects without a name or those which aren't
+global. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::CaptureEventHook()</codeph>  </p> </entry>
+<entry><p>Can only be called by the Window Server process. </p> </entry>
+<entry><p>No </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class CSharableSession</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class CSession</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class CServer </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class RServer</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSessionBase::Share(TAttachMode             aAttachMode=EExplicitAttach)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSessionBase::Attach()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSessionBase::Send(TInt aFunction,TAny* aPtr) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSessionBase::SendReceive(TInt aFunction,TAny*
+            aPtr,TRequestStatus&amp; aStatus)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSessionBase::SendReceive(TInt aFunction,TAny*
+aPtr)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSubSessionBase::CreateSubSession(RSessionBase&amp;
+            aSession,TInt aFunction,const TAny* aPtr)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSubSessionBase::Send(TInt aFunction,const TAny*
+aPtr)</codeph> </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSubSessionBase::SendReceive(TInt aFunction,const
+TAny*             aPtr,TRequestStatus&amp; aStatus)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSubSessionBase::SendReceive(TInt aFunction,const
+TAny*             aPtr)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::DllGlobalAlloc(TInt aHandle,TInt aSize) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::DllGlobalAllocated(TInt aHandle) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::DllGlobalRead(TInt aHandle,TInt aPos,TInt
+            aLength,TDes8&amp; aDes)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::DllGlobalWrite(TInt aHandle,TInt aPos,const
+            TDesC8&amp; aDes)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Dll::GlobalAlloc(TInt aSize)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Dll::GlobalAllocated()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Dll::GlobalRead(TInt aPos, TInt aLength, TDes8&amp;
+            aDes)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Dll::GlobalWrite(TInt aPos,const TDesC8&amp; aDes) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>TBusLocalDrive::Lock(TMediaPassword&amp; aOldPassword,
+            TMediaPassword&amp; aNewPassword, TBool aStorePassword)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class CSecurityEncryptBase</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class CSecurityDecryptBase</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class CSecurityBase </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class CBoundedSecurityBase</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class Security</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RBusLogicalChannel::DoCreate(const TDesC&amp; aDevice,const
+            TVersion&amp; aVer,const TDesC* aChan,TInt aUnit,const
+TDesC* aDriver,const             TDesC8* anInfo,TOwnerType aType=EOwnerProcess)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RHeap::Adjust(TAny* aCell,TInt anOffset,TInt aDelta)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RHeap::AdjustL(TAny* aCell,TInt anOffset,TInt aDelta)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RHeap::FreeAll()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class THeapWalk</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>enum TDllReason </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class RDebug </codeph>  </p> </entry>
+<entry><p>) Removed. (Apart from Printf functions </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class TFindLogicalChannel</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>Rdevice::IsAvailable(TInt aUnit, const TDesC* 
+           aPhysicalDevice, const TDesC16* anInfo)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RLibrary::EntryPoint()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RLibrary::DllRefTable()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RThread::GetRamSizes(TInt&amp; aHeapSize,TInt&amp;
+            aStackSize)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-699F8282-62EF-3F13-85DC-5C0F7910A43D"><apiname>RThread::StackInfo()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RProcess::GetRamSizes(TInt&amp; aCodeSize, TInt&amp;
+            aConstDataSize, TInt&amp; anInitialisedDataSize, TInt&amp;
+            anUninitialisedDataSize)</codeph>  </p> </entry>
+<entry><p>Removed. Use <xref href="GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5.dita#GUID-B0E661BC-4058-3256-B9C3-5A4FD52F6DE5/GUID-7E02F11A-8E57-36BB-802B-2CF31BC707B2"><apiname>RThread::GetMemoryInfo()</apiname></xref> instead. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class TNotifyInfo</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>class Password</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>User::Adjust(TAny* aCell,TInt aOffset,TInt aDelta)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>User::AdjustL(TAny* aCell,TInt aOffset,TInt aDelta)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>User::__DbgMarkStart(RHeap::TDbgHeapType aHeapType)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>User::__DbgMarkCheck(RHeap::TDbgHeapType aHeapType,TBool
+            aCountAll,TInt aCount,const TDesC8&amp; aFileName,TInt
+aLineNum)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>User::__DbgMarkEnd(RHeap::TDbgHeapType aHeapType,TInt
+            aCount)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>User::__DbgSetAllocFail(RHeap::TDbgHeapType   
+         aHeapType,RHeap::TAllocFail aType,TInt aRate)</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::InitRegisterCallback(TCallBack, TInt) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::ChangeLocale(RLibrary aLibrary) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::DllInitialiseData(TInt aHandle) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::DllFreeData(TInt aHandle) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::WsRegisterThread(TThreadFunction) </codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>UserSvr::ServerStarted()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RMutex::Count()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+<row>
+<entry><p> <codeph>RSemaphore::Count()</codeph>  </p> </entry>
+<entry><p>Removed. </p> </entry>
+<entry><p>Yes </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table></conbody></concept>
\ No newline at end of file