Display USB Device Information |
|
st
一般會員 ![]() ![]() 發表:11 回覆:21 積分:11 註冊:2004-07-02 發送簡訊給我 |
看了很多人寫的相關於 USB Device 的程式
很多都沒辦法 Run 或無法 Compiled,
索性用 BCB 寫一個完整的程式來讓有需要的人看看. 基本上我是將有用到 Windows DDK 的 include files 都包到
此程式目錄了,所以您可以在沒有安裝 Windows DDK 的狀況下,
放心的直接去 compiled 它. Borland VC 6.0, Windows DDK NT 2000.
|
Menu
一般會員 ![]() ![]() 發表:1 回覆:5 積分:1 註冊:2004-09-26 發送簡訊給我 |
|
st
一般會員 ![]() ![]() 發表:11 回覆:21 積分:11 註冊:2004-07-02 發送簡訊給我 |
|
Menu
一般會員 ![]() ![]() 發表:1 回覆:5 積分:1 註冊:2004-09-26 發送簡訊給我 |
|
chrischung73
一般會員 ![]() ![]() 發表:5 回覆:13 積分:3 註冊:2004-03-30 發送簡訊給我 |
不曉得有沒有人執行時遇到相同的問題
發生 「error 122 傳遞到系統呼叫的資料區太小」的錯誤
我將如何解決的經驗list在這裡, 希望能對其他人有幫助 這是問題是因為 sizeof(USB_NODE_INFORMATION) 計算有出入
用VC 查看size等於74, 但BCB卻是71
作下列修改即可 typedef struct _USB_NODE_INFORMATION {
// USB_HUB_NODE NodeType; /* 刪除這一行 */
short UsbHub, UsbMIParent; /* 用這一行取代 */
union {
USB_HUB_INFORMATION HubInformation;
USB_MI_PARENT_INFORMATION MiParentInformation;
} u;
} USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION; 發表人 - chrischung73 於 2004/12/10 13:17:12
|
st
一般會員 ![]() ![]() 發表:11 回覆:21 積分:11 註冊:2004-07-02 發送簡訊給我 |
我倒是沒發生 「error 122 傳遞到系統呼叫的資料區太小」的錯誤
我把 USBIOCTL.H include 進來就可以囉,
原碼如下:
typedef struct _USB_NODE_INFORMATION { USB_HUB_NODE NodeType; /* hub, mi parent */ union { USB_HUB_INFORMATION HubInformation; USB_MI_PARENT_INFORMATION MiParentInformation; } u; } USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION;寫程式與攝影一樣重要 |
kraen4468
初階會員 ![]() ![]() 發表:66 回覆:112 積分:35 註冊:2003-12-04 發送簡訊給我 |
|
FlyChen
一般會員 ![]() ![]() 發表:0 回覆:1 積分:0 註冊:2005-07-07 發送簡訊給我 |
|
shiaung67
一般會員 ![]() ![]() 發表:2 回覆:5 積分:1 註冊:2006-08-25 發送簡訊給我 |
|
HUNK999
初階會員 ![]() ![]() 發表:9 回覆:35 積分:28 註冊:2009-07-23 發送簡訊給我 |
我遇到同樣的Error Code = 122問題 ,
請問如何宣告成正確的Size呢? [code cpp] interfaceDev.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); int ErrorCode00 = GetLastError(); //0 : No Error! //------------------------------------------------------------------------ //Get interface if(!SetupDiEnumDeviceInterfaces(hDev, NULL, &guid, dwDevice, &interfaceDev)|| SetupDiGetDeviceInterfaceDetail(hDev, &interfaceDev, NULL, 0, &dwSize, NULL)) { return INVALID_HANDLE_VALUE; } //------------------------------------------------------------------------ //Create buffer //pDeviceDetail = offsetof(SP_DEVICE_INTERFACE_DETAIL_DATA*,DevicePath) sizeof(TCHAR) 1; pDeviceDetail = (SP_INTERFACE_DEVICE_DETAIL_DATA*)malloc(dwSize); int ErrorCode0 = GetLastError(); //122 : 傳遞到系統調用的數據區太小 pDeviceDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA); int ErrorCode = GetLastError(); //122 : 傳遞到系統調用的數據區太小 [/code] ===================引 用 chrischung73 文 章=================== 不曉得有沒有人執行時遇到相同的問題發生 「error 122 傳遞到系統呼叫的資料區太小」的錯誤我將如何解決的經驗list在這裡, 希望能對其他人有幫助 這是問題是因為 sizeof(USB_NODE_INFORMATION) 計算有出入用VC 查看size等於74, 但BCB卻是71 作下列修改即可 typedef struct _USB_NODE_INFORMATION { // USB_HUB_NODE NodeType; /* 刪除這一行 */ short UsbHub, UsbMIParent; /* 用這一行取代 */ union { USB_HUB_INFORMATION HubInformation; USB_MI_PARENT_INFORMATION MiParentInformation; } u; } USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION; 發表人 - chrischung73 於 2004/12/10 13:17:12 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |