INF ファイルを作成する

JOY_HWS_XISJ1Y

X は J1 Y 軸上です。

JOY_HWS_XISJ2X

X は J2 X 軸上です。

JOY_HWS_XISJ2Y

X は J2 Y 軸上です。

JOY_HWS_YISJ1X

Y は J1 X 軸上です。

JOY_HWS_YISJ2X

Y は J2 X 軸上です。

JOY_HWS_YISJ2Y

Y は J2 Y 軸上です。

JOY_HWS_RISJ1X

R は J1 X 軸上です。

JOY_HWS_RISJ1Y

R は J1 Y 軸上です。

JOY_HWS_RISJ2Y

R は J2 Y 軸上です。

JOY_HWS_ZISJ1X

Z は J1 X 軸上です。

JOY_HWS_ZISJ1Y

Z は J1 Y 軸上です。

JOY_HWS_ZISJ2X

Z は J2 X 軸上です。

JOY_HWS_POVISJ1X

ポーリングされたのは J1 X 軸です。

JOY_HWS_POVISJ1Y

ポーリングされたのは J1 Y 軸です。

JOY_HWS_POVISJ2X

ポーリングされたのは J2 X 軸です。

既定の動作は、次のとおりです。

  • X の既定値は J1 X 軸です。

  • Y の既定値は J1 Y 軸です。

  • R (rudder) の既定値は J2 X 軸です。

  • Z の既定値は J2 Y 軸です。

  • (ポーリングとして実装されている場合) は、既定で J2 Y 軸に設定されます。

また、フラグは、AXIS データとボタンの組み合わせの 2 つのデータの組み合わせから取得されるかどうかを判断するためにも定義されます。 説明されているデバイスが VJoyD によってポーリングされている場合、JOY_HWS_POVISBUTTONCOMBOS によって VJoyD によってボタンの組み合わせが解釈され、その場合は軸が使用されて検索されます。 説明されているデバイスがミニドライバーを介してポーリングされた場合、POV_UNDEFINED 以外の dwPOV の値によって、他の任意の OF 計算がオーバーライドされます。 ただし、JOY_HWS_POVISBUTTONCOMBOS設定されている場合、VJoyD はボタンをアナログアナログの場合と同じ方法で解釈します。 それ以外の場合、この値が設定されていない場合は Z JOY_HWS_HASZから取得されます。それ以外の場合は R から取得されます。 ミニドライバーは、通常、ハードウェアの実装に関する詳細な情報を持つので、可能な場合は、汎用 VJoyD で、MINI 情報を解釈しないようにする必要があります。

次のフラグは、デバイスが持つ機能を説明するために使用されます。

JOY_HWS_HASZ

日本では Z (第 3 軸) の情報があります。

JOY_HWS_HASR

陸上には R (4 番目の軸) 情報があります。

JOY_HWS_HASU

陸上には R (4 番目の軸) 情報があります。

JOY_HWS_HASV

陸上には R (4 番目の軸) 情報があります。

JOY_HWS_HASPOV

大きな波には、HAT が付く。

デバイスの種類を記述するには、次のフラグを使用します。

JOY_HWS_ISYOKE

デバイスはフライト ストロークです。

JOY_HWS_ISGAMEPAD

デバイスはゲーム パッドです。

JOY_HWS_ISCARCTRL

デバイスは、レース カー コントローラーです。

JOY_HWS_ISHEADTRACKER

デバイスはヘッド トラッカーです (DirectX 3.0 で定義されています)。

最後に、DirectX 3.0 で追加された JOY_HWS_ISGAMEPORTDRIVER フラグは、このミニドライバーがゲーム ポートの標準ポーリングに代わるかどうかを示します。

たとえば、8 つのボタンを持ち、X、Y、Z、R、および AND の値を返すデジタル サイバーがある場合は、ビット JOY_HWS_HASZ、JOY_HWS_HASPOV、および JOY_HWS_HASR を設定する必要があります。 これにより、次の情報が得されます。

0x00000001

JOY_HWS_HASZ

01,00,00,00

|

0x00000002

JOY_HWS_HASPOV

02,00,00,00

|

0x00080000

JOY_HWS_HASR

00,00,08,00

=

0x00080003

組み合わせ

03,00,08,00

この DWORD をリトル エンディアン形式にし、その後にボタンの数の DWORD を指定すると、03,00,00,08,00,08,000,00,00,00,000 が提供されます。これは INF ファイルに必要な一連のバイトです。

INF ファイルに指定されている残りのレジストリ設定はすべて、標準のコントロール パネルによって提供される調整の手順をカスタマイズし、次のとおりです。

REGSTR_VAL_JOYOEMXYLABEL この文字列は、cPL のテスト ダイアログおよび調整ダイアログで見つかった、XY 位置コントロールの下に表示されます。

REGSTR_VAL_JOYOEMZLABEL この文字列は、cPL のテスト ダイアログおよび調整ダイアログにある Z 位置コントロールの下に表示されます。

REGSTR_VAL_JOYOEMRLABEL この文字列は、cPL のテスト ダイアログおよび調整ダイアログにある R 位置コントロールの下に表示されます。

REGSTR_VAL_JOYOEMPOVLABEL この文字列は、CPL のテストダイアログと調整ダイアログで見つかった、"パネル" の下に表示されます。

REGSTR_VAL_JOYOEMULABEL この文字列は、テストで見つかった U 位置コントロールの下に表示され、cPL のダイアログを調整します。

REGSTR_VAL_JOYOEMVLABEL この文字列は、テストで見つかった V 位置コントロールの下に表示され、cPL のテストダイアログと調整ダイアログに表示されます。

REGSTR_VAL_JOYOEMTESTMOVEDESCこの文字列は、テスト ダイアログの移動セクションに表示されます。 これは、ユーザーに対して、権限をテストする方法を説明します。

REGSTR_VAL_JOYOEMTESTBUTTONDESCこの文字列は、テスト ダイアログのボタン セクションに表示されます。 ボタンをテストする方法についてユーザーに説明します。

REGSTR_VAL_JOYOEMTESTMOVECAPこの文字列は、テスト ダイアログの移動セクションを囲むグループ ボックスのキャプションとして表示されます。

REGSTR_VAL_JOYOEMTESTBUTTONCAPこの文字列は、テスト ダイアログのボタン セクションを囲むグループ ボックスのキャプションとして表示されます。

REGSTR_VAL_JOYOEMTESTWINCAPこの文字列は、テスト ダイアログのキャプションとして表示されます。

REGSTR_VAL_JOYOEMCALCAP この文字列は、調整ダイアログのキャプションとして表示されます。

REGSTR_VAL_JOYOEMCALWINCAP この文字列は、調整ダイアログのキャプションとして表示されます。

この文字列を REGSTR_VAL_JOYOEMCAL1 と、ユーザーは、ジョイスティックの水平の部分を調整する方法をユーザーに指示します。

この文字列 REGSTR_VAL_JOYOEMCAL2、調整のためにジョイスティックの XY の部分を移動する方法をユーザーに指示します。

REGSTR_VAL_JOYOEMCAL3 この文字列は、調整のためにジョイスティックの recenter の部分をどのように指定するかをユーザーに指示します。

REGSTR_VAL_JOYOEMCAL4 この文字列は、調整のためにジョイスティックの Z 部分を移動する方法をユーザーに指示します。

REGSTR_VAL_JOYOEMCAL5 この文字列は、調整のためにジョイスティックの R 部分を移動する方法をユーザーに指示します。

この文字列 REGSTR_VAL_JOYOEMCAL6、調整のためにジョイスティックの U 部分を移動する方法をユーザーに指示します。

REGSTR_VAL_JOYOEMCAL7 この文字列は、調整のためにジョイスティックの V 部分を移動する方法をユーザーに指示します。

この文字列 REGSTR_VAL_JOYOEMCAL8、調整のために POV hat を動かす方法をユーザーに指示します。

この文字列 REGSTR_VAL_JOYOEMCAL9、調整のために POV hat 権限を移動する方法をユーザーに指示します。

この文字列 REGSTR_VAL_JOYOEMCAL10、調整のために POV を下へ移動する方法をユーザーに指示します。

この文字列 REGSTR_VAL_JOYOEMCAL11、調整のために POV を左に移動する方法をユーザーに指示します。

REGSTR_VAL_JOYOEMCAL12 この文字列は、調整プロセスが完了したことをユーザーに通知するメッセージで構成されます。

すべての必要な情報をシステムに提供するには、すべてのミニドライバーと OEM 定義のジョイスティックを INF ファイルを使用してインストールする必要があります。 INF ファイルでは、デバイスのクラス、コピーする必要があるファイル、互換性のあるデバイス、デバイスに必要なシステムリソース、レジストリへの変更に関して、デバイスのインストールを記述します。 標準のアナログドライバーをカスタマイズするための INF ファイルでは、ファイルのコピー、状態に対応したデバイスのコピー、またはシステムリソースの指定は必要ありません。 INF ファイルでは、Autoexec.bat ファイルの変更などの他のアクションを指定できますが、これは通常、ジョイスティックミニドライバーには必要ありません。

INF ファイルには、以下に示す要素が含まれています。

デバイスクラスの設定

ジョイスティックは、[新しいハードウェアの追加] コントロールパネルの [サウンド、ビデオ、およびゲームコントローラー] という名前の MEDIA クラスの下にあります。 クラス関連のセクションは、例またはジョイスティックの .inf ファイルからコピーする必要があります。

ソースファイルの選択

INF ファイルの "SourceDisksFiles" セクションでは、コピーするファイルを指定します。 これには、すべての必要なドライバーだけでなく、ドキュメントやセットアップアプリケーションなどの他のファイルも含まれます。 これは、ユーザーのシステムにインストールされる最初のジョイスティックドライバーである可能性があるため、このデバイスの特定のドライバーに加えて、システムジョイスティックドライバー Vjoyd と Msjstrick もコピーする必要があります。 これら2つのドライバーのソースは、OEM ディスクに配布されていない、(ユーザーが Windows 95/98/Me インストールディスクの入力を求められる) .inf への参照によって確立される必要があります。ドライバーは、宛先コード11であるユーザーのシステムディレクトリにコピーする必要があります。

Manufacturer-Specific データを設定する

INF ファイルが指す製造元固有のセクションには、インストール可能な各デバイスのエントリが1つ含まれています。 各エントリには、デバイスの名前、インストールセクションの名前、デバイス ID、および互換性のあるデバイスが含まれます。 デバイスがプラグアンドプレイ互換として登録されている場合は、デバイス ID にプラグアンドプレイ ID (アスタリスクで始まる) を使用する必要があります。 デバイスが登録されていない場合は、プラグアンドプレイ互換性のないデバイス ID を使用する必要があります (つまり、アスタリスクで始まるものではありません)。 この種類のデバイスを登録する場合は、他のデバイス Id と競合する ID を選択しないでください (たとえば、"ジョイスティック" は適切な ID ではありません)。

LogConfig エントリの設定

入出力 (i/o) ポートなどのシステムリソースを必要とするデバイスでは、[インストール] セクションの LogConfig エントリを使用して、使用可能な構成を指定します。 デバイスによっては、独自のリソースを使用しないものもあります。 代わりに、シリアルポートドライバーなどの別のドライバーを使用して、デバイスと通信します。 DirectX 3.0 VJoyD は、アナログゲームポートの i/o ポート要件の処理で、以前のバージョンとは異なります。 以前のバージョンは、標準のゲームポート範囲0x200 から0x20f へのポートを使用して、1つまたは2つの i/o ポートの割り当てを使用して構成されたデバイスが1つ以上ある場合にのみ機能しました。 また、2つ目の i/o 範囲は1つのポートにする必要がありました。 ゲームポートを持たないシステムがミニドライバーを通じて運用されているデバイスを使用するように構成されているゲームポートがない場合は、新しい VJoyD が機能します。 (2 番目の i/o 範囲は、複数のポートにすることができます)。

0x200 から0x20f の範囲内のポートを使用しているデバイスは、VJoyD によってアナログゲームポートとして解釈されるため、構成マネージャーによって競合デバイスと見なされる可能性があります。 その他のゲームポート i/o ポートのセットはすべて無視されます。コンピューターの2枚のカードにゲームポートがある場合、1つのカードのポートだけがポーリングされます。 デバイスが標準のゲームポートを非標準の方法で使用する必要がある場合は、さらに興味深いものが得られます。 デバイスのインストールセクションの LogConfig エントリに標準ポートを要求することはできますが、通常は、ジョイスティックをスワップするために再構成と再起動が多くなります。 別の方法としては、ゲームポート条件に適合する configuration manager コールバックで渡される一連の i/o 範囲を使用して、VJoyD でリソースを共有する方法があります。 ユーザーがジョイスティックを標準のアナログドライバーと OEM ドライバーの両方に対して構成していない限り、両方をポーリングしようとするアプリケーションを実行します。

DirectX 3.0 では、JOY_HWS_ISGAMEPORTDRIVER フラグを設定することによって、標準のアナログポーリングの代わりに OEM VxD を呼び出すことができるように変更が実装されました。 コントロールパネルでは、このようなデバイスをグローバルドライバーとして設定できます。つまり、内部アナログポーリングではなく、ミニドライバーが関連付けられていない任意のジョイスティックに対して呼び出されます。 これにより、VJoyD が OEM デバイスのポーリングに干渉しないようにすることができます。

ブート中に最初の4つのデバイスがすべてミニドライバー (OEM グローバルドライバーである可能性があります) によって処理されている場合、VJoyD は、これらのデバイスがミニドライバーによって処理されなくなった場合でも、をチェックしません。また、すべてのゲームポートを使用することはできません。 VJoyD がそのポートを使用できない場合 (またはゲームポートが存在しない場合)、ポーリング要求に JOY_OEMPOLLRC_YOUPOLL を返すと、標準ポーリングが使用されません。 このポーリングを使用したデバイスへの再構成は、ゲームポートリソースが再割り当てされた後 (再起動前ではない可能性があります) にのみ有効になります。

AddReg エントリの設定

INF ファイルでは、install セクションの AddReg エントリによって選択されたセクションにレジストリエントリを設定する必要もあります。 ミニドライバーを必要とするデバイスでは、ドライバーがマルチメディアシステムドライバーと適切に関連付けられていることを確認するために、次の設定を行う必要があります。

HKR,,DevLoader,,mmdevldr.vxd
HKR,Drivers,,,
HKR,Drivers,MIGRATED,,0
HKR,Drivers\joystick,,,
HKR,,Driver,,vjoyd.vxd
HKR,Drivers\joystick\msjstick.drv,,,
HKR,Drivers\joystick\msjstick.drv,Description,,%OEMJoy.DeviceDesc%
HKR,Drivers\joystick\msjstick.drv,Driver,,msjstick.drv

% DeviceDesc% 文字列は、デバイス名の文字列が呼び出されたものに置き換えられます。

このジョイスティックを示す値は、REGSTR_PATH_JOYOEM (HKEY_LOCAL_MACHINE の下にあります) のように、OEM が定義したキーの下にレジストリに格納されます。 このキーの下では、oem は複数の静的な値を設定して、ジョイスティックの調整プログラムおよび Windows 95/98/Me 用のアプリケーションに oem ジョイスティックを表示する方法をカスタマイズできます。 値の名前は、レジストリに表示される名前ではなく、次に説明するこれらの定数の名前として定義されています。 すべての OEM 定義デバイスは、少なくとも基本プロパティを定義し、[コントロールパネル] の [ジョイスティック] 選択ボックスでユーザーに表示される名前を持つ必要があります。 ミニドライバーを読み込むには、値にミニドライバー VxD の名前 (拡張子は .vxd を含む) が含まれている必要があります。 OEM 名の値 (REGSTR_VAL_JOYOEMNAME) とミニドライバーファイル名 (REGSTR_VAL_JOYOEMCALLOUT) の値は単純な文字列です。 REGSTR_VAL_JOYOEMDATA の基本プロパティ値はバイナリデータであり、次のような意味があります。

2つのダブルワードがあります。1つ目は、一連のフラグ、2番目はデバイスのボタンの数です。

フラグでは、デバイスの種類、どの軸が存在するか、およびそれらをどのように解釈するかを指定します。

ほとんどのフラグは Mmddk で定義されています。 DirectX 3.0 で追加された2つの新しいフラグは、Dinput. h で定義されています。 次のフラグは、VJoyD によって直接ポーリングされる OEM 定義のアナログジョイスティックの軸を再マップするためにのみ使用されます。 これらは、アナログポーリングを行うときの VJoyD の既定の動作を変更しますが、ミニドライバーによって返されるデータには影響しません。