4830|12

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

最早什么时侯可以从SD卡拷贝文件到windows目录? [复制链接]

需要在开机进入explorer之前把SD卡的几个文件拷到windows目录下。
我不懂驱动,于是瞎试一番。

在sdmemory的sdmemmain.cpp的DllEntry增加拷贝文件函数:
1        extern "C" BOOL WINAPI DllEntry(HINSTANCE hInstance, ULONG Reason, LPVOID pReserved)
2        {
3            BOOL fRet = TRUE;
4
5            if ( Reason == DLL_PROCESS_ATTACH ) {
6                if (!SDInitializeCardLib()) {
7                    fRet = FALSE;
8                }
9                        MyCopySdToPhone();        //从SD卡拷到手机  000
10            }
11            else if ( Reason == DLL_PROCESS_DETACH ) {
12                SDDeinitializeCardLib();
13           }
14           else if ( Reason == DLL_THREAD_DETACH ) {
15                        MyCopySdToPhone();        //从SD卡拷到手机        111
16    }
17                        return fRet;
18        }

从log文件看,执行第9行时读不到sd卡的文件。执行15行时能读到sd卡文件,并且复制成功。但是是在explorer启动之后执行的。
此外在SMC_Init()结束处执行MyCopySdToPhone()的话,也是读不到sd卡的文件。

最新回复

有意思,首先应该明确的是要SD驱动和文件系统加载完了才可以拷贝,至于用何种方式应该都可以,猜测而已,没试过,祝楼主成功...  详情 回复 发表于 2009-2-4 16:02
点赞 关注

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有意思

DllEntry是加载DLL首先的入口,
楼主现在在还没有初始化这个SD卡的情况下(初始化要在DllEntry之后)去操作SD卡,我觉得是不可行的。

 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 gooogleman 的回复:
有意思

DllEntry是加载DLL首先的入口,
楼主现在在还没有初始化这个SD卡的情况下(初始化要在DllEntry之后)去操作SD卡,我觉得是不可行的。



在文件sdmemmain.cpp的很多地方试过都不行。
在哪才可以呢?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
我觉得你的思想是可行的。因为文件系统先于驱动加载了,
———————————
你现在是相当于把应用程序放在驱动里面

我建议你写一个单层的流驱动来完成这个工作,加载顺序在SD卡驱动之后即可。

我这个也没有做过,只是觉得可行,楼主搞出来给我留个言,我以后也弄弄。

 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

5
 
up
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

6
 
是否可以通过IsAPIReady来判断是否可以调用相关的文件拷贝函数,当然它必须在SD卡驱动加载之后了
可以把SD卡驱动加载的顺序调到比较前面
 
 
 

回复

89

帖子

0

TA的资源

禁止访问

7
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 gsymichael 的回复:
SD卡加载后还要加载文件系统,可以利用文件系统Mount时发送的消息,等到这个消息就可以拷贝了

这个消息在哪里发?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 gsymichael 的回复:
SD卡加载后还要加载文件系统,可以利用文件系统Mount时发送的消息,等到这个消息就可以拷贝了


还是你深入了解了。


楼主你看看注册表
写个驱动,在SD驱动和其文件系统之后加载就可以拷贝了。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
从系统架构和文件系统原理来看,应该是文件系统和SD驱动都加载完,才可以操作。

写一个小驱动,在加载时,通过order决定加载顺序在SD的驱动之后,应该就可以顺利复制了。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
SD卡的文件系统加载成功后设备管理发送FATFS的GUID出来,等到这个消息就可以了。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

12
 
to comey ,


Wince 中默认情况下定义了些IClass,可以通过
HANDLE RequestDeviceNotifications(
  const GUID* devclass,
  HANDLE hMsgQ,
  BOOL fAll
);获取设备挂载的通知,来获取STORE_MOUNT_GUID的通知,然后使用函数等待事件发生,然后就可以执行你要的动作了。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

13
 
有意思,首先应该明确的是要SD驱动和文件系统加载完了才可以拷贝,至于用何种方式应该都可以,猜测而已,没试过,祝楼主成功...
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
ADI &文晔 探索季第一站,邀您在活动帖跟帖,ADI资深工程师将与您一道寻求解决之道! ...
春晚,最出圈当属穿着棉马甲跳秧歌的机器人”秧Bot”。
转手绢、飞手绢、变换队形,精准度和稳定性甚至超越人类,这背后少不了电机控制技术。

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表