[戻る]
一括表示

MLA USB HID 64bitOS 投稿者:triton 投稿日:2016/09/20(Tue) 00:29:56 No.683

初めまして、tritonと申します。初心者です。
電子工作の実験室には大変お世話になっております。
どうぞよろしくお願い致します。

さっそくですが、タイトルの件について行き詰っており、質問投稿させて頂いた次第です。

デバイスはPIC18F2550-I/SPで、
microchip_solutions_v2013-06-15の
USB\Device - HID - Custom Demos\PnP Demo - Windows Software\Microsoft Visual Basic 2008 Express
をVB2010Expressで改造して使用しております。

今までは、WindowsXP,7,10と32bit環境のみで使用しており、問題なかったのですが、
今回、Windows7 64bitで使用することになり、動作しない(MatchFoundできない)という問題にあたりました。

PIC18F2550は、64bitOSでもHIDデバイスとしては正しく動作しているようで、
ファームウェアには問題がないように思えます。(以下デバイス情報です。)
-----------------------------------------------------------------------
デバイス HID\VID_04D8&PID_003F\6&9cfe3aa&0&0000 が構成されました。

ドライバー名: input.inf
クラス GUID: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}
ドライバーの日付: 06/21/2006
ドライバーのバージョン: 10.0.10586.420
ドライバーのプロバイダー: Microsoft
ドライバー セクション: HID_Raw_Inst.NT
ドライバー ランク: 0xFF1004
一致するデバイス ID: HID_DEVICE_UPR:FF00-FFFF
上位のドライバー: input.inf:HID_DEVICE:00FF1005
デバイスの更新日: false
親デバイス: USB\VID_04D8&PID_003F\5&2fd001c7&0&2
--------------------------------------------------------------------------

アプリケーション側のNOTE 2に64bitOSでも動作するようなことが書いてあるので
1、64bit環境のVB2010Expressの"x86" modeでのビルド
2、32bitOSのsetupapi.dll,user32.dll,kernel32.dllを64bitOSでの実行ファイルと同じフォルダに置いてみる。
を試してみたのですが、いづれもダメでした。

行き詰っており、何かアドバイスを頂けると助かります。
よろしくお願い致します。

Re: MLA USB HID 64bitOS 投稿者:Gokan 投稿日:2016/09/20(Tue) 09:32:11 No.684

確かな情報ではないのですが、Windowsのwinusbドライバが異なると
いう話があります。Forumなどサーチしたいただけますか?


> 初めまして、tritonと申します。初心者です。
> 電子工作の実験室には大変お世話になっております。
> どうぞよろしくお願い致します。
>
> さっそくですが、タイトルの件について行き詰っており、質問投稿させて頂いた次第です。
>
> デバイスはPIC18F2550-I/SPで、
> microchip_solutions_v2013-06-15の
> USB\Device - HID - Custom Demos\PnP Demo - Windows Software\Microsoft Visual Basic 2008 Express
> をVB2010Expressで改造して使用しております。
>
> 今までは、WindowsXP,7,10と32bit環境のみで使用しており、問題なかったのですが、
> 今回、Windows7 64bitで使用することになり、動作しない(MatchFoundできない)という問題にあたりました。
>
> PIC18F2550は、64bitOSでもHIDデバイスとしては正しく動作しているようで、
> ファームウェアには問題がないように思えます。(以下デバイス情報です。)
> -----------------------------------------------------------------------
> デバイス HID\VID_04D8&PID_003F\6&9cfe3aa&0&0000 が構成されました。
>
> ドライバー名: input.inf
> クラス GUID: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}
> ドライバーの日付: 06/21/2006
> ドライバーのバージョン: 10.0.10586.420
> ドライバーのプロバイダー: Microsoft
> ドライバー セクション: HID_Raw_Inst.NT
> ドライバー ランク: 0xFF1004
> 一致するデバイス ID: HID_DEVICE_UPR:FF00-FFFF
> 上位のドライバー: input.inf:HID_DEVICE:00FF1005
> デバイスの更新日: false
> 親デバイス: USB\VID_04D8&PID_003F\5&2fd001c7&0&2
> --------------------------------------------------------------------------
>
> アプリケーション側のNOTE 2に64bitOSでも動作するようなことが書いてあるので
> 1、64bit環境のVB2010Expressの"x86" modeでのビルド
> 2、32bitOSのsetupapi.dll,user32.dll,kernel32.dllを64bitOSでの実行ファイルと同じフォルダに置いてみる。
> を試してみたのですが、いづれもダメでした。
>
> 行き詰っており、何かアドバイスを頂けると助かります。
> よろしくお願い致します。

Re^2: MLA USB HID 64bitOS 投稿者:triton 投稿日:2016/09/21(Wed) 00:19:44 No.685

後閑様

返信ありがとうございます。
PIC Forums を検索してみました。
http://www.microchip.com/forums/m947499.aspx
に似たような現象がありましたが、解決できていないようです。

Dim InterfaceClassGuid As New Guid("4D1E55B2-F16F-11CF-88CB-001111000030")

が怪しいと思っているのですが、素人に毛が生えた程度なのでよく分かりません。
進展がありましたら、ご報告させて頂きます。

ありがとうございました。

Re^3: MLA USB HID 64bitOS 投稿者:triton 投稿日:2016/09/25(Sun) 15:27:31 No.696

自己解決致しましたので、報告させて頂きます。
結論から申し上げますと、32bitOSでは、

Structure SP_DEVICE_INTERFACE_DETAIL_DATA
Dim cbSize As UInteger
Dim DevicePath() As Char
End Structure

Dim DetailedInterfaceDataStructure As New SP_DEVICE_INTERFACE_DETAIL_DATA()


DetailedInterfaceDataStructure.cbSize = 6
'//Initialize the cbSize parameter (4 bytes for DWORD + 2 bytes for unicode null terminator)

ですが、64bitOSでは、

DetailedInterfaceDataStructure.cbSize = 8

とすると、うまく動きました。
何故だかは分りません。^^;

下記のサイトを参考にしました。
http://www.codingforums.com/computer-programming/127218-c-enumerating-hid-vista-x64.html

以上、ご報告まで。

- WebForum -