When solidcore is enabled, my application will not be able to replace the content of the file residing in remote machine.
I use win32API
Bool WINAPI MoveFileExA(
__in LPCTSTR lpExistingFileName,
__in_opt LPCTSTR lpNewFileName,
__in DWORD dwFlags
to replace the existing file. I use dwFlags "MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED".
This API fails with the message access denied.
Could anyone please suggest a solution to resolve this.
The file that you are trying to modify is protected by solidcore i.e. a solidified file, try adding the application that is modifying the file on remote computer to updater list and check the behaviour.
Thank you very much for the answer
I think, I need to give some more details about our application setup. So that you will be able to pinpoint the exact problem.
Our application will run in two different machines. One machine is called main console and othere one is call satellite console. In each console application will be running in it's own process. But both will share objected oriented database in main console.
If I execute a particular usecase in satellite console, it will create a file containing some information in one shared folder in main console. If I change the info and try to save in the same file from satellite console it will deny the access. But creation of file is not a problem. Only replacing with new content is creating the problem.
One more thing I have observed is, I am solidifying only C: But create, delete and rename of some files in D: and E: are not allowed through explorer.
Is it correct behaviour or I need to add some more configuration?
Thanks & regards,
Any authorized application or process that tries to modify any solidified file on a solidcore protected machine needs to be an updater. If a process is running as a non updater process and it tries to modify solidified files, access will be denied and process fails to modify the content of the solidified file.
On the other hand any process can modify/change the content of unsolidified files on solidcore protected system. A process will be able to write/create new files on the system with solidcore protection ON but those new files are unsolidified files.
To check if a file is a solidified file or not you can use the below command:
>sadmin ls d:\abc.bat
If the output is blank then the file is unsolidified and you will be able to delete/modify the files.
Can you also check the files that you are trying to modify on E: and D: drive are not solidified.