我的目標是讀取/寫入USB。如何直接讀/寫usb(磁盤)像winhex?
首先必須打開和讀取USB低-level像 '程序'
我使用的Visual C++與WINAPI
下面是我的測試代碼
char path[64];
sprintf(path,"\\\\.\\%c:",volume);//
/////MOST case, user's input is F or G ......
HANDLE usb;
usb=CreateFile(TEXT(path),
GENERIC_ALL,//
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, //serail I/O
NULL);
if(usb==INVALID_HANDLE_VALUE) cout<<"fail to createfile()"<<endl;
cout<<usb<<endl;
char buf[128];
DWORD dwBytesRead=0;
ReadFile(usb,buf,sizeof(buf),&dwBytesRead,NULL);
cout<<buf<<endl;
cout<<GetLastError()<<endl;
CloseHandle(usb);
我想知道的CreateFile是正確的的ReadFile
ReadFile()的GetLastError()爲87表示無效輸入...
是什麼錯誤?
我參考MSDN很多次......但任何頁面不解決這個問題....
我應該怎麼知道的?修理它?
如果你已經知道出了什麼問題(檢查'ReadFile'的返回值),你應該只調用'GetLastError'。成功的操作不一定會改變最後的錯誤。我看到您的評論後,嘗試去做 – molbdnilo
。 但是隻有ReadFile的GetLastError返回87 ..... 什麼是錯誤? – user1829967
如果'ReadFile'返回'FALSE',你確定只調用GetLastError()嗎? – molbdnilo