-
大小: 1.36MB文件類型: .zip金幣: 2下載: 0 次發布日期: 2023-09-30
- 語言: 其他
- 標簽: FATFSv0.12??vs2010??多線程??
資源簡介
FATFSv0.12 在移動平臺開發時調試比較麻煩,這是移植到windows端vs2010的測試代碼。支持多線程寫文件到磁盤。

代碼片段和文件信息
/*-----------------------------------------------------------------------*/
/*?Low?level?disk?I/O?module?skeleton?for?FatFs?????(C)ChaN?2014????????*/
/*-----------------------------------------------------------------------*/
/*?If?a?working?storage?control?module?is?available?it?should?be????????*/
/*?attached?to?the?FatFs?via?a?glue?function?rather?than?modifying?it.???*/
/*?This?is?an?example?of?glue?functions?to?attach?various?exsisting??????*/
/*?storage?control?modules?to?the?FatFs?module?with?a?defined?API.???????*/
/*-----------------------------------------------------------------------*/
#include?“diskio.h“ /*?FatFs?lower?layer?API?*/
/*-----------------------------------------------------------------------*/
/*?Get?Drive?Status??????????????????????????????????????????????????????*/
/*-----------------------------------------------------------------------*/
static?HANDLE?hDevice?=?NULL;
long?long?g_SD_DevCap?=?0;
static?DSTATUS?DiskStatus;??//初始話磁盤狀態為未初始化
DSTATUS?disk_status?(
?????????????????????BYTE?pdrv /*?Physical?drive?nmuber?to?identify?the?drive?*/
)
{
????return?DiskStatus;
}
/*-----------------------------------------------------------------------*/
/*?Inidialize?a?Drive????????????????????????????????????????????????????*/
/*-----------------------------------------------------------------------*/
DSTATUS?disk_initialize?(
?????????????????????????BYTE?pdrv /*?Physical?drive?nmuber?to?identify?the?drive?*/
)
{
//? hDevice?=?CreateFile(“\\\\.\\G:“?
//? GENERIC_READ|GENERIC_WRITE?
//? FILE_SHARE_READ?|?FILE_SHARE_WRITE?
//? NULL?OPEN_EXISTING?FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED?NULL
//? );?
int?cbRet;
BOOL?bRet;
char?drv?=?(char)pdrv;
char?DriveDevicePath[]=“\\\\.\\Z:“;
DriveDevicePath[4]?=?‘G‘;
hDevice?=?CreateFileA(
(DriveDevicePath)
GENERIC_READ?|?GENERIC_WRITE
FILE_SHARE_READ?|?FILE_SHARE_WRITE?|?FILE_SHARE_DELETE
NULL?
OPEN_EXISTING?
FILE_FLAG_NO_BUFFERING
NULL);
if?(hDevice?==?INVALID_HANDLE_VALUE)?
{
DiskStatus?=?STA_NOINIT;
return?DiskStatus;
}
bRet=?DeviceIoControl(
(HANDLE)?hDevice??????????????//?handle?to?device
FSCTL_ALLOW_EXTENDED_DASD_IO??//?dwIoControlCode
NULL??????????????????????????//?lpInBuffer
0?????????????????????????????//?nInBufferSize
NULL??????????????????????????//?lpOutBuffer
0?????????????????????????????//?nOutBufferSize
&cbRet ?????????//?number?of?bytes?returned
NULL???????????????????????????//?OVERLAPPED?structure
);
// if?(?!bRet?)
// printf?(?“Failed?to?allow?extended?DASD?on?device“?);
// else
// printf?(?“FSCTL_ALLOW_EXTENDED_DASD_IO?OK\n“?);?
//?lock?it
bRet?=?DeviceIoControl(?hDevice?FSCTL_LOCK_VOLUME?NULL?0?NULL?0?&cbRet?NULL?);
if?(?!bRet?)
{
DWORD?ret?=?GetLastError();
DiskStatus?=?STA_NOINIT;
return?DiskStatus;
}
return?DiskStatus;
}
void?seek_to_sect(?HANDLE?hDevice?DWORD?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-10-25?11:32??Debug\
?????目錄???????????0??2016-10-25?11:30??FATFS\
?????目錄???????????0??2016-10-25?11:30??FATFS\Debug\
?????文件????????3253??2016-10-25?11:30??FATFS\Debug\FATFS.Build.CppClean.log
?????文件?????????445??2016-10-25?11:30??FATFS\Debug\FATFS.log
?????文件????????4557??2016-10-25?10:48??FATFS\FATFS.cpp
?????文件????????4684??2016-10-24?18:12??FATFS\FATFS.vcxproj
?????文件????????2020??2016-10-24?18:12??FATFS\FATFS.vcxproj.filters
?????文件?????????704??2016-10-24?19:03??FATFS\FATFS.vcxproj.user
?????文件????????1539??2016-10-20?14:34??FATFS\ReadMe.txt
?????目錄???????????0??2016-10-24?09:57??FATFS\Release\
?????文件???????84906??2016-10-24?09:57??FATFS\Release\CL.read.1.tlog
?????文件????????4078??2016-10-24?09:57??FATFS\Release\CL.write.1.tlog
?????文件????????1256??2016-10-24?09:57??FATFS\Release\FATFS.Build.CppClean.log
?????文件?????????381??2016-10-24?09:57??FATFS\Release\FATFS.exe.intermediate.manifest
?????文件??????????85??2016-10-24?09:57??FATFS\Release\FATFS.lastbuildstate
?????文件????????2496??2016-10-24?09:57??FATFS\Release\FATFS.log
?????文件???????90820??2016-10-24?09:57??FATFS\Release\FATFS.obj
?????文件?????1245184??2016-10-24?09:57??FATFS\Release\FATFS.pch
?????文件???????????0??2016-10-24?09:57??FATFS\Release\FATFS.write.1.tlog
?????文件??????589326??2016-10-24?09:57??FATFS\Release\cc936.obj
?????文件????????5060??2016-10-24?09:57??FATFS\Release\cl.command.1.tlog
?????文件???????65860??2016-10-24?09:57??FATFS\Release\diskio.obj
?????文件??????223474??2016-10-24?09:57??FATFS\Release\ff.obj
?????文件????????2568??2016-10-24?09:57??FATFS\Release\li
?????文件????????4626??2016-10-24?09:57??FATFS\Release\li
?????文件????????1518??2016-10-24?09:57??FATFS\Release\li
?????文件?????????512??2016-10-24?09:57??FATFS\Release\mt.command.1.tlog
?????文件?????????794??2016-10-24?09:57??FATFS\Release\mt.read.1.tlog
?????文件?????????336??2016-10-24?09:57??FATFS\Release\mt.write.1.tlog
?????文件???????50714??2016-10-24?09:57??FATFS\Release\stdafx.obj
............此處省略19個文件信息
評論
共有 條評論