VC++6 Writefile return 0 bytes written in Windows 7
Hi,
Part of the codes in my application use Writefile to write to a disk partition. It works in XP but not in Windows 7. The value of TempPos is zero after written. What is wrong? Will there be file access rights problem? Thanks
__int64 Tmp64 = (((__int64) DriveInfo->NTRelativeSector) + ((__int64) DriveInfo->RelativeSector)) * 512;
long TempPos = Tmp64 & 0xFFFFFFFF;
long TempPosHi = (Tmp64 >> 32);
SetFilePointer(MyDisk[DriveInfo->Drive], TempPos, &TempPosHi, FILE_BEGIN);
TempPos = 0;
WriteFile(MyDisk[DriveInfo->Drive], Buffer, DriveInfo->NumSectors * 512, (DWORD *) &TempPos, NULL);
Re: VC++6 Writefile return 0 bytes written in Windows 7
Hi,
Where are you trying to write? Is it some kind of a system folder?
Can you read file in that folder? Can you make a file in that folder?
Thank you.
Re: VC++6 Writefile return 0 bytes written in Windows 7
Quote:
Originally Posted by
KevinA
Hi,
Part of the codes in my application use Writefile to write to a disk partition. It works in XP but not in Windows 7. The value of TempPos is zero after written. What is wrong? Will there be file access rights problem? Thanks
Your mistake is assuming that all your calls will be successful without checking them.
Where is your check for SetFilePointer() and WriteFile() return codes? In addition, did you call GetLastError()?
Pay attention to "Return Value" in the links below.
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Regards,
Paul McKenzie
Re: VC++6 Writefile return 0 bytes written in Windows 7