新四季網

一種usb海量存儲設備上應用程式與usb海量存儲設備進行命令交互和雙向數據傳輸的方法

2023-10-08 13:01:29 1

專利名稱:一種usb海量存儲設備上應用程式與usb海量存儲設備進行命令交互和雙向數據傳輸的方法
技術領域:
本發明涉及一種USB海量存儲設備技術領域的一種上層應用軟體與設備之間實現雙向數據通訊的方法。特別是一種有用戶登錄安全認證和權限管理的作業系統如Windows2000、Windows XP以上版本,非授權用戶如何使應用軟體程序對USB海量存儲設備發送命令,從而實現USB海量存儲設備應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法。
背景技術:
為便於本發明理解相關術語解釋如下1USB海量存儲設備一種支持USB海量存儲設備協議的可移動海量存儲設備。如常見的快閃記憶體盤(USB Flash Disk),移動硬碟(USB Hard Disk)等設備。
2.作業系統非授權用戶是指作業系統登錄用戶由於作業系統對用戶的默認權限管理,使以其身份創建或者運行的應用程式軟體對系統設備沒有讀寫或者寫權限,從而不能通過作業系統提供的接口和方法實現與系統設備的命令交互和雙向數據傳輸。
3.SCSI是小型計算機系統接口(Small Computer System Interface)縮寫,是計算機邏輯塊設備與主機之間的命令控制和數據傳輸協議。
4.RBC是精簡塊命令(Reduced Block Command)的英文縮寫,是精簡的SCSI命令集,是計算機邏輯塊設備與主機之間的精簡控制命令和數據傳輸協議。
5.WRITE10是精簡塊命令集中主機對塊設備的寫命令碼,為十六進位0x2A。
6.READ10是精簡塊命令集中主機對塊設備的讀命令碼,為十六進位0x28。
7.LUN設備邏輯單元號。
8.LBA設備讀寫的邏輯塊地址。
當前,隨著USB海量存儲設備的普及,許多應用需求也不斷與之結合起來,以便於為應用提供移動性、便捷性和實用性等特點。如快閃記憶體盤(USBFlash Disk)就出現了需要許多特殊應用。從理論上講,所有可移動的USB海量存儲設備都可以開發出各種特殊應用。在USB海量存儲設備上開發各種應用程式時,上層應用軟體需要與在USB海量存儲設備之間進行命令交互和數據傳輸,以便於應用程式能夠正確和識別所支持的USB海量存儲設備。在各種作業系統上,系統都提供了基於USB海量存儲設備的通信通道,絕大多數作業系統都是採用SCSI命令協議去訪問和控制USB海量存儲設備。比如在Windows 2000以上NT內核平臺作業系統,就是通過設備輸入、輸出控制接口訪問設備的,只要命令協議是按照SCSI的RBC協議和格式定義,則協議定義的命令以及用戶自己定義的私有協議將都可以通過該命令通道發送給USB海量存儲設備,如快閃記憶體盤(USB Flash Disk)等邏輯塊設備。
在SCSI命令集中,WRITE10和READ10的命令碼分別為十六進位0x2A和0x28,WRITE10的命令參數為設備邏輯單元號(LUN),設備讀寫的邏輯塊地址(LBA),數據寫入長度。
當USB海量存儲設備的主控晶片接受到WRITE10的SCSI命令時,通過分析上述參數得到寫入的邏輯塊地址(LBA)和設備邏輯單元號(LUN)以及數據長度,然後從數據接收埠接收完數據後就向指定的地址寫入該數據。如果數據長度超過晶片一次能夠容納的長度限制,則可以分批接收和寫入。
READ10的命令參數與WRITE10一樣,也是設備邏輯單元號(LUN,設備讀寫的邏輯塊地址(LBA),數據讀取長度,當USB可移動海量存儲設備的主控晶片接受到READ10的SCSI命令時,通過分析上述參數得到寫入的設備讀寫的邏輯塊地址(LBA)和設備邏輯單元號(LUN)以及數據長度,然後向數據發送埠發送數據,直到發送完指定的數據長度。如果數據長度超過晶片一次能夠容納的長度限制,則可以分批發送。
儘管各種作業系統提供了上述相同或者相近的SCSI邏輯塊設備命令發送方式,但是對於具有用戶權限管理的安全作業系統,如果應用程式的創建或者運行者如果沒有相關的設備訪問權限,則通過這種方式是不行的。典型的是,在Windows2000以上的NT內核作業系統,如果要通過設備輸入輸出控制接口給邏輯塊設備發送命令,則需要該設備的讀寫權限。但如果用戶是普通的來賓(Guest)或者普通組(User)用戶,作業系統默認是沒有授予對邏輯設備的讀寫權限的,因此,需要管理員對這些用戶添加設備讀寫權限,否則應用程式對設備的訪問將失敗。
隨著USB海量存儲設備的普及,其便捷性、移動性和實用性得到廣大用戶和軟體廠商的青睞,各種基於這類設備即插即用的應用程式也不斷在增加。這類應用程式如果需要同設備之間進行命令交互和數據傳輸,一般就需通過上述的RBC協議和SCSI命令通道。但如果給設備的使用者在登錄作業系統時是設備非授權讀寫用戶或者非管理員用戶,儘管通過作業系統的內建程序菜單或者命令用戶能夠實現對可移動磁碟設備的數據文件存儲,但是卻無法在第三方創建的應用程式中發送SCSI命令控制和訪問設備,因此也就不能夠正常運行應用程式,或者應用程式功能受到一定限制。而系統登錄用戶是非管理員的情況是非常普遍的,如公共場所網吧、各大企業職員、政府工作部門使用的計算機作業系統,網絡管理員為了保證作業系統的安全使用,僅提供普通用戶帳號給使用者。因此,USB海量存儲設備上的各種應用程式需要解決非授權用戶下如何訪問和控制設備是非常重要的,也是非常急迫的。目前,常見的解決辦法有以下幾種1編寫專用的設備過濾驅動或者系統後臺服務程序。該方法的缺點是驅動或者服務程序必須先由能夠安裝系統驅動或者服務程序權限的用戶如管理員安裝。因此,對於USB海量可移動存儲設備上的應用程式需要先由管理員等用戶安裝驅動或者服務程序才能夠正常使用是不可接受的。
2先以管理員身份安裝其應用程式,同時創建一個特殊用戶帳號。在非管理員用戶登錄時,應用程式仍然以該特殊用戶身份訪問設備。這樣的缺點仍然比較明顯,對於USB這樣可移動存儲設備上的應用程式仍然做不到即插即用,對用戶是不方便的。
發明的內容本發明的目的是提供一種方法基於USB海量存儲設備的應用程式軟體在與設備進行命令通訊時,即使登錄用戶身份是對該設備無讀寫權限的非管理員用戶也能夠通過該方法,實現控制命令的交互和雙向數據傳輸。也就是說,上層應用軟體能夠通過該方法發送命令,實現向設備發送控制命令或者寫入私有數據,也可以從設備把相關數據讀取上來供應用程式使用和分析。
本發明解決其技術問題所採取的技術方案是USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,是利用作業系統任何用戶通過通訊協議可在USB海量存儲設備的可讀寫區創建新文件並可向其寫入和讀取數據這一特性,在USB海量存儲設備的可讀寫邏輯盤創建一個不可重複的新文件,然後把SCSI命令的參數和數據存放在新文件的寫入命令數據緩衝區裡,USB海量存儲設備的主控晶片應用程式接收到新文件的寫入的SCSI寫命令WRITE10以及指定寫入長度的數據時,分析寫入的數據發現不是普通的數據,而是含有規定格式的SCSI命令標識以及參數,則並不實際寫入這些數據,而是執行其指定命令,如果命令執行正確,則返回應用層寫入成功,否則返回錯誤信息,應用層在收到寫入命令執行完畢後立即刪除剛創建的文件,從USB海量存儲設備讀取數據,則需要採用兩步才能夠實現,第一步是創建新文件,後向新文件寫入含有命令的規定格式數據,USB海量存儲設備的主控晶片軟體接收到此文件的SCSI命令WRITE10時通過分析發現,是需要向上層返回數據的特殊命令,因此將保留此WRITE10命令參數中設備邏輯單元號(LUN)和設備讀寫的邏輯塊地址(LBA)並返回執行完畢,第二步是上層應用程式緊接著發送一個SCSI命令READ10,此命令必須確保該命令參數的設備邏輯單元號(LUN)和設備讀寫的邏輯塊地址(LBA)與第一步的WRITE10一樣,這樣USB海量存儲設備的主控晶片軟體在接收到READ10命令,發現其參數的設備邏輯單元號(LUN)和讀寫的邏輯塊地址(LBA)與前一條WRITE10命令的一樣,則返回前一條WRITE10數據緩衝區中指定的SCSI命令需要的數據,上述的正常讀寫命令都可以保證USB海量存儲海量設備的主控晶片軟體在分析SCSI命令WRITE10和READ10時,既可實現設備的正常讀寫命令,同時實現了作業系統非授權用戶下,應用程式能夠通過文件的讀寫操作,在其讀寫命令WRITE10和READ10數據緩衝區中承載其他SCSI命令和數據,實現應用程式與USB海量存儲海量設備的命令交互。
USB海量存儲設備應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法還包括在USB海量存儲設備的可讀寫邏輯盤創建的新文件,文件名是採用每次計算獲取的變化的全球唯一16位元組的序列號字符串,並將新文件設為非共享讀寫屬性,在USB海量存儲設備的可讀寫邏輯盤創建的新文件,文件擴展名採用單獨定義或者隨機變化的擴展名。
在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式,其中WRITE10命令規定格式順序為命令標識頭、命令序列號、命令操作碼、命令參數區、多餘字節區、命令寫入數據區,READ10命令規定格式順序為命令標識頭、命令序列號、多餘字節區、命令寫入數據區。
在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式所述的新文件的命令標識頭,為0xx55aa55aa555342。
在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式的命令序列號為16位元組唯一的序列號。
在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式的新文件規定長度為512位元組的奇數倍,512位元組,1536位元組或2560位元組。
在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式的新文件規定長度如果為1536位元組,則在發送WRITE10命令時,字節分配為命令標識頭、命令序列號、命令操作碼、命令參數區、多餘字節區共佔512位元組,多餘字節區為512位元組中未佔用的多餘字節,可設為零,命令寫入數據區佔用1024位元組;在發送READ10命令,字節分配為命令標識頭、命令序列號,多餘字節區佔512位元組,多餘字節區為512位元組中未佔用的多餘字節,可設為零,命令讀取數據區佔用1024位元組,USB海量存儲設備主晶片應用程式邏輯流程寫命令為收到WRITE10命令全部數據---判斷是否為規定長度數據---判斷結果「否」--進入正常數據寫入操作流程,判斷結果「是」---判斷命令標識頭、命令序列號、命令操作碼、命令參數區的全部字節內是否有命令標識頭,命令操作碼,判斷結果「否」---進入正常數據寫入流程,判斷結果「是」---分析命令參數,保存其設備邏輯號和地址以及命令序列號,然後接收剩下的字節數據---處理該命令請求,並保留命令參數信息,以備下一條讀命令使用---判斷命令處理是否正確---判斷結果「否」---進入設置命令處理錯誤信息,判斷結果「是」---設置執行結果數據為正確。讀命令為收到READ10命令全部數據---判斷是否為規定長度數據---判斷結果「否」---進入正常數據讀取流程,判斷結果「是」---判斷設備邏輯號和地址是否與保存的寫命令設備邏輯號和地址相同,判斷結果「否」---進入正常數據讀取操作流程,判斷結果「是」----執行前一條具有相同的設備邏輯號和地址讀命令保存的命令請求---發送含有命令標識頭、命令序列號和多餘字節區內的全部字節發送到數據設備埠---準備命令需要返回的剩下的字節數據並發送到指定設備埠---設置執行結果數據為正確,USB海量存儲設備主控晶片應用程式在處理SCSI命令WRITE10時,對需要返回數據的特殊控制命令,應將該WRITE10命令所指的設備邏輯單元號(LUN)、設備讀寫邏輯塊地址(LBA)、命令序列號和命令參數保存到一個或者多個專用的數據變量中,USB海量存儲設備讀取數據時,則必須保證第一步的WRITE10命令的設備邏輯單元號(LUN)與第二步的READ10命令的設備邏輯單元號(LUN)相同,第一步的WRITE10命令的讀寫邏輯塊地址(LBA)與第二步的READ10命令的讀寫邏輯塊地址(LBA)相同或存在固定函數關係。
USB海量存儲設備主控晶片執行的命令處理完成後,立即關閉和刪除在USB海量存儲設備的可讀寫邏輯盤創建的新文件。
本發明的有益效果是解決了在具有用戶登錄認證和安全權限管理的作業系統上,非授權設備訪問的用戶創建或者運行的第三方應用程式如何與USB海量存儲設備進行雙向數據傳輸的命令交互這個關鍵問題。本發明最重要的作用是避開了非授權設備訪問的用戶不再需要管理員用戶安裝特殊的驅動或者其他應用程式即可啟動運行第三方應用程式,實現其與USB海量存儲設備進行各種命令交互和雙向數據傳輸功能,為這類應用程式提供了可移動、便捷和可靠的運行環境,具有軟體運行的「即插即用」特性。同時也大大方便了用戶對這類應用程式的使用,降低了管理員對計算機的軟體安裝管理難度。
具體實施例方式下面結附圖對本發明進行詳細描述附

圖1為本發明的方法實施例USB海量存儲設備應用程式軟體處理流程。
附圖2為本發明的方法實施例USB海量存儲設備應用程式SCSI命令WRITE10流程處理。
附圖3為本發明的方法實施例USB海量存儲設備應用程式SCSI命令READ10流程處理本發明創造性在於利用了作業系統可讓任何用戶在USB海量存儲設備的可讀寫區創建新文件並可向其寫入和讀取數據這一特性,通過規定協議讀寫數據緩衝區的數據格式、長度以及新文件讀寫位置等數據,實現了應用程式與USB海量存儲設備進行各種命令交互和雙向數據傳輸。
在Windows2000以及以上版本的作業系統,任何用戶都是可以在USB海量存儲設備上創建新文件,只要磁碟空間夠用,同時也沒有被防寫。新文件的讀寫在經過作業系統處理後最後都歸結到SCSI命令WRITE10和READ10。
當需要向USB海量存儲設備發送SCSI命令集中WRITE10命令時,先在USB海量存儲設備的可讀寫邏輯盤上創建一個新文件,然後把SCSI命令的參數和數據存放在新文件的WRITE10命令數據緩衝區裡,USB海量存儲設備的主控晶片軟體接收到新文件的SCSI命令集中WRITE10命令以及規定寫入長度的數據時,如果分析寫入的數據發現不是普通的數據,而是含有規定格式的SCSI命令標識以及參數,則並不實際寫入這些數據,而是執行其指定命令,如果命令執行正確,則返回應用層寫入成功,否則返回錯誤信息,應用層在收到寫入命令執行完畢後立即刪除創建的新文件。如不立即刪除創建的新文件,USB海量存儲設備的主控晶片需要不斷分析WRITE10命令,這樣對於正常的文件存儲效率有嚴重影響,同時,也無法通過WRITE10命令從USB海量存儲設備讀取數據。
當需要向USB海量存儲設備發送SCSI命令集中READ10命令時,則需要採用兩步才能夠實現,第一步是先在USB海量存儲設備的可讀寫邏輯盤上創建一個新文件,在向創建的新文件寫入含有命令的規定格式數據,USB海量存儲設備的主控晶片軟體接收到此文件的SCSI命令WRITE10時通過分析發現,是需要向上層返回數據的特殊命令,因此將保留此WRITE10命令參數中設備讀寫的邏輯塊地址(LBA)和設備邏輯單元號(LUN)並返回執行完畢。第二步是上層應用程式緊接著發送一個SCSI命令READ10,此命令必須確保該命令參數的設備讀寫的邏輯塊地址(LBA)和設備邏輯單元號(LUN)與第一步的WRITE10一樣,這樣USB存儲設備的主控晶片軟體在接收到READ10命令,發現其參數的設備讀寫的邏輯塊地址(LBA)和設備邏輯單元號(LUN)與前一條WRITE10命令的一樣,則返回前一條WRITE10數據緩衝區中指定的SCSI命令需要的數據。
上述兩項操作都可以保證USB海量存儲海量設備的主控晶片軟體在分析SCSI命令集中WRITE10和READ10時,既可實現設備的正常讀寫命令,同時實現了在作業系統非授權用戶下,應用程式能夠通過新文件的讀寫操作,在其SCSI命令集中WRITE10和READ10命令數據緩衝區中承載其他SCSI命令和數據,實現應用程式與USB海量存儲海量設備命令交互。
為了保證本發明的方法能夠高效、可靠運行,保證上層應用程式軟體能夠與USB海量存儲設備之間正確實現命令交互,當需要發送SCSI命令時,在USB海量存儲設備的可讀寫邏輯盤上創建一個新文件,應保證是設備上原來沒有和不可重複的新文件,以及防止其它應用程式也創建同樣的文件,保證新文件讀寫操作的排它性,創建的新文件名採用每次計算獲取的變化的全球唯一16位元組的序列號字符串,新文件的文件擴展名採用單獨定義或者隨機變化的擴展名,並將新文件設為非共享讀寫屬性。
本發明的方法在其SCSI命令集中WRITE10和READ10命令數據緩衝區數據長度儘可能固定,並且採用作業系統不常用的數據讀寫長度,便於USB海量存儲設備主控晶片軟體在分析時能夠儘可能高效、準確與正常的設備WRITE10和READ10命令區分開,為了保證本發明的方法儘可能降低對設備的正常讀寫效率影響和保證數據傳輸的吞吐量的同時,也可以保證其對設備的正常讀寫效率影響最低。數據讀寫長度採用512位元組的奇數倍512,1536或2560位元組,上述數據是在作業系統的文件WRITE10和READ10命令中不常用,而且可保證數據傳輸的吞吐量。
本發明的方法實施例WRITE10命令數據緩衝區採用1536位元組,規定格式為
本發明的方法實施例READ10命令數據緩衝區採用1536位元組,規定格式為 本發明的方法實施例上述格式定義和數據長度可知,每個WRITE10和READ10命令可以傳輸的數據除了命令碼以及參數外,最大為1024位元組,如果超過該字節,必須分多次循環完成。
本發明的方法實施例在上述WRITE10和READ10命令數據緩衝區規定格式中,WRITE10和READ10命令數據緩衝區頭含有特殊命令數據標識頭,其目的是便於USB海量存儲設備主控晶片軟體在分析WRITE10命令時能夠準確區分緩衝區是否含有特殊命令。應用程式在讀取數據時,USB海量存儲設備主控晶片軟體在返回數據緩衝區頭也應該填寫特殊命令標識頭數據。
本發明的方法實施例在上述WRITE10和READ10命令數據緩衝區規定格式中,WRITE10和READ10命令的數據緩衝區含有16位元組的全球唯一的命令序列號,其目的是便於USB海量為了進一步保正本發明的方法在向設備讀取數據時的可靠性,可在第一步向創建的新文件寫入數據發送WRITE10命令時,在數據緩衝區中填入16位元組的全球唯一命令序列號,USB海量存儲設備主控晶片軟體在分析WRITE10命令後保存該序列號,這樣在接著的第二步發送READ10命令讀取設備指定數據時,USB海量存儲設備主控晶片軟體在返回數據緩衝區中也同時插入該16位元組全球唯一序列號,這樣上層應用程式軟體可識別是否為USB海量存儲設備主控晶片軟體返回的數據。
本發明的方法實施例向USB海量存儲設備讀取數據時,保證第一步的WRITE10命令的與下一步的READ10的設備邏輯單元號(LUN)一樣,讀寫的邏輯塊地址(LBA)存在一定的可計算函數關係。這個邏輯關係定義如下如果假設第二步READ10的讀寫的邏輯塊地址(LBA)為y,第一步WRITE10的讀寫的邏輯塊地址(LBA)為x,則y=f(x).,f為x與y之間的可計算函數關係。最簡單的函數關係是前面所描述的y=x,即兩個讀寫的邏輯塊地址(LBA)一樣。
本發明的方法實施例USB海量存儲設備主控晶片應用程式在處理SCSI命令WRITE10時,對需要返回數據的特殊控制命令,應將該WRITE10命令所指的設備邏輯單元號(LUN)、讀寫的邏輯塊地址(LBA)、16位元組的命令序列號和命令參數保存到一個或者多個專用的數據變量中,用於發現是需要返回的數據的特殊控制命令,作為判斷是否是特殊WRITE10,READ10命令的一個附加條件。
權利要求
1一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於所述命令交互和雙向數據傳輸的方法是,利用作業系統任何用戶通過通訊協議在USB海量存儲設備的可讀寫區創建新文件並可向其寫入和讀取數據這一特性,在USB海量存儲設備的可讀寫邏輯盤創建一個不可重複的新文件,然後把SCSI命令的參數和數據按規定格式存放在新文件的寫入命令數據緩衝區裡,USB海量存儲設備的主控晶片應用程式接收到新文件的寫入的SCSI寫命令WRITE10以及指定寫入長度的數據時,分析寫入的數據發現不是普通的數據,而是含有規定格式的SCSI命令標識以及參數,則並不實際寫入這些數據,而是執行其指定命令,如果命令執行正確,則返回應用層寫入成功,否則返回錯誤信息,應用層在收到寫入命令執行完畢後立即刪除剛創建的文件,從USB海量存儲設備讀取數據,則需要採用兩步才能夠實現,第一步是創建新文件,後向新文件寫入含有命令的規定格式數據,USB海量存儲設備的主控晶片軟體接收到此文件的SCSI命令WRITE10時通過分析發現,是需要向上層返回數據的特殊命令,因此將保留此WRITE10命令參數中設備邏輯單元號(LUN)和設備讀寫的邏輯塊地址(LBA)並返回執行完畢,第二步是上層應用程式緊接著發送一個SCSI命令READ10,此命令必須確保該命令參數的設備邏輯單元號(LUN)和設備讀寫的邏輯塊地址(LBA)與第一步的WRITE10一樣,這樣USB海量存儲設備的主控晶片軟體在接收到READ10命令,發現其參數的設備邏輯單元號(LUN)和讀寫的邏輯塊地址(LBA)與前一條WRITE10命令的一樣,則返回前一條WRITE10數據緩衝區中指定的SCSI命令需要的數據,上述的正常讀寫命令都可以保證USB海量存儲海量設備的主控晶片軟體在分析SCSI命令WRITE10和READ10時,既可實現設備的正常讀寫命令,同時實現了作業系統非授權用戶下,應用程式能夠通過文件的讀寫操作,在其讀寫命令WRITE10和READ10數據緩衝區中承載其他SCSI命令和數據,實現應用程式與USB海量存儲海量設備的命令交互。
2根據權利要求1所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於所述的在USB海量存儲設備的可讀寫邏輯盤創建的新文件,文件名是採用每次計算獲取的變化的全球唯一16位元組的序列號字符串,並將新文件設為非共享讀寫屬性,新文件,文件擴展名採用單獨定義或者隨機變化的擴展名。
3根據權利要求1或2所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於所述的在USB海量存儲設備的可讀寫邏輯盤創建新文件的規定格式,其中WRITE10命令規定格式順序為命令標識頭、命令序列號、命令操作碼、命令參數區、多餘字節區、命令寫入數據區,READ10命令規定格式順序為命令標識頭、命令序列號、多餘字節區、命令寫入數據區。
4根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於所述的在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式的命令標識頭,為0xx55aa55aa555342。
5根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於所述的在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式的命令序列號,為16位元組唯一的序列號。
6根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於所述的在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式的規定長度為512位元組的奇數倍,512位元組,1536位元組或2560位元組。
7根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於所述的在USB海量存儲設備的可讀寫邏輯盤創建的新文件規定格式的規定長度為1536位元組,則在發送WRITE10命令時,字節分配為命令標識頭、命令序列號、命令操作碼、命令參數區、多餘字節區共佔512位元組,多餘字節區為512位元組中未佔用的多餘字節,可設為零,命令寫入數據區佔用1024位元組;在發送READ10命令,字節分配為命令標識頭、命令序列號,多餘字節區佔512位元組,多餘字節區為512位元組中未佔用的多餘字節,可設為零,命令讀取數據區佔用1024位元組。
8根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於USB海量存儲設備主晶片應用程式邏輯流程寫命令為收到WRITE10命令全部數據---判斷是否為規定長度數據---判斷結果「否」--進入正常數據寫入操作流程,判斷結果「是」---判斷命令標識頭、命令序列號、命令操作碼、命令參數區的全部字節內是否有命令標識頭,命令操作碼,判斷結果「否」---進入正常數據寫入流程,判斷結果「是」---分析命令參數,保存其設備邏輯號和地址以及命令序列號,然後接收剩下的字節數據---處理該命令請求,並保留命令參數信息,以備下一條讀命令使用---判斷命令處理是否正確---判斷結果「否」---進入設置命令處理錯誤信息,判斷結果「是」---設置執行結果數據為正確。讀命令為收到READ10命令全部數據---判斷是否為規定長度數據---判斷結果「否」---進入正常數據讀取流程,判斷結果「是」---判斷設備邏輯號和地址是否與保存的寫命令設備邏輯號和地址相同,判斷結果「否」---進入正常數據讀取操作流程,判斷結果「是」----執行前一條具有相同的設備邏輯號和地址讀命令保存的命令請求---發送含有命令標識頭、命令序列號和多餘字節區內的全部字節發送到數據設備埠---準備命令需要返回的剩下的字節數據並發送到指定設備埠---設置執行結果數據為正確。
9根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於USB海量存儲設備主控晶片應用程式在處理SCSI命令WRITE10時,對需要返回數據的特殊控制命令,應將該WRITE10命令所指的設備邏輯單元號(LUN)、設備讀寫邏輯塊地址(LBA)、命令序列號和命令參數保存到一個或者多個專用的數據變量中。
10根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於USB海量存儲設備讀取數據時,則必須保證第一步的WRITE10命令的設備邏輯單元號(LUN)與第二步的READ10命令的設備邏輯單元號(LUN)相同,第一步的WRITE10命令的讀寫邏輯塊地址(LBA)與第二步的READ10命令的讀寫邏輯塊地址(LBA)相同或存在固定函數關係。
11根據權利要求1或3所述的一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,其特徵在於USB海量存儲設備主控晶片執行的命令處理完成後,立即關閉和刪除在USB海量存儲設備的可讀寫邏輯盤創建的新文件。
全文摘要
一種USB海量存儲設備上應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法。特別是一種有權限管理的作業系統,非授權用戶如何使用創建的應用程式對USB海量存儲設備發送命令,從而實現應用程式與USB海量存儲設備進行命令交互和雙向數據傳輸的方法,本發明利用作業系統任何用戶可在USB可移動存儲設備的可讀寫區創建新文件並可向其寫入和讀取數據這一特性,通過規定讀寫數據緩衝區的數據格式、長度以及新文件讀寫位置等數據,實現應用程式與USB可移動海量存儲設備進行命令交互和雙向數據傳輸。本發明為這類多種應用程式提供了可移動、便捷和可靠的運行環境,使帶有應用程式的USB海量存儲設備,實現了「即插即用」的目的。
文檔編號G06F1/00GK1869855SQ20051001254
公開日2006年11月29日 申請日期2005年5月23日 優先權日2005年5月23日
發明者祝緒陽 申請人:深圳市江波龍電子有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀