必須コマンド
次の一連の必須コマンドは、すべてのマイクロドライバーで実装する必要があります。
CMD_GETCAPABILITIES
ボタン イベント情報を取得するために WIA フラットベッド ドライバーによって呼び出されます。 渡された VAL 構造体の 3 つのメンバーを入力する必要があります。lVal はボタンの数に設定する必要があります。 pGuid はイベント GUID の配列に設定する必要があります。 ppButtonNames は、必要に応じて、pGuid と同じ順序でボタン名を含む WCHAR* 配列に設定できます (例: "スキャン ボタン" または "FAX ボタン")。 ppButtonNames が NULL に設定されている場合、WIA フラットベッド ドライバーは汎用ボタン名を作成します。 配列は、CMD_INITIALIZEに応答して割り当てることができ、CMD_UNINITIALIZEで解放できます。
CMD_INITIALIZE
WIA フラットベッド ドライバーによって呼び出されて、マイクロドライバーを初期化し、デバイス I/O ハンドルを有効な値に設定します。 WIA サービスが WIA フラットベッド ドライバーで IWiaMiniDrv::d rvInitializeWia メソッドを呼び出すと、このコマンドがマイクロドライバーに送信されます。
WIA フラットベッド ドライバーは、自動的に 1 つのデバイス I/O ハンドルを作成し、インデックス 0 で渡された SCANINFO 構造体の DeviceIOHandles 配列メンバーに配置します。 マイクロドライバーは、デバイスと通信する必要がある場合に、このハンドルを使用する必要があります。 マイクロドライバーに追加のデバイス ハンドルが必要な場合 (たとえば、複数の一括 USB パイプを使用する場合)、デバイスハンドルを作成して DeviceIOHandles 配列に MAX_IO_HANDLES の最大数まで格納できます。 WIA フラットベッド ドライバーは、初期化中にそのハンドルを作成したため、インデックス 0 でハンドルを自動的に閉じます。 他のハンドルは、CMD_UNINITIALIZEに応答して、マイクロドライバーによって閉じる必要があります。
このコマンドの一部として、マイクロドライバーは SCANINFO 構造体内のすべての値も初期化する必要があります。 WIA Flatbed Driver がデバイスの有効範囲に対してこれらの値を自動的に検証できるように、マイクロドライバーは SCANINFO 構造体の SupportedDataTypes、IntensityRange、ContrastRange、BedWidth、BedHeight メンバーを設定する必要があります。
CMD_RESETSCANNER
WIA サービス要求に応答してデバイスをリセットするために、WIA フラットベッド ドライバーによって呼び出されます。 マイクロドライバーは、デバイスを電源オン状態に設定する必要があります。 Windows Vista では、WIA フラットベッド ドライバーはこのコマンドを使用しません。 ただし、マイクロドライバーは引き続きこのコマンドをサポートして、Windows XP で正しい操作を行い、場合によっては、このコマンドを使用する可能性のある WIA フラットベッド ドライバーの将来のバージョンを使用する必要があります。
CMD_SETDATATYPE
スキャンのデータ型を設定するために WIA フラットベッド ドライバーによって呼び出されます。 渡された VAL構造体の lVal メンバーには、次のいずれかの値が渡されます。
WIA_DATA_THRESHOLD - 1 ビット白黒
WIA_DATA_GRAYSCALE - 8 ビット グレースケール
WIA_DATA_COLOR - 24 ビットカラー
マイクロドライバーは、渡された SCANINFO 構造体の DataType メンバーに値を格納する必要があります。
CMD_SETCONTRAST
スキャンのコントラスト値を設定するために WIA フラットベッド ドライバーによって呼び出されます。 必要なコントラスト値は、渡された VAL 構造体の lVal メンバーに渡されます。 値 -1000 は、最小コントラスト値、0 名目、およびデバイスの最大コントラスト 1000 として解釈する必要があります。 マイクロドライバーは、渡された SCANINFO 構造体の Contrast メンバーに値を格納する必要があります。
CMD_SETINTENSITY
スキャンの強度または明るさの値を設定するために WIA フラットベッド ドライバーによって呼び出されます。 必要な強度値は、渡された VAL 構造体の lVal メンバーに渡されます。 値 -1000 は、最小輝度値、0 名目、およびデバイスの最大輝度 1000 として解釈する必要があります。 マイクロドライバーは、渡された SCANINFO 構造体の Intensity メンバーに値を格納する必要があります。
CMD_SETXRESOLUTION
水平スキャン解像度を設定するために WIA フラットベッド ドライバーによって呼び出されます。 必要な解像度 (ピクセル単位) は、渡された VAL 構造体の lVal メンバーに渡されます。 マイクロドライバーは、渡された SCANINFO 構造体の XResolution メンバーに値を格納する必要があります。
CMD_SETYRESOLUTION
垂直スキャン解像度を設定するために WIA フラットベッド ドライバーによって呼び出されます。 必要な解像度 (ピクセル単位) は、渡された VAL 構造体の lVal メンバーに渡されます。 マイクロドライバーは、渡された SCANINFO 構造体の YResolution メンバーに値を格納する必要があります。
CMD_STI_DEVICERESET
WIA フラットベッド ドライバーによって呼び出され、静止画像 (STI) 要求に応答してデバイスをリセットします。 このコマンドは通常、初期化中に 1 回だけ呼び出されます。
CMD_STI_DIAGNOSTIC
ユーザーがデバイスのテストを要求すると、WIA フラットベッド ドライバーによって呼び出されます。
CMD_UNINITIALIZE
マイクロドライバーを初期化解除し、デバイス I/O ハンドルを閉じます。 WIA フラットベッド ドライバーは、インデックス 0 で SCANINFO 構造体の DeviceIOHandles 配列メンバーのデバイス I/O ハンドルを自動的に閉じます。 このコマンドは、WIA フラットベッド ドライバーのアンロード時にマイクロドライバーに送信されます。