知っているヒトは知っているように、W-ZERO3には、実は、USB Mass Storageドライバが入っています。つまり、W-ZERO3にマウントしたminiSDカードをUSB経由でアクセスできる機能があるのです。これは、USB Functionドライバに、適切な指示を出してやることで、有効に出来ます。ただし、モデム機能と、ActiveSync機能(RemoteNDIS)とは排他的にしか使えません。これは、USBが一本しかないので仕方のないことです。
さて、右のアプリは、C#.NETで僕がちょいちょいっとでっち上げたもので、この切替作業の半分ほどを請け負ってくれます。半分というのは、これで切り替えても、実際にはUSB Functionドライバが切替を検知してくれないからです。ここで設定を変えたら、リセットしてやる必要があります。それで、接続先を替えることが出来ます。
本来、リセットは不要です。USB FunctionドライバへIOCTL_UFN_CHANGE_CURRENT_CLIENTを発行してやればいいだけのはずなのです。ところが、このIOCTL_UFN_CHANGE_CURRENT_CLIENTの値そのものも判らなければ、引数として渡すべきUFN_CLIENT_INFO構造体の内容も判らないのです。これらはCEDDKに含まれているようで、僕は入手できていないのです。これが判れば瞬殺なこのアプリ。この情報を求めて、本屋で立ち読みしまくったりしていますが、情報に行き当たりません。先は長そう oTL
シェクまく
今、MSDNライブラリから探しているわけですが、CE用のDDKが見当たりませんorz
SDKとかeMbedded Visual Toolsならあるんですけどね・・・ちくそう
hiro
ああっ、地獄に仏!!
プラットフォームビルダーとか入っていませんか?
なんにしても、IOCTL_UFN_xxx という一連のシンボルが含まれているヘッダファイルがあれば助かるのですが……。
シェクまく
Platform Builderというのは通常の開発環境ではないのですよ。ええ、困ったことに。
コイツはアプリケーションやドライバを開発するのではなくてOSそのものを構築するための開発環境です。つまりMSDEには入っていなくて当たり前なのですね、はい。
なので、このあたりからこのへんをダウンロードすると入っているかもしれません。
http://www.microsoft.com/japan/windows/embedded/default.mspx
http://www.microsoft.com/downloads/details.aspx?FamilyID=486e8250-d311-4f67-9fb3-23e8b8944f3e&displaylang=ja
600MBもありますが・・・
hiro
助かりました。ありがとうございます。持つべきものは友だちだなぁ(^^)