投稿

4月, 2017の投稿を表示しています

Geforce DriverのTelemetryサービスのナゾ

NVIDIA版テレメトリ(遠隔調査)サービスであるNvTelemetryの添付は、Geforce Driver Version 375.70から始まった。 正確に言うと、Geforce ExperienceのメジャーバージョンアップがあったVersion 375.57からだと思うが、バグがあったということでVersion 375.63に差し替えられた。 そのVersion 375.63のパッケージからはGeforce Experienceが取り除かれており、何のバグだったかは想像に難くない。(これを報じるメディアが何と書いたか調べてみるのも面白いかもしれない) あまりにも自然に紛れ込ませてきたので、当初はあまり話題にならなかったようだ。 さすがに問題があると思ったのか、Version 378.78あたりからNvTelemetryContainer.exeによるサービス化をして、気に入らないなら止めていいよ的に体裁を繕ったが、そういう問題か? さて、実際の動作だが、詳しく調べたわけではないのでファイル名からの想像に過ぎないのだが、NvTelemetry.dll及びそのサービス(NvTelemetryContainer.exe)によって収集された情報が、C:\ProgramData\NVIDIA Corporation\NvTelemetry\events.datに保存され、Geforce Experienceに付属しているNvTmRep.exeによって送信されるという仕組みだと思われる。(ドライバやプロファイルの更新をチェックするついでに送信する目論見なのだろう。) C:\ProgramData\NVIDIA Corporation\NvTelemetry\events.datには、ご丁寧にファイルアクセス権が設定されて簡単には読めないようになっている。中身はSQLite形式のデータベースファイルになっており、何を記録しているかは不明。 この動作は嫌だと思うならば、Geforce Experienceをインストールしなければいいのかと思いきや、NvTelemetry関連ファイルおよびサービスは普通にインストールされてしまう。(送信をしなくなるだけ?) そこで、ドライバのEXEファイルを起動して解凍した後(アーカイバソフトを使って普通に解凍しても可)、インストールプロセ

今時2GBの壁の前に悶絶する

暇だったので、三国志13PKの音声ファイルを抜き出すVBScriptを書いたのだが、実際に処理してみるとファイルの途中でエラーが発生してしまった。 リファレンスを見てみると、 https://msdn.microsoft.com/ja-jp/library/cc426742.aspx ADODB.StreamのPositionに渡すのはLongであるらしい。 Long型は、VBScriptでは符号付32bit整数なので、Positionの値は2G-1が上限ということになる。 よくよく調べてみると、CopyToメソッドのサイズはIntegerであるとも書いてある。 https://msdn.microsoft.com/ja-jp/library/cc364138.aspx いくらなんでもこれは間違いだと思うが。 とは言うものの、ファイルの扱いをWin32APIを使った処理に書き換えればできなくもないのだろうが、そこまでしてVBScriptにこだわる意味もないので、今回はあきらめることにしました。