スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

OpenFileDialogを表示するときにフリーズする不具合の解決

概要

 いつからかWindows 7 64bit環境でVisualBasic.NETで開発をしているとWindows7がフリーズするようになりました。

 主にデバッグ開始時、実行中ですが、ソースコードをスクロールしているだけでもフリーズすることがありました。

 現象は20回に1回程度なので放置していましたが、OpenFileDialog.ShowDialog時に6回に1回程の頻度でフリーズが発生することが発覚し原因の調査に乗り出しました。

 結果「C:\Windows\System32\drivers\cymon.sys」を削除すると現象が発生しないことが分かりました。

 これはBookLive!Readerをインストールしたときに追加されるドライバで、BookLive!Readerのアンインストールと同時に削除されます。

 そのためBookLive!Readerをアンインストールすることで現象を解決しました。


現象はBookLive!Readerをアンインストールことで解決します。

以下は細かい内容なので、読まなくても問題ありません。


環境

システム
項目
OS 名Microsoft Windows 7 Home Premium
バージョン6.1.7601 Service Pack 1 ビルド 7601
システムの種類x64-ベース PC

ソフト
ソフト名バージョン
Microsoft Visual Basic 2010 ExpressVersion 10.0.40219.1 SP1Rel
Microsoft .NET FrameworkVersion 4.0.30319SP1Rel
BookLive!ReaderVer 1.5.0.0 00000
C:\Windows\System32\drivers\cymon.sys1.3.2.10(ファイル・製品ともに同じ)

現象

 Visual Basic Expressでのデバッグ中、OpenFileDialogが表示されるときに6回に1回程度の頻度でWindows7がフリーズします。

 これに限らず、デバッグ開始時、デバッグ中、ソースコードスクロール中にも、20回に1回程度と頻度は減りますがWindows7のフリーズが発生します。。


 フリーズ時は以下のような状態になります。色々してもフリーズは直りません。

  • デバッグ中のウィンドウとVisual Basic Expressがまず固まり操作ができなくなる
  • Visual Basic Express上でのctrl+alt+break(デバッグの停止)は効かない
  • ctrl+alt+deleteも効かない
  • その他のウィンドウは数秒の間は操作できますが、少しするとフリーズする
  • Windowsキーでスタートメニューが開きますが、それもメニュー上でマウスを移動させると固まる
  • Alt+Tabで画面の切り替えも何度かは出来ますが、少しするとできなくなる
  • フリーズ中もAlt+Tab自体は常に認識されて、画面は切り替わらないが、切り替え画面の青枠は動く
  • LANケーブルの抜き差しをしても改善しない
  • モニタの抜き差しをしても改善しない

 しかたないので、本体のリセットボタンから再起動させます。再起動後は以下のような状態になります。

  • 「Windowsエラー回復処理」画面が出る。
  • 通常起動してイベントログを確認するが、怪しいログは存在しない
  • フリーズ時に編集していたファイルが破損していることもある(例えばテキストファイルの中身がすべて空白文字になっている)

再現手順

現象確認日: 2012/09/29

  1. Visual Basic 2010 Expressを起動します。
  2. 「ファイル」 -「 新しいプロジェクト」から「Windows フォーム アプリケーション」を選択しOKを押します。
  3. Buttonコントロールを選択し、デザイン画面上に配置します。
  4. Formのコードを表示し、全て消した後、下記の「現象再現コード(problem_code)」を貼り付け、保存します。
  5. デバッグ開始をします。
  6. ボタンをクリックします。(これでOpenFileDialog.ShowDialog()が実行されOpenFileDialogが表示されます)
  7. OpenFileDialogを閉じます。
  8. Formを閉じます。
  9. 手順5~9を現象が再現するまで繰り返します。(6回に1回程度の頻度でWindows7がフリーズします)

現象再現コード


Public Class Form1
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ofd As New OpenFileDialog
        If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
            Dim a As Integer = 0
        End If
    End Sub
End Class

原因

「C:\Windows\System32\drivers\cymon.sys」が存在すると現象が発生します。

これは「BookLive!Reader」というアプリをインストールしたときに同時に追加されます。

「BookLive!Reader」に限らず電子書籍系のアプリをインストールしている場合、存在する可能性があります。


※これが原因の一因であることは確かですが、他アプリやドライバとの競合の可能性もありえます。


原因調査手順

OpenFileDialogを表示するときにフリーズする原因の調査手順」に原因の調査手順を記載しています。

興味のある方はご参照ください。


対処

「BookLive!Reader」をアンインストールすると、同時に「C:\Windows\System32\drivers\cymon.sys」が削除されます。

そのため「BookLive!Reader」をアンインストールすると現象は発生しなくなります。


cymon.sysとは

著作権がCypher Tec Incとなっているので、おそらくこの会社製のファイルです。

Cypher Tec社はDRM技術を中核とした、情報保護を行う製品開発を行っている会社です。

例えば、電子書籍やPDFの違法コピーを防止する製品を開発しています。

おそらくこのcymon.sysもそういった目的のファイルと思われます。

具体的にどのようなことを行っており、フリーズ現象とどのような関係があるかはネット上を探しても情報がありませんでした。

ただ、同種ではないですが、「cymon.sysが原因と思われるブルースクリーン」という現象も発生しているようです。

また同社製品の「CypherGuard for PDF」においてブルースクリーンが発生する現象がネット上で散見されます。


余談

違法コピー防止をする為にどこまでOSを制御しなければならないのかは知りませんが、おそらくかなり深い所まで触る必要があります。

試しにPrintScreenを押すと「PrintScreenは禁止されています。」というメッセージが出ました。

WinShotでBookLive!Readerの画面をコピーしてみると、コピーした部分が「Protected by CpyherGuard」という画像に置き換わってしまいました。

コピーする手段というのは多岐に渡ると思いますので、それらを防ぐのは相当に大変かつ根深い対処を必要とするものだと思われます。

このような性質上、違法コピー防止ソフトによるOSの不具合というのは避け難く、まま起こる現象なのかもしれません。


cymon.sysのプロパティ

cymon.sysのプロパティの詳細タブより抜粋
プロパティ
種類システムファイル
ファイルバージョン1.3.2.14
製品名
製品バージョン1.3.2.14
著作権Copyright (C) 2003-2011 Cypher Tec Inc. All Ri...
サイズ119KB
更新日時2011/11/04 12:35
言語日本語(日本)
元のファイル名cymon.sys

同種の現象


以上です。

Pagination

Comment

oka

13/02/22
dynabook使用者です。同じフリーズ症状でしたが、この情報で「東芝bookreader」をアンインストールしましたら直りました。情報提供に感謝です。
  • URL
  • 2013/02/22 21:33

恵夢

DynaBook使用者です。
VisualC++ Win32プロジェクトでも発生します。
関数名:GetOpenFileName
プレインストールされていたBookPlaceReader(Toshiba)にCYMON.SYSが含まれていたようです。

  • URL
  • 2013/03/25 04:38
  • Edit

フリープログラマβ

2013/08/09 13:15 記
本当に助かりました。MicroSoftに問い合わせても解決しないような事項である為、
この記事は今後同様な障害が発生した方々の為に、ずっと残されるべき記事であると思います。
誠に有難う御座いました。この記事はMicroSoftの方々にも読んでもらいたいですね。
  • URL
  • 2013/08/15 23:14

みず

すっごく感謝です。一日かけた書いたコードを壊されて呆然としただけに……。
フリーズだけでなく、ファイルまで壊してくれるなんて、シャレにならないですよね。

DRM関係ってこういうことが頻繁にあるだけに、ますます嫌いになります。
プロテクトするのは自由ですが、OSの正常動作を妨げたり、ファイルを壊したりするのは一種の権利侵害ですよね。というか、マルウェアの区分に入れても良いような?
  • URL
  • 2013/08/24 23:21

Post Your Comment

コメント登録フォーム
公開設定

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。