雑記帳

電子計算機の"明後日"から、他愛もない話まで。

FMV-KB613純正ドライバがWin8/8.1に対応!…しかし?

ついに富士通よりFMV-KB613/親指シフトノート用のWin8/8.1対応純正ドライバが公開されたようです(V5.0.2.0)。

拙作ドライバである親指の友 Mk-2ドライバは64bit版の場合、テスト署名等それなりに面倒な手順を踏んで導入する必要があるので、インストールを躊躇う方も居たのではないかと思いますが、こちらは既に署名済なのでそういった面倒さはありません。

しかもこのドライバ、64bit版についてはさりげなくWHQLを通してあるようなので(!!)、セキュリティ的にうるさい現場でも使用OKが出やすいのではないかと思います(今後個人的には重要なポイントです)。ということで、もし拙作ドライバ(x64版)の導入を諦めた方がいらっしゃったら、是非こちらのドライバを試されてはと思います。

でもストアアプリは不可らしいです(Japanistが動かないからサポートしないと言っているだけなのか、本当に正しくカナ入力できないのかは試していないのでわかりませんが)。
親指の友 Mk-2ドライバはストアアプリでも動作OKだったのを確認していますので、どうしてもこっちのアプリを使いたい方は、嫌でもあの面倒な手順を踏んでいただく必要がありそうです…。
そういえば、この富士通ドライバのリリース日から丁度1年前が、拙作Mk-2ドライバ初版のリリース日だったんですねぇ。何かの偶然でしょうか?

 

さて、まだ手元にこのドライバをすぐ使える環境がある訳ではないのですが(サブ機を10にしていない && KB611が職場にある)、興味本位で落としてみまして、以前のバージョン(V5.0.1.0)と見比べてみましたところ…

 

x86版、もしかして間違って旧版のファイルを入れてね…?

 

いや、ファイルサイズも更新日時も署名日も違うので、ちゃんとパッケージを作り直しているらしいことは間違いないのですが、ファイルのプロパティを見ると、バージョンが軒並み"V5.0.1.0"だったり、コピーライトが2011年になっていたりします。また、全てのバイナリファイルについて極端に大きさが変わったファイルはありません(全体的に1~2KB程度縮んでいるようです)。

一方、64bit版は上記記載については正しく変更されているようです。また、バイナリファイルを新旧両バージョンで見比べると、富士通の署名とWHQLの署名が増えているので全体的にファイルサイズが増加傾向(+5KB程度)ですが、f5dnchex.dllという謎のユーザモードDLLだけやたらと膨らんでいます(67KB→114KB!)。

そのため、x64版についてはWin8対応の追加実装がこいつに行われたと推測できるのですが、x86版では前述のように、両バージョンともほとんど同じサイズです(72KB→70KB)。

 

ここで色々と疑問が沸いてきました。

  1. このx86版は本当にWin8.1で動作する代物なのか? (ちゃんと動作試験を通ったバイナリなのか?)
  2. 動作する代物だとしたら、今回のバージョンで8.1に対応したという意味は何なのか
  3. x64とx86で対応内容が違うのはどういう訳か

いくらなんでも1がアウトとは思えないので(わざわざ今更32bit版を指名導入する人間なんて私みたいな組み込み界隈の輩位だと思いますが、だからといって検証を手抜きするとは思えないので…)、そうすると「前のバージョンから変更する必要が無かったから弄らなかった」と考えるのが自然です。ただ、そうすると2以降の件はどうなのかという話になります。

 

以前にもどこかで書きましたが、少なくとも私自身、Win8.1(x86)で初代親指の友ドライバ(Mk-2じゃない方)が上手く動かなかったことを確認しており、その原因は、Windows側からキーボードドライバへIMEの状態遷移が通知されなくなったことにありました。

2019/9/7追記

当時、上述の確認はPS/2ポートを持たない機体で行ったのですが、実はこれが問題だったらしく、PS/2接続かつx86版では正しくIMEの状態遷移が行われていたようです(PS/2ポートが無い場合やx64版では来ない)。だから、富士通のドライバはx64版だけ変更されていた訳ですね…。

詳しくはこちらの記事を参照下さい。…このタイミングで気づけていればなぁ…重要なヒントがたくさん散りばめられてたのに…。

このため、これより下の記載内容は概ね的外れです。

 

もしWin8.1で富士通製V5.0.1.0ドライバを使い、モードずれ無く正しく入力できていたのであれば、つまりこの機能には依存していなかったことになります。

そうだとすると一体どうやってドライバ側で親指シフトのエミュレートを実現していたんだろう??

一瞬f5dnchex.dllが親玉なのかと思いましたが、そもそもinfを見てもこいつを常駐させるようなエントリは無いし、レイアウトファイルからリンクされているとも考え辛いので…。まさかJapanistが叩いてるとか? でも、随分前の記憶では、MS-IME併用でもちゃんとかな入力できてたしなぁ…。

 

しかし、そうなるとなぜ「Win8.1では動作しません」と言い張っていたのか…。

親指シフターには計算機周りに疎い人が多いので、安全のために動作確認が済むまでそう言い張っていただけとか?

 

…まぁこんなグダグダ書いてるより、私がとっととサブ機をWin10にしてみて、初代親指の友、Mk-2、富士通のV5.0.1.0、富士通のV5.0.2.0で動作確認してみれば良いだけの話なんですけどね。ただ近頃忙しくなってきてしまいましたので…すぐにはダメかもしれません…。

Mk-2ドライバの文字キー遅延を無くす機能とか、電脳文庫の実装とか、やりたいこともいっぱい溜まってきているんですがねぇ。消化しきれん。

 

ということで、暇でしょうがない方がいらっしゃいましたら、私に代わってどういうことなのか確認して頂ければと思います(ぇ

まぁx86版であれば、富士通のドライバが実は動かなかったとしてもMk-2ドライバを簡単に導入できますので、そんなに困ることも無かろうと思いますがね。

ちなみに、先程触れた「Windows側からキーボードドライバへのIME状態遷移通知」機能ですが、初代親指の友ドライバの他、Windows 7まで標準で搭載されていたKB211用のモードずれ補正ドライバ("富士通 FMV 親指 シフト PS/2 キーボード")でも使われていた機能です。

なので、こいつの処遇が8以降どうなったのか、手元の8.1マシンで調べてみましたが、なんと「親指シフト PS/2 キーボード」という名前で健在でして、しかも何やらレイアウトファイルが大幅に膨れており、どうもこちらで細工をしているのかもしれません(上記マシンはPS/2ポートが無いので、本当にちゃんと動くのか確認はしていません)。

元々(7の頃より)、普通のレイアウトファイルには居ない"FujitsuOyayubiControl"なるエントリが公開関数として存在していましたので、もしかすると、こいつを使って何かしているのかもしれません(DDKのサンプルには居なかったので、詳細は解析しないとわかりませんが…これ以上の深追いはしないつもりです)。