userlibandfileserver/fileserver/smassstorage/cmassstoragemountcb.cpp
changeset 286 48e57fb1237e
parent 90 947f0dc9f7a8
equal deleted inserted replaced
285:ff5437e4337c 286:48e57fb1237e
    10 //
    10 //
    11 // Contributors:
    11 // Contributors:
    12 //
    12 //
    13 // Description:
    13 // Description:
    14 // CMassStorageMountCB implementation.
    14 // CMassStorageMountCB implementation.
    15 // 
    15 //
    16 //
    16 //
    17 
    17 
    18 /**
    18 /**
    19  @file
    19  @file
    20  @internalTechnology
    20  @internalTechnology
    21 */
    21 */
    22 
    22 
    23 #include <f32fsys.h>
    23 #include <f32fsys.h>
    24 #include <f32file.h>
    24 #include <f32file.h>
    25 #include "cmassstoragemountcb.h"
    25 
       
    26 #include "drivemanager.h"
    26 #include "cusbmassstoragecontroller.h"
    27 #include "cusbmassstoragecontroller.h"
    27 #include "cmassstoragefilesystem.h"
    28 #include "cmassstoragefilesystem.h"
    28 #include "massstoragedebug.h"
    29 #include "cmassstoragemountcb.h"
       
    30 
       
    31 #include "OstTraceDefinitions.h"
       
    32 #ifdef OST_TRACE_COMPILER_IN_USE
       
    33 #include "cmassstoragemountcbTraces.h"
       
    34 #endif
       
    35 
    29 
    36 
    30 CMassStorageMountCB::CMassStorageMountCB(const RArray<TInt>& aDriveMapping)
    37 CMassStorageMountCB::CMassStorageMountCB(const RArray<TInt>& aDriveMapping)
    31     : iDriveMapping(aDriveMapping)
    38     : iDriveMapping(aDriveMapping)
    32 	{
    39     {
    33 	}
    40     }
    34 
    41 
    35 CMassStorageMountCB* CMassStorageMountCB::NewL(const RArray<TInt>& aDriveMapping)
    42 CMassStorageMountCB* CMassStorageMountCB::NewL(const RArray<TInt>& aDriveMapping)
    36 	{
    43     {
    37 	return new (ELeave) CMassStorageMountCB(aDriveMapping);
    44     return new (ELeave) CMassStorageMountCB(aDriveMapping);
    38 	}
    45     }
    39 
    46 
    40 /**
    47 /**
    41 Checks that the drive number is supported.
    48 Checks that the drive number is supported.
    42 
    49 
    43 @leave KErrNotReady The drive number is not supported.
    50 @leave KErrNotReady The drive number is not supported.
    44 */
    51 */
    45 TInt CMassStorageMountCB::CheckDriveNumberL()
    52 TInt CMassStorageMountCB::CheckDriveNumberL()
    46 	{
    53     {
    47 	__FNLOG("CMassStorageMountCB::CheckDriveNumberL");
    54     TInt driveNumber;
    48 	TInt driveNumber;
    55     driveNumber = Drive().DriveNumber();
    49 	driveNumber = Drive().DriveNumber();
    56     OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_100,
    50 	if (!IsValidLocalDriveMapping(driveNumber))
    57               "Drive=%d", driveNumber);
    51 		{
    58     if (!IsValidLocalDriveMapping(driveNumber))
    52 		__PRINT1(_L("CMassStorageMountCB::CheckDriveNumberL: Drive number %d not supported"), driveNumber);
    59         {
    53 		User::Leave(KErrNotReady);
    60         OstTrace0(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_101,
    54 		}
    61                   "Drive number not supported");
    55 	__PRINT1(_L("CMassStorageMountCB::CheckDriveNumberL: Drive number = %d"), driveNumber);
    62         User::Leave(KErrNotReady);
    56 	return driveNumber;
    63         }
    57 	}
    64     return driveNumber;
       
    65     }
    58 
    66 
    59 /**
    67 /**
    60 Registers the drive with the Mass Storage drive manager.
    68 Registers the drive with the Mass Storage drive manager.
    61 
    69 
    62 @leave KErrNotSupported The drive is not compatible with Mass Storage.
    70 @leave KErrNotSupported The drive is not compatible with Mass Storage.
    63 */
    71 */
    64 void CMassStorageMountCB::MountL(TBool /*aForceMount*/)
    72 void CMassStorageMountCB::MountL(TBool /*aForceMount*/)
    65 	{
    73     {
    66 	__FNLOG("CMassStorageMountCB::MountL");
    74     CheckDriveNumberL();
    67 
    75     CMassStorageFileSystem& msFsys = *reinterpret_cast<CMassStorageFileSystem*>(Drive().GetFSys());
    68 	CheckDriveNumberL();
    76 
    69 	CMassStorageFileSystem& msFsys = *reinterpret_cast<CMassStorageFileSystem*>(Drive().GetFSys());
    77     TInt lun = DriveNumberToLun(Drive().DriveNumber());
    70 
    78 
    71 	TInt lun = DriveNumberToLun(Drive().DriveNumber());
    79     OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_120,
    72 
    80               "LUN=%d", lun);
    73 	if(lun < 0)
    81 
    74 		{
    82     if(lun < 0)
    75 		// This is not a supported Mass Storage drive
    83         {
    76 		User::Leave(KErrNotSupported);
    84         // This is not a supported Mass Storage drive
    77 		}
    85         User::Leave(KErrNotSupported);
    78 
    86         }
    79 	TBusLocalDrive& localDrive = msFsys.iLocalDriveForMediaFlag[lun];
    87 
    80 
    88     TBusLocalDrive& localDrive = msFsys.iLocalDriveForMediaFlag[lun];
    81 	TInt err = CreateLocalDrive(localDrive);
    89 
    82 	User::LeaveIfError(err);
    90     TInt err = CreateLocalDrive(localDrive);
    83 
    91     User::LeaveIfError(err);
    84 	CProxyDrive* proxyDrive = LocalDrive();
    92 
    85 
    93     CProxyDrive* proxyDrive = LocalDrive();
    86 	TLocalDriveCapsV2Buf caps;
    94 
    87 	err = localDrive.Caps(caps);
    95     TLocalDriveCapsV2Buf caps;
    88 	//Make sure file system is FAT and removable
    96     err = localDrive.Caps(caps);
    89 	if (err == KErrNone)
    97     //Make sure file system is FAT and removable
    90 		{
    98     if (err == KErrNone)
    91 		err = KErrNotSupported;
    99         {
    92 		if ((caps().iDriveAtt & KDriveAttRemovable) == KDriveAttRemovable)
   100         err = KErrNotSupported;
    93 			{
   101         if ((caps().iDriveAtt & KDriveAttRemovable) == KDriveAttRemovable)
    94 			if (caps().iType != EMediaNotPresent)
   102             {
    95 				{
   103             if (caps().iType != EMediaNotPresent)
    96 				err = KErrNone;
   104                 {
    97 				}
   105                 err = KErrNone;
    98 			}
   106                 }
    99 		}
   107             }
   100 
   108         }
   101 	if (err != KErrNone && err != KErrNotReady)
   109 
   102 		{
   110     if (err != KErrNone && err != KErrNotReady)
   103 		__PRINT1(_L("CMassStorageMountCB::MountL: Drive is not compatible with Mass Storage, err=%d"), err);
   111         {
   104 		User::Leave(err);
   112         OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_121,
   105 		}
   113                   "Drive is not compatible with Mass Storage err=%d", err);
   106 
   114         User::Leave(err);
   107 	__PRINT(_L("CMassStorageMountCB::MountL: Registering drive"));
   115         }
   108 
   116 
   109 	// Set media changed to true so that Win2K doesn't used cached drive data
   117     // Set media changed to true so that Win2K doesn't used cached drive data
   110 	(*msFsys.iMediaChanged)[lun] = ETrue;
   118     (*msFsys.iMediaChanged)[lun] = ETrue;
   111 
   119 
   112 	msFsys.Controller().DriveManager().RegisterDrive(*proxyDrive, (*msFsys.iMediaChanged)[lun], lun);
   120     msFsys.Controller().DriveManager().RegisterDrive(*proxyDrive, (*msFsys.iMediaChanged)[lun], lun);
   113 
   121 
   114 	SetVolumeName(_L("MassStorage").AllocL());
   122     SetVolumeName(_L("MassStorage").AllocL());
   115 	}
   123     }
   116 
   124 
   117 /**
   125 /**
   118 Returns the LUN that corresponds to the specified drive number.
   126 Returns the LUN that corresponds to the specified drive number.
   119 
   127 
   120 @param aDriveNumber The drive number.
   128 @param aDriveNumber The drive number.
   121 */
   129 */
   122 TInt CMassStorageMountCB::DriveNumberToLun(TInt aDriveNumber)
   130 TInt CMassStorageMountCB::DriveNumberToLun(TInt aDriveNumber)
   123 	{
   131     {
   124 	__FNLOG("CMassStorageMountCB::DriveNumberToLun");
   132     TInt lun = -1;
   125 	TInt lun = -1;
   133     for (TInt i = 0; i < iDriveMapping.Count(); i++)
   126 	for (TInt i = 0; i < iDriveMapping.Count(); i++)
   134         {
   127 		{
   135         if (iDriveMapping[i] == aDriveNumber)
   128 		if (iDriveMapping[i] == aDriveNumber)
   136             {
   129 			{
   137             lun = i;
   130 			lun = i;
   138             break;
   131 			break;
   139             }
   132 			}
   140         }
   133 		}
   141     OstTraceExt2(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_130,
   134 	__PRINT2(_L("CMassStorageMountCB::DriveNumberToLun: Drive %d maps to LUN %d"), aDriveNumber, lun);
   142                  "Drive %d maps to LUN %d", aDriveNumber, lun);
   135 	return lun;
   143     return lun;
   136 	}
   144     }
   137 
   145 
   138 /**
   146 /**
   139 Deregisters the drive from the Drive Manager.
   147 Deregisters the drive from the Drive Manager.
   140 */
   148 */
   141 void CMassStorageMountCB::Dismounted()
   149 void CMassStorageMountCB::Dismounted()
   142 	{
   150     {
   143 	__FNLOG("CMassStorageMountCB::Dismounted");
   151     TInt driveNumber = -1;
   144 	TInt driveNumber = -1;
   152     TRAPD(err, driveNumber = CheckDriveNumberL());
   145 	TRAPD(err, driveNumber = CheckDriveNumberL());
   153     if (err != KErrNone)
   146 	if (err != KErrNone)
   154         {
   147 		{
   155         return;
   148 		return;
   156         }
   149 		}
   157     OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_140,
   150 	__PRINT(_L("CMassStorageMountCB::Dismounted: Deregistering drive"));
   158               "Dismounted drive %d", driveNumber);
   151     CMassStorageFileSystem& msFsys = *reinterpret_cast<CMassStorageFileSystem*>(Drive().GetFSys());
   159     CMassStorageFileSystem& msFsys = *reinterpret_cast<CMassStorageFileSystem*>(Drive().GetFSys());
   152 	msFsys.Controller().DriveManager().DeregisterDrive(DriveNumberToLun(driveNumber));
   160     msFsys.Controller().DriveManager().DeregisterDrive(DriveNumberToLun(driveNumber));
   153 	
   161 
   154 	DismountedLocalDrive();
   162     DismountedLocalDrive();
   155 	}
   163     }
   156 
   164 
   157 /**
   165 /**
   158 Unlocks the drive with the specified password, optionally storing the password for later use.
   166 Unlocks the drive with the specified password, optionally storing the password for later use.
   159 
   167 
   160 @param aPassword The password to use for unlocking the drive.
   168 @param aPassword The password to use for unlocking the drive.
   161 @param aStore True if the password is to be stored.
   169 @param aStore True if the password is to be stored.
   162 */
   170 */
   163 TInt CMassStorageMountCB::Unlock(TMediaPassword& aPassword, TBool aStore)
   171 TInt CMassStorageMountCB::Unlock(TMediaPassword& aPassword, TBool aStore)
   164 	{
   172     {
   165 	__FNLOG("CMassStorageMountCB::Unlock");
   173     TInt driveNumber = -1;
   166 	TInt driveNumber = -1;
   174     TRAPD(err, driveNumber = CheckDriveNumberL());
   167 	TRAPD(err, driveNumber = CheckDriveNumberL());
   175     OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_150,
   168 	if (err != KErrNone)
   176               "Unlock drive %d", driveNumber);
   169 		{
   177     if (err != KErrNone)
   170 		return err;
   178         {
   171 		}
   179         return err;
   172 	TBusLocalDrive& localDrive=GetLocalDrive(driveNumber);
   180         }
   173 	if(localDrive.Status() == KErrLocked)
   181     TBusLocalDrive& localDrive=GetLocalDrive(driveNumber);
   174 		{
   182     if(localDrive.Status() == KErrLocked)
   175 		localDrive.Status() = KErrNotReady;
   183         {
   176 		}
   184         localDrive.Status() = KErrNotReady;
   177 	TInt r = localDrive.Unlock(aPassword, aStore);
   185         }
   178 	if(r == KErrNone && aStore)
   186     TInt r = localDrive.Unlock(aPassword, aStore);
   179 		{
   187     if(r == KErrNone && aStore)
   180 		WritePasswordData();
   188         {
   181 		}
   189         WritePasswordData();
   182 	return(r);
   190         }
   183 	}
   191     return(r);
       
   192     }
   184 
   193 
   185 /**
   194 /**
   186 Stores the password for the drive to the password file.
   195 Stores the password for the drive to the password file.
   187 */
   196 */
   188 void CMassStorageMountCB::WritePasswordData()
   197 void CMassStorageMountCB::WritePasswordData()
   189 	{
   198     {
   190 	__FNLOG("CMassStorageMountCB::WritePasswordData");
   199     TBusLocalDrive& local=GetLocalDrive(Drive().DriveNumber());
   191 	TBusLocalDrive& local=GetLocalDrive(Drive().DriveNumber());
   200     OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_160,
   192 	TInt length = local.PasswordStoreLengthInBytes();
   201               "WritePasswordData drive %d", DriveNumber());
   193 	if(length==0)
   202     TInt length = local.PasswordStoreLengthInBytes();
   194 		{
   203     if(length==0)
   195 		TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
   204         {
   196 		mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
   205         TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
   197 		WriteToDisk(mediaPWrdFile,_L8(""));
   206         mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
   198 		return;
   207         WriteToDisk(mediaPWrdFile,_L8(""));
   199 		}
   208         return;
   200 	HBufC8* hDes=HBufC8::New(length);
   209         }
   201 	if(hDes==NULL)
   210     HBufC8* hDes=HBufC8::New(length);
   202 		{
   211     if(hDes==NULL)
   203 		return;
   212         {
   204 		}
   213         return;
   205 	TPtr8 pDes=hDes->Des();
   214         }
   206 	TInt r=local.ReadPasswordData(pDes);
   215     TPtr8 pDes=hDes->Des();
   207 	if(r==KErrNone)
   216     TInt r=local.ReadPasswordData(pDes);
   208 		{
   217     if(r==KErrNone)
   209 		TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
   218         {
   210 		mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
   219         TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
   211 		WriteToDisk(mediaPWrdFile,pDes);
   220         mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
   212 		}
   221         WriteToDisk(mediaPWrdFile,pDes);
   213 	delete hDes;
   222         }
   214 	}
   223     delete hDes;
       
   224     }
   215 
   225 
   216 TInt CMassStorageMountCB::ReMount()
   226 TInt CMassStorageMountCB::ReMount()
   217 	{
   227     {
   218 	return KErrNotReady;
   228     return KErrNotReady;
   219 	}
   229     }
   220 
   230 
   221 void CMassStorageMountCB::VolumeL(TVolumeInfo& /*aVolume*/) const
   231 void CMassStorageMountCB::VolumeL(TVolumeInfo& /*aVolume*/) const
   222 	{
   232     {
   223 	User::Leave(KErrNotReady);
   233     User::Leave(KErrNotReady);
   224 	}
   234     }
   225 
   235 
   226 void CMassStorageMountCB::SetVolumeL(TDes& /*aName*/)
   236 void CMassStorageMountCB::SetVolumeL(TDes& /*aName*/)
   227 	{
   237     {
   228 	User::Leave(KErrNotReady);
   238     User::Leave(KErrNotReady);
   229 	}
   239     }
   230 
   240 
   231 void CMassStorageMountCB::MkDirL(const TDesC& /*aName*/)
   241 void CMassStorageMountCB::MkDirL(const TDesC& /*aName*/)
   232 	{
   242     {
   233 	User::Leave(KErrNotReady);
   243     User::Leave(KErrNotReady);
   234 	}
   244     }
   235 
   245 
   236 void CMassStorageMountCB::RmDirL(const TDesC& /*aName*/)
   246 void CMassStorageMountCB::RmDirL(const TDesC& /*aName*/)
   237 	{
   247     {
   238 	User::Leave(KErrNotReady);
   248     User::Leave(KErrNotReady);
   239 	}
   249     }
   240 
   250 
   241 void CMassStorageMountCB::DeleteL(const TDesC& /*aName*/)
   251 void CMassStorageMountCB::DeleteL(const TDesC& /*aName*/)
   242 	{
   252     {
   243 	User::Leave(KErrNotReady);
   253     User::Leave(KErrNotReady);
   244 	}
   254     }
   245 
   255 
   246 void CMassStorageMountCB::RenameL(const TDesC& /*anOldName*/,const TDesC& /*anNewName*/)
   256 void CMassStorageMountCB::RenameL(const TDesC& /*anOldName*/,const TDesC& /*anNewName*/)
   247 	{
   257     {
   248 	User::Leave(KErrNotReady);
   258     User::Leave(KErrNotReady);
   249 	}
   259     }
   250 
   260 
   251 void CMassStorageMountCB::ReplaceL(const TDesC& /*anOldName*/,const TDesC& /*anNewName*/)
   261 void CMassStorageMountCB::ReplaceL(const TDesC& /*anOldName*/,const TDesC& /*anNewName*/)
   252 	{
   262     {
   253 	User::Leave(KErrNotReady);
   263     User::Leave(KErrNotReady);
   254 	}
   264     }
   255 
   265 
   256 void CMassStorageMountCB::EntryL(const TDesC& /*aName*/,TEntry& /*anEntry*/) const
   266 void CMassStorageMountCB::EntryL(const TDesC& /*aName*/,TEntry& /*anEntry*/) const
   257 	{
   267     {
   258 	User::Leave(KErrNotReady);
   268     User::Leave(KErrNotReady);
   259 	}
   269     }
   260 
   270 
   261 void CMassStorageMountCB::SetEntryL(const TDesC& /*aName*/,const TTime& /*aTime*/,TUint /*aSetAttMask*/,TUint /*aClearAttMask*/)
   271 void CMassStorageMountCB::SetEntryL(const TDesC& /*aName*/,const TTime& /*aTime*/,TUint /*aSetAttMask*/,TUint /*aClearAttMask*/)
   262 	{
   272     {
   263 	User::Leave(KErrNotReady);
   273     User::Leave(KErrNotReady);
   264 	}
   274     }
   265 
   275 
   266 void CMassStorageMountCB::FileOpenL(const TDesC& /*aName*/,TUint /*aMode*/,TFileOpen /*anOpen*/,CFileCB* /*aFile*/)
   276 void CMassStorageMountCB::FileOpenL(const TDesC& /*aName*/,TUint /*aMode*/,TFileOpen /*anOpen*/,CFileCB* /*aFile*/)
   267 	{
   277     {
   268 	User::Leave(KErrNotReady);
   278     User::Leave(KErrNotReady);
   269 	}
   279     }
   270 
   280 
   271 void CMassStorageMountCB::DirOpenL(const TDesC& /*aName*/,CDirCB* /*aDir*/)
   281 void CMassStorageMountCB::DirOpenL(const TDesC& /*aName*/,CDirCB* /*aDir*/)
   272 	{
   282     {
   273 	User::Leave(KErrNotReady);
   283     User::Leave(KErrNotReady);
   274 	}
   284     }
   275 
   285 
   276 
   286 
   277 void CMassStorageMountCB::RawReadL(TInt64 /*aPos*/,TInt /*aLength*/,const TAny* /*aTrg*/,TInt /*anOffset*/,const RMessagePtr2& /*aMessage*/) const
   287 void CMassStorageMountCB::RawReadL(TInt64 /*aPos*/,TInt /*aLength*/,const TAny* /*aTrg*/,TInt /*anOffset*/,const RMessagePtr2& /*aMessage*/) const
   278 	{
   288     {
   279 	User::Leave(KErrNotReady);
   289     User::Leave(KErrNotReady);
   280 	}
   290     }
   281 
   291 
   282 void CMassStorageMountCB::RawWriteL(TInt64 /*aPos*/,TInt /*aLength*/,const TAny* /*aSrc*/,TInt /*anOffset*/,const RMessagePtr2& /*aMessage*/)
   292 void CMassStorageMountCB::RawWriteL(TInt64 /*aPos*/,TInt /*aLength*/,const TAny* /*aSrc*/,TInt /*anOffset*/,const RMessagePtr2& /*aMessage*/)
   283 	{
   293     {
   284 	User::Leave(KErrNotReady);
   294     User::Leave(KErrNotReady);
   285 	}
   295     }
   286 
   296 
   287 
   297 
   288 void CMassStorageMountCB::GetShortNameL(const TDesC& /*aLongName*/,TDes& /*aShortName*/)
   298 void CMassStorageMountCB::GetShortNameL(const TDesC& /*aLongName*/,TDes& /*aShortName*/)
   289 	{
   299     {
   290 	User::Leave(KErrNotReady);
   300     User::Leave(KErrNotReady);
   291 	}
   301     }
   292 
   302 
   293 void CMassStorageMountCB::GetLongNameL(const TDesC& /*aShorName*/,TDes& /*aLongName*/)
   303 void CMassStorageMountCB::GetLongNameL(const TDesC& /*aShorName*/,TDes& /*aLongName*/)
   294 	{
   304     {
   295 	User::Leave(KErrNotReady);
   305     User::Leave(KErrNotReady);
   296 	}
   306     }
   297 
   307 
   298 #if defined(_DEBUG)
   308 #if defined(_DEBUG)
   299 TInt CMassStorageMountCB::ControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2)
   309 TInt CMassStorageMountCB::ControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2)
   300 //
   310 //
   301 // Debug function
   311 // Debug function
   302 //
   312 //
   303 	{
   313     {
   304 	if(aCommand>=(KMaxTInt/2))
   314     if(aCommand>=(KMaxTInt/2))
   305 		return LocalDrive()->ControlIO(aMessage,aCommand-(KMaxTInt/2),aParam1,aParam2);
   315         return LocalDrive()->ControlIO(aMessage,aCommand-(KMaxTInt/2),aParam1,aParam2);
   306 	else
   316     else
   307 		return KErrNotSupported;
   317         return KErrNotSupported;
   308 	}
   318     }
   309 #else
   319 #else
   310 TInt CMassStorageMountCB::ControlIO(const RMessagePtr2& /*aMessage*/,TInt /*aCommand*/,TAny* /*aParam1*/,TAny* /*aParam2*/)
   320 TInt CMassStorageMountCB::ControlIO(const RMessagePtr2& /*aMessage*/,TInt /*aCommand*/,TAny* /*aParam1*/,TAny* /*aParam2*/)
   311 	{return(KErrNotSupported);}
   321     {return(KErrNotSupported);}
   312 #endif
   322 #endif
   313 
   323 
   314 void CMassStorageMountCB::ReadSectionL(const TDesC& /*aName*/,TInt /*aPos*/,TAny* /*aTrg*/,TInt /*aLength*/,const RMessagePtr2& /*aMessage*/)
   324 void CMassStorageMountCB::ReadSectionL(const TDesC& /*aName*/,TInt /*aPos*/,TAny* /*aTrg*/,TInt /*aLength*/,const RMessagePtr2& /*aMessage*/)
   315 	{
   325     {
   316 	User::Leave(KErrNotReady);
   326     User::Leave(KErrNotReady);
   317 	}
   327     }
   318 
   328