Deleting a file in a Citrix Application Isolation Environment leaves a 0 KB file
Issue
When deleting a file in a Citrix Application Isolation Environment the behaviour is not as expected. After deleting the file a zero byte file is created.
Resolution
This seems to be a function of the logic of the AIE file isolation mechanism. It would appear the Citrix AIE uses user-defined NTFS attributes such as CITRIX_DELETED_FILE_MARKER. The logic works in the following way:
If (file exists in the isolated environment) Then
If (Size = 0) AND (CITRIX_DELETED_FILE_MARKER) Then
Return (NOT_FOUND)
Else
Return (Isolation File Handle)
End If
Else
If (Open file for read) Then
Return (Original File Handle)
Else
Copy (Original File, Isolation File)
Return (Isolation File Handle)
End If
End If
FileMon Trace:
DELETE C:\Application\File.txt SUCCESS
CLOSE C:\Application\File.txt SUCCESS
OPEN C:\Documents and Settings\citrixuser\Application Data\Citrix\AIE\Application\Device\C\Application\File.txt SUCCESS Options: OpenIf Access: 00100102
SET INFORMATION C:\Documents and Settings\citrixuser\Application Data\Citrix\AIE\Application\Device\C\Application\File.txt SUCCESS Length: 0
CREATE C:\Documents and Settings\citrixuser\Application Data\Citrix\AIE\Application\Device\C\Application\File.txt:CITRIX_DELETED_FILE_MARKER SUCCESS Options: OverwriteIf Access: 00100002
Products
Citrix Presentation Server 4.5
Created: 25th September 2007
Updated: 25th September 2007
© 2005-2024 Jamie Morrison