freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

wince下的usb設(shè)備(編輯修改稿)

2025-08-31 10:14 本頁面
 

【文章內(nèi)容簡介】 嚇得不行,那樣后面可就沒法做了。在上次了解了所有USBD接口函數(shù)以后,我們已經(jīng)有了很多基礎(chǔ)知識了,回顧USB樣例的文件夾結(jié)構(gòu),我們還能記得USB/CLASS/COMMON這個文件夾下是存放所公共部分的源程序,它是微軟專門抽象出來的能為大多數(shù)USB設(shè)備驅(qū)動程序服務(wù)的一些結(jié)構(gòu)體以及函數(shù)的封裝,我們這次再來概略的了解一下這里面的源程序。 這里面包含了三個程序,分別是: remlock usbclient utils 下面我們分別來了解一下這三個程序的功能和接口,很顯然,USB設(shè)備驅(qū)動程序肯定是會用到這其中的一部分函數(shù)的,因此我們不一定需要讀懂這其中的每一行,但至少要對這些函數(shù)有個印象,不至于在讀驅(qū)動程序時不知道函數(shù)的來源。 remlock程序是一個移除設(shè)備的鎖,利用這個結(jié)構(gòu)體 typedef struct _REMOVE_LOCK { BOOL Removed。 LONG IoCount。 HANDLE RemoveEvent。 } REMOVE_LOCK, *PREMOVE_LOCK來實現(xiàn)在設(shè)備移除時進行的同步控制。其中Removed成員是對設(shè)備是否已經(jīng)移除的標識,IoCount成員是對設(shè)備進行訪問的數(shù)量,這也是驅(qū)動程序中常用的行為,就像此前我們看到的那個Lock程序一樣,RemoveEvent是一個內(nèi)核事件,熟悉WIN32編程的應(yīng)該都很清楚,它是內(nèi)核通知應(yīng)用程序的一種方式,也是線程這間并發(fā)控制的一種手段,如果不熟悉,還是像我在以前文章中提到的那樣,一定要找WINDOWS高級編程之類的書把它學(xué)明白,否則就很難控制驅(qū)動程序了。 利用它實現(xiàn)的那幾個函數(shù)就不說了,與臨界區(qū)的用法是一樣的。另外提一句,在此程序中有類似InterlockedIncrement這樣的函數(shù),這種函數(shù)是WIN32 API函數(shù),專門用來提供多線程對同一變量的同步訪問的,可以通過MSDN查到詳細用法。 usbclient程序是對USBD進行包裝以供USB設(shè)備驅(qū)動程序使用的函數(shù)接口,、屬性設(shè)置、狀態(tài)描述和復(fù)位的一組函數(shù)原形的定義,這些函數(shù)大部分都擁有一個LPCUSB_FUNCS類型的參數(shù),回顧上次我們對USBD的了解可知,正是通過這一參數(shù)才能訪問USBD提供的服務(wù)功能,瀏覽一下函數(shù)的實現(xiàn)發(fā)現(xiàn),確實每個函數(shù)都是通過這個參數(shù)調(diào)用了USBD的函數(shù),然后處理調(diào)用后的結(jié)果,所以這里只是多了一層封裝,使得驅(qū)動程序的編寫更加清晰易于維護。 另外,這里我們要留意一下IssueBulkTransfer()、IssueInterruptTransfer()、IssueVendorTransfer() 這三個函數(shù),它們實現(xiàn)了通用的Bulk傳輸、中斷傳輸和自定義的傳輸方式,在驅(qū)動程序中要用得到。 utils程序很簡單,是對注冊表操作的封裝,利用_REG_VALUE_DESCR這個結(jié)構(gòu)體和GetSetKeyValues()函數(shù)可以方便的訪問注冊表,在驅(qū)動程序的安裝中會用得較多。 又說了這么多東西,雖然沒有看多少程序,但我們又離驅(qū)動程序近了一層,至少知道了很多函數(shù)是要在驅(qū)動程序中用到的,如果有興趣,可以具體閱讀每一個函數(shù)的實現(xiàn)方法,但我覺得這并不影響對驅(qū)動程序的開發(fā)。如果是我寫驅(qū)動,在沒有特別的情況下,我會把這些公用的源程序照搬過來,這可是能極大的縮短開發(fā)周期的事哦!正如所料,接下來我們就進入到DRIVERS/USB/CLASS/STORAGE/CLASS文件夾下,接觸USB設(shè)備驅(qū)動程序。 我們先來了解兩個頭文件,分別是STORAGE/INC/,其中前者是USB存儲設(shè)備公用的頭文件,后者是需要按照自己的設(shè)備更改的頭文件。我們先來看前者。 ,前邊定義了很多常量,包括子類和協(xié)議的常量,這是從哪里來的呢?前文我們已經(jīng)提到過,這些量值是依據(jù)USB設(shè)備規(guī)范得來的,在規(guī)范上都作了定義,所以此處的值必須與USB規(guī)范中的相一致。再向下的命令塊結(jié)構(gòu)體和數(shù)據(jù)塊結(jié)構(gòu)體是用來與USB設(shè)備通訊用的,可
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1