• wince 驱动程序的编写规范


    1.实现一个动态库,其中实现以下函数:
    DWORD xxx_Init( LPCTSTR pContext, LPCVOID lpvBusContext);
    DWORD xxx_Deinit( DWORD hDeviceContext );

    DWORD xxx_Open(DWORD hDeviceContext,DWORD dwAccess, DWORD dwShareMode);
    DWORD xxx_Close(  DWORD hDeviceContext );

    void XXX_PowerUp( DWORD hDeviceContext );
    void XXX_PowerDown(DWORD hDeviceContext );

    DWORD xxx_IOControl(
    DWORD hDeviceContext,
    DWORD dwCode,
    PBYTE pBufIn,
    DWORD dwLenIn,
    PBYTE pBufOut,
    DWORD dwLenOut,
    PDWORD pdwActualOut
    );

    2.在注册表中添加如下项目。(一般放在Platform.reg)
    [HKEY_LOCAL_MACHINEDriversBuiltInSampleDev]
    "Prefix"="XXX"
    "Dll"="MyDev.Dll"
    "Order"=dword:1
    3.在BIB文件中添加项目,将所用到的文件加入BIN文件(一般放在Platform.bib)。
    MyDev.dll $(_FLATRELEASEDIR)MyDev.dll NK SH
    注:
    SampleDev为任意与其它项目不重名的字符串.
    每个函数名的前缀XXX可以是任意大写的字符串,只要保证与注册表中Prefix后面的值相同就行。

    现在,已经知道了需要实现那些东西,那你一定急不可待,想知道如何去实现它。好了,一个最直接的方法,在platform/your CPU’s folder/drivers 下新建一个目录,然后在drivers目录中的dirs文件中加入以你刚新建的目录名。
    在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。新建名称分别为sources, makefile, mydev.def的文件。其内容如下:
    makefile: 只需要这样一行
    !INCLUDE $(_MAKEENVROOT)makefile.def

    mydriver.def文件定义需要输出的函数,这些函数能够被其它代码用动态加载的方法调用。格式:

    LIBRARY MyDev(这个字符串要和将要生成的动态库的文件名一样)

    EXPORTS
    XXX_Init
    XXX_Deinit
    XXX_Open
    XXX_Close
    XXX_PowerOff
    XXX_Power_Down
    XXX_IOControl
    Sources:这个文件很重要,内容也多,最基本的一个文件该有如下内容。

    TARGETNAME=MyDev(指定要生成的动态库的名称)
    TARGETTYPE=DYNLINK(指定要生成的是一个动态库)
    (下面两项指定需要与哪些动态库链接,一般要第一项就足够了)
    TARGETLIBS=$(_COMMONSDKROOT)lib$(_CPUINDPATH)coredll.lib
    $(_COMMONOAKROOT)lib$(_CPUINDPATH)ceddk.lib

    DEFFILE=MyDev.def (指定def文件)

    DLLENTRY=DllEntry(指定动态库的入口函数)

    SOURCES=(请在这写上你所有源文件的名字,它们将会被编译)

       

  • 相关阅读:
    六度分离_hdu_1869(floyd算法).java
    MFC版的Hello World
    Google Protobuf的安装、配置、以及简单demo编译
    在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决
    SharePoint 2013的100个新功能之网站管理(二)
    SharePoint 2013的100个新功能之网站管理(一)
    SharePoint 2013的100个新功能之社交
    SharePoint 2013的100个新功能之内容管理(四)
    SharePoint 2010 Ribbon with wrong style in Chrome and Safari
    SharePoint 2013的100个新功能之内容管理(三)
  • 原文地址:https://www.cnblogs.com/zym0805/p/2131584.html
Copyright © 2020-2023  润新知