dual boot

I have recently installed free bsd on my windows xp laptop so that now it is a dual boot system. It worked fine for the first couple of days, but now whenever I try to boot into windows it hangs, giving the message WINDOWS\System32\DRIVERS\agp440.sys, bsd however, loads fine. I was wondering either how I could fix this problem so that windows will load properly, or if I have to re-install if there is any way to do so without destroying my bsd partition. I have considered using partition magic but I would first like to know, if it has to come to thi,s if it will work for bsd (all of the versions I have seen are for windows) and be able to solve my problem before I purchase the software.

Partition Magic is Windows only, once installed it creates floppy disks versions also. If you had owned it prior, you could have booted the system with the floppy version.
Can you mount the Windows partition under FreeBSD, and see if that mentioned file is missing, if so, then replace it if able to, which might require some prgoram to write to NTFS, unless you using FAT on the XP filesystem. Then see if the system boots afterwards.
You can partition the system with qtparted - which looks very similar to Partition Magic, plus its free and available on a bootable CD. You can download it from
http://www.sysresccd.org/

Thanks, i found out that the file was in fact missing, so I was able to maintain a copy of the file, however, when I try to copy it over to the directory (in root), it gives me an error saying that the directory doesn't exist, altho I am able to cd into it. How can I change the permissions so I can write to the windows partition?

Is the Windows directory mounted? If the filesystem on the Windows partition is NTFS, you will need to investigate on FreeBSD's current ability to write to NTFS. Since I do not use NTFS, I am not able to answer FreeBSD's current ability to write to this filesystem.

According to man mount_ntfs