You are visitor number
since 21 June 2006.
Go to Howard Kaikow's home page
Date: 16 July 2006(Modification of 28 June 2006 document)
From: Howard Kaikow <email@example.com>
Subject: Failure to access files on Ghost 10 mounted volumes
It was my expectation that a sub using the usual recursive FindFirstFile/FindNextFile would be able to walk the directory tree on any logical volume.
I have had no problems using the program with logical volumes that are on hard, floppy, optical, or ZIP drives; or with logical volumes that have been mounted by Acronis True Image 9.
In order to mount a volume from a backup program, the backup program has to supply a driver that interfaces with the native file system. Apparently, there are some differences in the way those drivers work for various products.
Some volumes mounted from Ghost 10 have not worked, i.e., the program hangs up trying to build a list of filenames for those volumes, and it is necessary to do a hard reboot. For one volume, the problem is reproducible well over 90 per cent of the time. I've had occasions in which the program will work for several consecutive runs on the same volume, and then fail on the next run.
If I do a reboot, mount particlar Ghost volumes, then run the code, the code will hang most of the time.
To make matters more interesting, I converted the VB 6 code to VB .NET.
There's nothing in the VB 6 or VB .NET code that could be expected to behave differently depending on how a volume was mounted.
Note that the volumes mounted have approximately the same number of files and the depth of the directory hierarchy is identical.
I am using Windows 2000.
I was wondering whether the problem was in Ghost or I made some programming error. I have posted the VB 6 and VB .NET code, and, for those not having either VB 6 or VB .NET, the executable from the VB 6 code. The code is really simple, and about two pages long. The question is whether the code is correct, not whether the code runs correctly on a system, as it may be difficult to reproduce the problem.
I may know how to reproduce the problem on other systems, but such details obscure the real issue, i.e., do other programmers find any problems in the code?
If it is determined that the code is correct, the only factor left seems to be the Ghost 10 driver. Before I decide whether I want to (Ugh!) deal with Symantec "support", I'd like others to validate the code.
To assure that Windows has not cached some file structures, it is necessary to reboot before running the test.
If the problem I have described occurs for a particular drive, it is expected that the system will hang and you will have to do a hard reboot by powering down the computer. So you should not run other programs, that cannot be interrupted, while running this test.
Download the Visual Basic 6 project
Download the Visual Basic 6 executable
Download the Visual Basic .NET (2003) solution