- 論壇徽章:
- 0
|
最近深入研究mtp驅動開發(fā),目前的進展是底層USB的驅動開發(fā)已經完成,可以讀出設備端所有的文件列表以及文件夾列表。
但目前的問題是,以前標準的u盤的協(xié)議,都是按照block的方式傳輸buffer,在host端發(fā)送或接收buffer。
比如說,我想從u盤上拷貝一個文件過來到C盤,操作應該是這樣的:
1. open(c:\file)
2. open(u:\file)
3. while(end) read(u:\file, buffer)
4. while(end) write(buffer, c:\file)
5. close(c:\file)
6. close(u:\file)
但是MTP的操作是這樣的:
getfile(u:\file, c:\file)
所有的buffer操作都在底層實現(xiàn)。但是我的host端在read的時候想拿到的是buffer,大家知道該怎么做嗎?
就我所知,linux里是把mtp做到fuse文件系統(tǒng)里,也就是說把所有的東西都給一個fuse的屬性,也就是說,把mtp掛在fuse之上。但是我們的系統(tǒng)里面沒有fuse,我們的每一步操作都希望是基于buffer的,請問該怎么搞? |
|