WinCE下的流驅動

二種方法加驅動--->NK.bin

方法一:
   1. dll文件放到 C:/WINCE500/PLATFORM/AT4X0BD/FILES目錄中.

   2. platform.reg
      ;----------------------------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;----------------------------------------------------------------------------
      [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
      "Prefix"="STR"
      "Dll"="MyDriver.dll"
      "Order"=dword:1

   3. platform.bib
      ;------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;------------------------------------------------------
      MyDriver.dll     $(_FLATRELEASEDIR)/MyDriver.dll     NK SH


   調用方法:
      HANDLE hStr=CreateFile(TEXT("STR1:"), GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
   
      if (INVALID_HANDLE_VALUE == hStr)
      {
        ::MessageBox(NULL, _T("Cannot open STR1:"), _T("StringApp"), MB_OK);
        return;
      }
 
      // Write a string to the driver.
      DWORD  dwWritten = 0;
      WCHAR* pString   = TEXT("This is a test of the String Driver. This is o-nly a test");
      WriteFile(hStr, pString, (_tcslen(pString)+1), &dwWritten, NULL);

      // Read string from driver.
      WCHAR wch[BUFFER_SIZE];
      DWORD dwBytesRead = BUFFER_SIZE;
      memset(&wch, '/0', BUFFER_SIZE * sizeof(WCHAR));
      ReadFile(hStr, wch, sizeof(wch), &dwBytesRead, NULL);
      ::MessageBox(NULL, wch, TEXT("StringApp"), MB_OK);
 
      // Disconnect from driver.
      CloseHandle(hStr);

 

 

方法二:

       爲了讓CEPB Debug代碼.
     
       1. 在platform/CPU's folder/drivers 下新建一個目錄,然後在drivers目錄中的dirs文件中加入以你剛          新建的目錄名.

       2. 在剛新建的目錄下,新建你的C源代碼文件,在其中實現上面所述的函數,及其功能。
          新建名稱分別爲sources, makefile, mydev.def的文件。

          (1)      
          makefile: 只需要這樣一行
          !INCLUDE $(_MAKEENVROOT)/makefile.def

          (2)
          mydriver.def
          LIBRARY     MyDev(這個字符串要和將要生成的動態庫的文件名一樣)
         
          EXPORTS
          XXX_Init
          XXX_Deinit
          XXX_Open
          XXX_Close
          XXX_PowerOff
          XXX_Power_Down
          XXX_IOControl

          (3)
          Sources:
          TARGETNAME=MyDev  (指定要生成的動態庫的名稱)
          TARGETTYPE=DYNLINK (指定要生成的是一個動態庫)
          (下面兩項指定需要與哪些動態庫鏈接, 一般要第一項就足夠了)
          TARGETLIBS=$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
                     $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib

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

          DLLENTRY=DllEntry (指定動態庫的入口函數)

          SOURCES= (請在這寫上你所有源文件的名字,它們將會被編譯)

   
   //也必須修改.bib, .reg等文件,這樣系統才能調用.
   (4) platform.reg
      ;----------------------------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;----------------------------------------------------------------------------
      [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
      "Prefix"="STR"
      "Dll"="MyDriver.dll"
      "Order"=dword:1

   (5) platform.bib
      ;------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;------------------------------------------------------
      MyDriver.dll     $(_FLATRELEASEDIR)/MyDriver.dll     NK SH


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章