線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3070
推到 Plurk!
推到 Facebook!

在取得USB HID裝置時,讀和寫可以一起開嗎?

答題得分者是:AndrewK
vk8051
一般會員


發表:22
回覆:33
積分:21
註冊:2007-08-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-08-02 10:35:59 IP:114.42.xxx.xxx 訂閱
///////////////////////////////////////////////////////////////////////
// GetDeviceHandle(GUID guid, HANDLE hDev, DWORD wDevice, BOOL bIn)
// 取得欲連結裝置的HANDLE
// bIn: 傳輸方向, 如果bIn為真則為從HID ==> PC
///////////////////////////////////////////////////////////////////////
HANDLE TLed_HID::GetDeviceHandle(GUID guid, HANDLE hDev, DWORD dwDevice, BOOL bIn)
{
unsigned long dwSize=0;
HANDLE hDevice;
SP_DEVICE_INTERFACE_DATA interfaceDev;
interfaceDev.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
//------------------------------------------------------------------------
//Get interface
if(!SetupDiEnumDeviceInterfaces(hDev, NULL, &guid, dwDevice, &interfaceDev)||
SetupDiGetDeviceInterfaceDetail(hDev, &interfaceDev, NULL, 0, &dwSize, NULL))
{
return INVALID_HANDLE_VALUE;
}
//------------------------------------------------------------------------
//Create buffer
SP_INTERFACE_DEVICE_DETAIL_DATA *pDeviceDetail;
pDeviceDetail = (SP_INTERFACE_DEVICE_DETAIL_DATA*)malloc(dwSize);
pDeviceDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);
//------------------------------------------------------------------------
if(!SetupDiGetDeviceInterfaceDetail(hDev, &interfaceDev, pDeviceDetail, dwSize, &dwSize, NULL))
{
free(pDeviceDetail);
return INVALID_HANDLE_VALUE;
}
//------------------------------------------------------------------------
if( bIn )//Get device handle
{
hDevice=CreateFile( pDeviceDetail->DevicePath,
GENERIC_READ,//READ,USB=>PC~
FILE_SHARE_WRITE|FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
0,
NULL);
}
else
{
hDevice=CreateFile( pDeviceDetail->DevicePath,
GENERIC_WRITE,//WRITE,PC=>USB~
FILE_SHARE_WRITE|FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
0,
NULL);
}
free(pDeviceDetail);
return hDevice;
}

1.上面的程式中CreateFile讀寫可以同時開啟嗎?
hDevice=CreateFile( pDeviceDetail->DevicePath,
GENERIC_WRITE|GENERIC_READ,
FILE_SHARE_WRITE|FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
0,
NULL);

2.是這個涵式是要幹麻?
free(pDeviceDetail);
------
vincent
AndrewK
高階會員


發表:6
回覆:151
積分:161
註冊:2006-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-08-02 17:17:30 IP:115.43.xxx.xxx 訂閱
1.可以,你可以試試看,設定的屬性,就是開放的權限,確定程式碼正常,
不行的話,就看一下產品說明書
2.你可以看 Free function 的 Help 說明
------
Just Do It
-------------------------
其實男生不是真的喜歡你不減肥,而是喜歡你愛吃還不肥;也不是真的喜歡你不化妝,而是喜歡你素顏也好看;也不是真的喜歡你瘦,而是喜歡你瘦卻有胸;也不是真喜歡你獨立,而是他忙的時候別煩他。女孩子,太認真你就輸了。
編輯記錄
AndrewK 重新編輯於 2009-08-02 17:23:43, 註解 無‧
AndrewK 重新編輯於 2009-08-02 17:44:21, 註解 無‧
系統時間:2017-10-21 11:04:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!