When you shutdown the Windows virtual machine, the virtual hard disk is no longer accessible so of course /path/to/pvm/file/Windows\ Disks/C should no longer work. Parallels Desktop 7 keeps the links in the folder but they don't work when the virtual machine is not running.
Parallels Desktop 7 uses two different methods for mounting a virtual machine's hard disk:
#1) When a virtual machine is running, the virtual hard disk is mounted in Mac OS X using the following process hierarchy (viewed using Activity Monitor.app):
Code:
sh
prl_disp_service
prl_vm_app (the virtual machine process)
vfstool
The disk appears in the Finder as the name of the virtual machine with the drive letter used by the virtual machine: e.g. "[G] Windows 7 64"
The mount command shows something like this (pid is the process id of the prl_vm_app process):
Code:
vfstool#vm-pid32311 on /Volumes/G (prlufs, nodev, nosuid, synchronous, mounted by joevt)
Notice that virtual hard disks are mounted at /Volumes by drive letter. Multiple running virtual machines using the same drive letter will have a number appended to the drive letter for the mount path like this: "/Volumes/G 1"
#2) When a virtual machine is not running, the virtual hard disk can be mounted in Mac OS X using Parallels Mounter.app. The process hierarchy looks like this:
Code:
Parallels Mounter
Parallels Explorer
PEFSUtil
The disk appears in the Finder as the name of the .hdd file without the .hdd extension and with a different drive letter per partition, starting with [C] (e.g. "[C] Windows 7 64-0") no matter what drive letter is used in the virtual machine the disk belongs too since it's possible for a virtual hard disk to be used by more than one virtual machine that may use different drive letters for the same partition (drive letters are a figment of the Windows registry, they are not a property of the hard disk itself).
The mount command shows something like this:
Code:
PEFSUtil@prlufs2 on /Volumes/.PEVolumes/PEVolume{a0dfb333-a9b5-4e10-9882-838800de0a07} (prlufs, local, nodev, nosuid, synchronous, mounted by joevt)
Notice that there is now a "local" mount flag. This means the file system on the host Mac is in control of the contents of the disk and the Finder Get Info dialog will not show Server information. #1 above does show server information because the file system is not local (it belongs to the virtual machine but the Finder Get Info says localhost instead of the name or IP address of the virtual machine). Since locally mounted Parallels disks are not associated with a virtual machine, it makes sense that the mount path does not include the virtual machine name.
Now, for a virtual hard disk to remain mounted in Mac OS X whether the virtual machine is running or not, Parallels would need to rearrange all that perhaps by using a meta file system running in Parallels Explorer that would somehow seamlessly handle the transition between the virtual machine running and not running. Is it possible for the "local" flag to change for a mounted file system? If not then it would need to be removed from the case where the virtual machine is not running. That might cause a slight performance issue or some other issue related to the difference between local and non-local file systems. I think it would be best if the partitions were mounted in /Volumes using the volume name of the disk (like Mac OS X would do it). If the partition doesn't have a volume name, then the name of the virtual hard disk file should be used with the partition number (if there's more than one partition) since drive letters don't make sense when the virtual machine is not running or if the virtual hard disk is for a virtual machine other than Windows.
Another feature I would like to see is the ability to have Parallels mount Boot Camp partitions using it's file system without the virtual machine running. This only require Parallels Mounter to unmount the partition if it's currently being controlled by a different file system, otherwise the implementation is exactly the same as for a virtual hard disk file.