WIA デバイスの INF ファイル
重要
この記事に含まれる一部の情報は、旧 Windows オペレーティング システムに適用されます。
静止画像デバイス の既定のクラス インストーラーである sti_ci.dll は、特別な INF ファイル エントリのセットを認識します。 INF ファイル内では、これらのエントリはデバイスの INF DDInstall セクション内に配置する必要があります。 各エントリーについては次の表で説明します。
INF ファイル エントリ | Value | Comments |
---|---|---|
SubClass | StillImage | 必須 |
DeviceType | スキャナー用 1 カメラ用 2 ビデオ ストリーム配信用 3 |
必須 |
DeviceSubType | ベンダー定義値 | 省略可能 |
接続 | シリアル ポートまたは並列ポートに接続されている非プラグ・アンド・プレイ デバイスの場合、インストール時にユーザーが選択するポートを制限するに当たり、シリアルまたは並列にできます。 | 省略可能 指定しない場合、ユーザーは任意でシリアルまたは並列ポートを選択できます。 |
Capabilities | デバイスの機能を識別するビット フラグに変換される数値を指定します。 これらのフラグはレジストリに格納され、STI_DEV_CAPS 構造の Microsoft STI コンポーネントで使用できます。 ビット 0 - STI_DEV_CAPS で STI_GENCAP_NOTIFICATIONS を設定/クリアします。 ビット 1 - STI_DEV_CAPS で STI_GENCAP_POLLING_NEEDED を設定/クリアします。 ビット 2 - STI_DEV_CAPS で STI_GENCAP_GENERATE_ARRIVALEVENT を設定/クリアします。 ビット 3 - STI_DEV_CAPS で STI_GENCAP_AUTO_PORTSELECT を設定/クリアします。 ビット 4 - STI_DEV_CAPS の STI_GENCAP_WIA を設定/クリアします。 ビット 5 - STI_DEV_CAPS で STI_GENCAP_SUBSET を設定/クリアします。 |
省略可能 ビット 5 は現在使用していません。 INF ファイルのこのエントリを 0x33 に設定し、スキャナーのプッシュボタン イベントに対応させます。 |
PropertyPages | Windows 98 および Windows 2000 のみ向け カスタマイズされた静止画像デバイス用プロパティ シート ページを作成する DLL の名前とエントリ ポイントを識別します。 PropertyPages エントリの詳細は、「静止画像デバイスの INF ファイル」を参照してください。 |
省略可能 このエントリは、STI ドライバーでのみ使用されており、WIA ドライバーでは廃止されています。 WIA ドライバー開発者に関連するプロパティ ページの詳細は、次の表のPropertyPages に関するメモを参照してください。 |
DeviceData | DeviceData キーの下のレジストリに格納する情報を含む、ベンダーが指定したデータ セクションを識別します。 TWAIN 対応デバイスの場合、データ セクションには TwainDS エントリが含まれている必要があります (WIA ドライバーのレジストリ エントリを参照してください)。 | 省略可能 |
イベント | 静止画像デバイス イベントを一覧表示し、ベンダーが提供するデータ セクションを識別します。 このセクションの各エントリは、次の形式にしてください。 EventName="String",{GUID},App EventName はイベントの内部名、 String はイベントの表示文字列、 GUID はイベントの GUID、 App はイベントが発生したときに起動されるイメージング アプリケーションを指定します。 現在登録されているアプリケーションを起動するには、App* にアスタリスク () を使用します。 |
必須 |
PortSelect | デバイスのインストールでポート選択ページが必要なく、値が "no" の場合、そのページはスキップされます。 この値により、CreateFileName エントリ値も自動的に AUTO に設定されます (この表の後の CreateFileName と PortSelect の備考を参照)。 Message1 の値を指定すると、システム指定のメッセージが表示され、CreateFileName エントリの値が AUTO に設定されます。 手動インストールが必要なスキャナーとカメラの両方に適用されます。 |
省略可能 プラグ アンド プレイデバイスの場合、PortSelect は無視されますが、WIA がデバイスを読み込むには、デバイスに CreateFileName エントリ値が AUTO に設定されている必要があります。 INF AddReg ディレクティブを使用し、デバイスの INF ファイルの INF DDInstall Sectionにこのエントリを追加します。 |
Note
デバイスと通信するには、ユーザー モード クライアント (ミニドライバー) が WIA サービスにデバイスのファイル名、および作成するまたは開くオブジェクトの名前を指定する文字列を要求する必要があります。 (ファイル名はディスク ファイルの名前である必要はありません)。このクエリに応答する際、WIA サービスは CreateFileName レジストリ エントリからデバイスのファイル名を取得します。 (usbscan.sys と scsiscan.sys カーネル モード ドライバーは、クラス インストーラーと同様にこのエントリを作成します。) ミニドライバーは、IStiDeviceControl::GetMyDevicePortName メソッドを呼び出すことによりこのファイル名を受け取ります。 ミニドライバーは、CreateFile 関数を呼び出してデバイスへのハンドルを開く際、このファイル名を使用できます。 デバイスが手動でインストールされている場合、クラス インストーラーは CreateFileName エントリを作成し、その値をポート選択ページのユーザーの選択に依存する値 (COMX、LPTX、または AUTO) に設定します。 手動でインストールされている一部のデバイス (ネットワーク スキャナーなど) では、ポートは必要ありません。 この場合、結果として得られるポート選択ダイアログがユーザーを混乱させる可能性があります。 このダイアログが表示されないようにするには、デバイスの INF ファイルの INF DDInstall Section に次のエントリを追加します。
PortSelect=NO
Note
このエントリ値の副作用は、CreateFileName エントリが AUTO に設定されていることになります。 ミニドライバーがファイル名の AUTO を受け取る場合、通信するデバイスを独自に判断できる必要があります。
Note
PropertyPages の場合、WIA ドライバーは、プロパティ ページを追加するために別の機能拡張メカニズムを使用する必要があります。 また、INF ファイル内の UI クラス ID エントリに独自の GUID を追加し、共通ダイアログなどなどの置き換えられる UI コンポーネント、およびコンテキスト メニューやプロパティ ページなど追加される UI コンポーネントに対し、特定の UI 拡張登録 (ユーザー インターフェイス拡張機能レジストリ エントリを参照) を提供する必要があります。 WIA ドライバーは、コンポーネント自体の UI 拡張機能の登録も提供する必要があります。
追加の INF ファイル エントリ
次の表のエントリは、デバイスの INF AddReg Directive が指すセクション内に配置する必要があります。
INF ファイル エントリ | Value | Comments |
---|---|---|
HardwareConfig | デバイスが使用している接続の種類を示します。 1,1 − 汎用 WDM デバイス 1,2 − SCSI デバイス 1,4 − USB デバイス 1,8 − シリアル デバイス 1,16 − 並列デバイス |
省略可能 |
USDClass | ミニドライバーの GUID を示します。 | 省略可能。 USDClass エントリと CLSID エントリの GUID は、ミニドライバーの DllGetClassObject 関数で使用される GUID と一致する必要があります。 マイクロドライバーを記述する場合、値は BB6CF8E2-1511-40bd-91BA-80D43C53064E としてください。 それ以外の場合は、genguid.exeなどを使用して新しい GUID を生成してください。 |
ビット | ミニドライバーの GUID を示します。 | 省略可能。 USDClass エントリについては、直前のコメントを参照してください。 |
静止画像デバイスの既定のクラス インストーラーは、標準の INF CopyFiles ディレクティブ に対応しています。
静止画像デバイスの既定の INF ファイルである sti.inf では、次のようにデバイスの種類ごとに 2 つのインストール セクションが定義されています。
次の表に示すように、ベンダーが提供する INF ファイルの DDInstall セクション内で参照する必要がある INF DDInstall Section。
デバイスの種類 含む 必要なもの IEEE 1394/SBP2 Include=sti.inf Needs=STI.SBP2Section USB Include=sti.inf Needs=STI.USBSection SCSI Include=sti.inf Needs=STI.SCSISection シリアル Include=sti.inf Needs=STI.SerialSection 次の表に示すように、ベンダーが提供する INF ファイルの DDInstall セクション内で参照する必要がある INF DDInstall.Services Section。
デバイスの種類 含む 必要なもの 1394/SBP2 Include=sti.inf Needs=STI.SBP2Section.Services USB Include=sti.inf Needs=STI.USBSection.Services SCSI Include=sti.inf Needs=STI.SCSISection.Services シリアル Include=sti.inf Needs=STI.SerialSection.Services
静止画像デバイス用の INF ファイルの作成に関する追加のガイダンスは、"Subclass=StillImage" とのエントリを含む Windows で提供される INF ファイルを確認できます。
デバイスを WIA デバイスとして指定するには、ミニドライバー INF ファイルにはベンダーが提供する INF ファイルの DeviceData セクション内に次の値が含まれて配置されている必要があります。
INF ファイル エントリ | Value | Comments |
---|---|---|
[サーバー] | ローカル | デバイスをローカル デバイスとして指定します。 これは省略可能であり、ベンダーがエントリ値を指定しない場合、デバイスはローカルと見なされます。 つまり、WIA_DIP_Standard Edition RVER_NAME プロパティは Local に設定されます。 |
MicroDriver | ベンダー指定の .dll ファイル名 | このエントリは、WIA マイクロドライバーを実装するベンダーが提供する DLL の名前に設定する必要があります。 |
UI DLL | ベンダー指定の .dll ファイル名 | 廃止され、使用されることはありません。 以前は、このエントリは、ベンダーが提供するユーザー インターフェイス DLL ファイルの名前を示していました。 |
UI Class ID | ベンダー指定のデバイス クラス識別子 | ベンダーが提供するユーザー インターフェイスが対応するデバイス クラスを示します。 これは省略可能であり、ベンダーがエントリ値を指定しない場合、WIA は WIA_DIP_UI_CLSID プロパティを GUID_NULL に設定し、既定の WIA UI が使用されます。 |
ICMProfiles | ベンダー指定のカラー プロファイル値 | WIA_IPA_ICM_PROFILE_NAME プロパティに格納する値を指定します。 値が指定されていない場合、標準の sRGB プロファイル sRGB Clolor Space Profile.icm が使用されます。 |
MicroDriver エントリは、ベンダーが WIA マイクロドライバーを提供する場合にのみ必要です。
ユーザー インターフェイス (UI) エントリは、ベンダーがイメージング デバイス用のカスタム ユーザー インターフェイスを提供する場合にのみ必要となります。
解説
スキャナー用の INF ファイルを開発する場合、Microsoft OS 記述子を使用し互換性 ID 機能を有効にできます。 これを行うと、1 つのスキャナー ドライバーが複数のスキャナー モデルと互換性を持つことができるようになります。