中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > USB設(shè)備驅(qū)動程序設(shè)計

        USB設(shè)備驅(qū)動程序設(shè)計

        作者:陳新忠 中國電子科技集團(tuán)公司第二十研究所 時間:2010-03-02 來源:電子產(chǎn)品世界 收藏

          設(shè)備的編程

        本文引用地址:http://www.antipu.com.cn/article/106464.htm

          在使用DriverWizard生成框架、模塊及部分程序源代碼后,開發(fā)者只需完成圖2中三個控制代碼所對應(yīng)的三個功能模塊的編程:模塊DIO_IOCTL_ ID_CODE_Handler的功能是從控制端點0讀取數(shù)據(jù),模塊DIO_IOCTL_ TEST_COMMAND_Handler的功能是向控制端點0發(fā)送一個控制命令,模塊USBDIO_IOCTL_DMA_COMMAND _Handler的功能是向控制端點0發(fā)送一個要求USB設(shè)備進(jìn)行DMA傳輸?shù)目刂泼睿旅媸堑谝粋€模塊的編程實例。

          NTSTATUS USBDIODevice::USBDIO

          _IOCTL_ID_CODE_Handler(KIrp I)

          {

          NTSTATUS status =STATUS_

          SUCCESS;

          t << "Entering USBDIODevice

          ::USBDIO _IOCTL_ID_ CODE_

          Handler, " << I << EOL;

          PURB pUrb;

          ULONG numData;

          numData=*(PUCHAR)I.IoctlBuffer();

          //設(shè)置讀取的數(shù)據(jù)個數(shù)

          pUrb=m_Lower.BuildVendorRequest(

          (PUCHAR)I.IoctlBuffer(),//驅(qū)動程

          序存放讀取的數(shù)據(jù)的內(nèi)存區(qū)

          numData,//wLength,讀取的數(shù)據(jù)個數(shù)

          0,

          0x0c,//bRequest 0,//wValue

          TRUE,//input

          TRUE,

          NULL,

          0x0472,//wIndex,傳輸?shù)焦碳绦?/p>

          的讀數(shù)命令碼

          URB_FUNCTION_VENDOR_ENDPOINT,

          NULL

          );

          if(pUrb==NULL)

          {

          I.Information() =0;

          status=STATUS_INSUFFICIENT_

          RESOURCES;

          }

          else

          {

          I.Information() =numData;

          tatus=m_Lower.SubmitUrb(pUrb,NULL,

          NULL,0);

          delete pUrb;

          }

          return status;

          }

          對象I包含了應(yīng)用程序下傳的IRP內(nèi)容,包括命令或數(shù)據(jù)等參數(shù),函數(shù)BuildVendorRequest用來分配并初始化一個用于廠商請求的URB(USB Request Block),該URB將作為下傳IRP的一個參數(shù),通過函數(shù)SubmitUrb發(fā)送給總線,以便完成與硬件的通信。



        關(guān)鍵詞: NXP USB 驅(qū)動程序

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉