解决方案 »
- 如何获取TAB控件中对话框的指针
- listView_GetItemText输出乱码 求助:)
- ado的几个指针是堆指针还是践指针??
- 如何重载CEdit使其能像我们在设置ip地址那样,可以自动用分隔符"."隔开数据,格式化用户输入的数据!!!
- 操作上的一些小问题
- “Unhandled exception in KeySound.exe 0xC0000005:Access Violation"。
- 请问一个windows编程问题:如果编写一个程序定期更换windows的桌面?
- SendInput函数怎么用?
- 怎么限定主窗口的大小啊?
- An (0EEDFADE) occurred during DllEntryPoint or DllMain in moduleexception
- 如何自定义消息,如何发送自定义消息!?
- Visual Assist 软件使用问题求助啊
包括保留扇区, FAT, ....等参考BOOL CDiskFile::ReadDiskCluster(LARGE_INTEGER llFirstCluster, LARGE_INTEGER llCount, BYTE *pBuf)
{
LARGE_INTEGER llOffset;
LARGE_INTEGER llReadCount;
DWORD dwRetVal;
BOOL bResult;
DWORD dwReadSize; bResult = FALSE;
llOffset.QuadPart = llFirstCluster.QuadPart * m_dwBytesPerSector * m_dwSectorsPerCluster;
llOffset.QuadPart += m_dwFat32FirstDataSector * m_dwBytesPerSector;
dwRetVal = SetFilePointer(m_hVolume, llOffset.LowPart, &llOffset.HighPart, FILE_BEGIN);
if(dwRetVal == INVALID_SET_FILE_POINTER)
goto ReadDiskClusterDone; llReadCount.QuadPart = llCount.QuadPart * m_dwBytesPerSector * m_dwSectorsPerCluster;
if(llReadCount.HighPart != 0)
assert(0); bResult = ReadFile(m_hVolume, pBuf, llReadCount.LowPart, &dwReadSize, NULL);
if(bResult && llReadCount.QuadPart != dwReadSize)
goto ReadDiskClusterDone; bResult = TRUE;ReadDiskClusterDone:
return bResult;
}
................
DWORD dwReservedSectors;
DWORD dwFatSectors;
DWORD dwDirtoryTableSectors; dwReservedSectors = Boot.ReservedSectors;
dwFatSectors = Boot.BigSectorsPerFat * Boot.NumberOfFATs; //FAT32
dwDirtoryTableSectors = ((Boot.RootEntries * 32 - 1) / m_dwBytesPerSector + 1) * m_dwBytesPerSector; m_dwFat32FirstDataSector = dwReservedSectors + dwFatSectors + dwDirtoryTableSectors;