USB複合デバイスでないデバイスに仮想COMを複数作成
投稿者: エヌ 投稿日時: 火, 2011/08/02 - 17:56
USB複合デバイスではないデバイス
Configuration Descriptor:
bNumInterfaces: 0x01
#Interface Descriptor:は1個
のUSBデバイスに仮想COMを複数作成しようとしているのですが
うまくいきません。
仮想COMの作成はWDKのサンプル:src\serial\serial
を参考に1個目は作成できました。
1個目作成後、
DeviceInit = WdfControlDeviceInitAllocate(
Driver,
&SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RW_RES_R
);
でWDFDEVICE_INIT構造体を作成し、1個目と同じ処理を実行しているのですが
WdfDeviceOpenRegistryKey実行後、落ちます。
そもそも、USB複合デバイスではないデバイスに複数の仮想COMを作成し
ドライバをインストールする事は可能なのかもわかりません。
ご教授の程、よろしくお願いいたします。

同種のCOMポートドラ
同種のCOMポートドライバを複数個作成する場合には、WDKの同じディレクトリにサンプルがあるアッパーフィルタのSerenum.sysを使います。
実はこのWDKサンプルのソースは参考のためにあり、Serenum.sysはすでにWindows\system32\drivers以下に存在しているので、通常はSerenum.sysを改造して使うことはありません。
INFでの指定方法は、プレインストールのシリアルポートmsports.infのほか、市販の一般的なUSBシリアル変換ドングルのドライバやCDCのINFファイルを参考にされると良いと思います。