我的SDIO接口的WIFI驱动有如下注册表:
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Custom\MANF-02DF-CARDID-9103-FUNC-1]
"Dll"="SDIO8686.dll" ; use the "streams" interface portion to load the NDIS portion
"Prefix"="NDL"
"Order"=dword:15
; add instance key for each instance that can be added
"Instance0"="SDIO8686:SDIO86861" ; "InstanceX" = ":"
请问高手这个注册表是不是说这个SDIO8686。DLL的驱动由什么来加载呀?这个注册表项有什么意思?另外SDIO的WIFI加载是怎么样的一个过程呀?恳请帮忙呀!
FileSys.exe会先根据LaunchXX的顺序依次加载各个应用程序或者dll。如果是应用程序,那么就CreateProcessW;如果是dll,就LoadKDll。在load之前会先调用一个函数CanBeLaunched判断dependXX中指定的进程是否已经ready,如果没有ready,则死等。所以每个在HKLM\Init下面的应用程序或者dll,在其WinMain或者初始化过程结束后,必须要SignalStart,告诉FileSys.exe自己已经就绪,否则会导致整个启动过程死掉。
噢,那SDIO的WIFI驱动呢?加载过程是怎么样的?
SDIO wifi的驱动一般都是厂商给的,而不是自己写的。
楼主首先你要讲清楚你的情况哦:
1、你用的哪家的SDIO wifi模块?厂商是否有提供驱动程序,是提供的源代码还是cab包?
2、你的catalog中有没有将SD Memory,SDIO standard controller加进去?
3、你是想通过wifi驱动的加载了解wince的驱动加载过程,还是只是想让你的wifi驱动跑起来?
涉及到具体的wifi驱动,其实很简单,增加注册表设置,bib文件中增加dll,将dll加入BSP,就这三步。即使你不了解wince的驱动加载过程,这三部都做好了,wifi驱动也就可以运行了。
/init键下的是开机自动启动的,才是由FileSys.exe加载的。
/drivers 下的驱动是由device.exe加载的。
我想了解SDIO接口的WIFI驱动的加载过程呀?我用的是USI的MARVELL8686这个驱动呀!
sd client驱动全部都是由SDBUS来加载的,当然前提是你按照微软的架构来做。插入MMC/SD/SDIO卡的时候,SDBUS driver会发command来识别插入卡的类型,然后来决定load哪种sd client driver。前面的人回答的乱七八糟。
你用我們公司產品 謝謝摟^^
sd卡插入 你的sd host controller偵測到卡插入
去叫sdbus driver sdbus driver判斷是呼叫啥呼叫
對應的client driver 例如sd卡 就會去叫sdmemory的dll去載入
這邊你的bus driver會判斷這是啥卡 然後根據你HKEY中的值去
把SDIO8686.dll load進來
谢谢上面两位先生了,这才是我要的答案,但是还有疑问呀?SDIO8686。DLL加载之前是不是要先SDBUS和SDHC都加载了才行呀,我想请问一下SDGetDeviceHandle这个函数呼叫失败是什么原因造成的,好像是上面调用NdisReadConfiguration时失败了,打印信息是:DNdis: Failed to get active path key,请问这是什么原因造成的呀?谢谢了!
sdbus怎么知道是啥卡,难道WIFI的硬件里面有写这个值吗?加载WIFI之前是不是先要进行一段S3C2440和WIFI之间的SDIO通讯呀?
那個api我沒用過~幫不上忙
但是我想sdbus應該是透過cmd去知道
是哪種類型的卡
wi-fi硬體應該會回覆cmd給bus driver
我是看到有蠻多command在送
但是沒去確認QQ
嗯,谢谢了,SDGetDeviceHandle这个API是在WIFI驱动的源码的IF文件夹里面有调用的,你可以找一下!知道了别忘了告诉我哦!