2012-11-16 84 views
2

我們正在開發一個使用C#的Windows 8商店設備應用程序,該應用程序將使用C DLL中的Win32 API和IOCTL調用與設備進行通信。我們用C#應用程序導入了Create File和一些IOCTL調用,創建了一個C dll。整合進展順利,當調用Create File函數時,它返回'ACCESS DENIED ERROR'。我們也曾嘗試爲管理員創建具有請求執行級別的Manifest,但問題仍未解決。我想知道是否可以直接使用Win32 API & IOCTL調用,還是需要使用任何包裝器調用使其工作?Windows 8商店設備應用程序開發

在此先感謝

+0

我試着實現「CreateDeviceAccessInstance」IDeviceIoControl API獲取句柄和訪問設備,但我得到E_INVALIDARG函數調用GetResult()。我的順序如下1. ICreateDeviceAccessAsync * pDeviceAccess 2. CreateDeviceAccessInstance(FilePath,GENERIC_READ | GENERIC_WRITE,&pDeviceAccess) - SUCCEEDS 3. pDeviceAccess-> Wait(INFINITE) - SUCCEEDS 4.IDeviceIoControl * pDeviceControl 5. pDeviceAccess-> GetResult(IID_IDeviceIoControl, void **)&pDeviceControl) - 失敗,出現E_INVALIDARG錯誤代碼任何建議都會有幫助。提前致謝。 – user1826493

+0

嗨, 第5步:而不是使用pDeviceAccess-> GetResult(),我已經使用pDeviceAccess-> QueryInterface()。返回的接口被類型化爲DeviceIoControl指針。現在我沒有得到E_INVALIDARG。但是,按照以下順序發佈IOCTL時,我收到了E_UNEXPECTED錯誤代碼。 6. pDeviceControl-> DeviceIoControlSync(FSCTL_GET_RETRIEVAL_POINTERS,(UCHAR *)<指向啓動VCN輸入緩衝區的指針>,sizeof(STARTING_VCN_INPUT_BUFFER),(UCHAR *)<指向檢索緩衝區指針的指針>,sizeof(檢索緩衝區結構),&dwBytesReturned) ; 任何輸入都會很好。 – user1826493

回答

相關問題