3 月 13th, 2009 | Tags: ,

Microsoft KB963038によると、Windows XP Professionalへリモートデスクトップ接続を行うとき、解像度を変更して再接続すると、接続先で STOPエラー  0x1000008E (KERNEL_MODE_EXCEPTION_NOT_HANDLED_M) - RDPDD.dll が発生するそうです。

発生するケース

Microsoftでは、次のようなケースで発生するとしています。

  1. Windows XPコンピュータに、リモートデスクトップ接続を行う。
  2. いったん切断する。
  3. 別の解像度設定で、同じコンピュータにリモートデスクトップ接続を行う。
  4. 接続先であるWindows XPコンピュータがクラッシュする。

0x1000008E KERNEL_MODE_EXCEPTION_NOT_HANDLED_Mとは

0x0000008E (KERNEL_MODE_EXCEPTION_NOT_HANDLED)とほぼ同じSTOPエラーです。

コンピュータ(CPU)には、すべてのデバイス・メモリ領域に自由にアクセス可能な「カーネルモード」と呼ばれるモードがあります(カーネル[核]はOSの中心部分のこと)。このモードで動作しているプログラムにおいて、ハンドルできない例外(=処理できない想定外のエラー)が発生した、ということを示しています。

主な原因は、ドライバの不具合やメモリの異常です。STOPエラーに記されているドライバや、最近インストールしたもの、エラー発生時に立ち上げたソフトウェアが使っているものなどを中心に、ドライバのアップデートやアンインストールを行うと、直ることがあります。

今回の不具合については、エラーや修正ファイルに”RDPDD.dll (DD=Display Driver)”の名前がありますから、このドライバの不具合によるものと考えてよいでしょう。

3 月 13th, 2009 | Tags: , ,

MSKB956341によると、Windows Server 2003において、大容量のメモリ割り当て操作を行うと、数秒~2分ほどフリーズしてしまうそうです。

原因は

簡単に説明すると、次のようになります(独自解釈を含みます)。

  • 「大容量の連続したメモリ領域を確保したい」という要求が発生する。
    • 具体的には、MMAllocateContiguousMemory や MmAllocateContiguousMemorySpecifyCache。
  • 連続した領域を確保するために、他のすべてアプリケーションのワーキングセット(物理メモリの使用)を減らしていく。
    • 逆に言うと、仮想メモリ(スワップ、ページファイル)の使用が増える。
  • メモリ処理はクリティカル(重大)なものであるから、連続したメモリ領域が確保されるまでは、他の処理を止める。
  • 確保されるまで、しばらくフリーズしてしまう。

対処法は

KB956341に、MmEmptyAllWorkingSets (全アプリケーションのワーキングセットを減らす機能) をトレースするための修正プログラムが配布されています。

メモリ処理自体に問題はなく、その不適切なメモリ確保を行うドライバに問題がある、ということでしょう。修正プログラムを導入してトレースし、ドライバを特定することが最善策です。

Microsoft KB962201にて、Windows Vista, Windows Server 2008で、スリープ突入/復帰時に “STOP: 0x0000009F DRIVER_POWER_STATE_FAILURE” エラーが表示される不具合について、再修正するプログラムが公開されました。

“再修正”

“0x0000009F”については、既に複数の修正プログラムが公開されています。以下はその一部。

原因が明記されているもの、されていないもの… 「またか」と思いたくもなるものです。現象に悩まされている方は、”一か八か”くらいで導入するほうが気が楽かもしれません。

0x0000009F DRIVER_POWER_STATE_FAILUREとは?

このSTOPエラーは、「シャットダウン」「スリープ」「休止状態」のように、コンピュータの電源状態が変化するときに、周辺機器や機能の制御を行う“ドライバ”が、その変化を正しく処理しないことで発生します。

3 月 8th, 2009 | Tags: , ,

“IMAPIv2 (Image Mastering API v2.0)”を使ったアプリケーションでは、ISOイメージをDVD+R DLディスクに正しく書き込めないことがあるようです。

    発生条件

    Microsoftは、問題が発生する条件を次のように説明しています。

    • IMAPIv2を使った書き込みソフトウェア
    • ブランク(空)のDVD+R DL(2層)メディア
    • 書き込み終了時に”ファイナライズ(finalize)”を行う
    • 書き込みするISOイメージのセクタ数が奇数

    Windows Media Player、Windows エクスプローラのCD書き込み機能など、”こっそりと”使われていることの多いIMAPI。しかし、DVD+Rで、しかもDual Layerということですから、この不具合にかかる機会は滅多にないように思います。

    ベリファイするように設定しておけば、ベリファイでエラーになるので気付くそうです。その辺も含めて、開発者の方は念のためご確認を…

    Windows Vista、Windows Server 2008において、グラフィックカード(ビデオカード)を複数取り付けていると、スリープ(S3 スタンバイ)から復帰するときにフリーズすることがあるようです。

    原因

    Microsoftによると、問題に関係するのはDirectX カーネルドライバ。PCI設定空間(configuration space)を再設定する前に、グラフィックカードのPCI I/O範囲(空間)へのアクセスを可能にしてしまうために、競合が発生するとのこと。

    キーワード1: “S3″って?

    “S3″というのは、電源管理を行う”ACPI(Advanced Configuration and Power Interface)”という規格の中で定められている、状態(ステート)の1つです。

    • S0: 稼働中 - コンピュータが動作している
    • S1: 低消費電力 - ごく一部の動作を止める
    • S2: 低消費電力 - CPUの電源OFF
    • S3: スリープ・スタンバイ - メモリ関連のもの以外は電源OFF
    • S4: 休止状態 - ほとんどOFF(電源抜いてもよい)
    • S5: シャットダウンによる電源OFF - ほとんどOFF(電源抜いてもよい)
    • (G3: 電源がない状態)

    このうち、S0~S4については、いわば「OSがOSとして存在している区間」で、ソフトウェアを立ち上げたまま休止状態が出来るように、OSの状態が何らかの形で維持されています。

    キーワード2: DirectX カーネルドライバって?

    ソフトウェアとハードウェア(グラフィックカード)を結ぶ橋渡しのような存在です。まるでCPUのスケジューリングのように、複数のソフトウェアからの描画命令を受け付け、適宜ハードウェアに命令を振り分けていく、という役割を持ちます。

    これまでは、ソフトウェアからDirectX(3DならDirect3D)へ、DirectXから各ドライバへ、ドライバからハードウェアへ、という流れだったところに、もう1段 “DirectX カーネルドライバ”が入る形です。

    3 月 7th, 2009 | Tags: , ,

    Windows Vista SP1, Windows Server 2008において、USB 2.0対応デバイス 2個とUSB 1.1フルスピード対応デバイス同じEHCIコントローラに接続すると、再起動したときにUSB 1.1デバイスが認識されないことがあるようです。USB 1.1デバイスを繋ぎなおせば直るとのこと。

    原因

    Microsoftでは、原因について次のように説明しています。

    This problem occurs because a timing issue prevents the status change of the USB device from being reported to the system.
    (この問題が発生するのは、タイミングによって、USBデバイスの状態の変化がシステムに伝わらないためです)

    EHCI? OHCI? UHCI? それぞれの違い

    USBデバイス~コンピュータ間の制御・通信規格には大きく3つの種類があります。

    規格名 策定団体 対応バージョン CPU負荷
    EHCI
    (Enhanced Host Controller Interface)
    Intel USB 2.0 -
    UHCI
    (Universal Host Controller Interface)
    Intel等 USB 1.x 高い
    (ドライバ処理量 多)
    OHCI
    (Open Host Controller Interface)
    Microsoft等 USB 1.x 低い
    (ドライバ処理量 少)

    “USB 2.0対応コンピュータ”には、 EHCI + UHCI/OHCI の2つのコントローラが搭載されています。2.0デバイスはEHCIが、1.1デバイスはUHCI/OHCIが担当するので、どっちも使えるというわけです。

    なお、コンピュータに搭載されているコントローラの種類は、「デバイス マネージャ」で確認できます。

    Microsoftによると、EFS(ファイル暗号化)機能に不具合があり、”処理前のファイル”を抹消しない(通常のファイル削除操作とする)ために、復元ツールで復元可能なことがあるようです。

    EFSとは

    対象となるのは、EFS(Encrypting File System)機能です。ファイルやフォルダのプロパティを開いて、詳細設定を開くと、「内容を暗号化してデータをセキュリティで保護する」というチェックがあります。

    図: "属性の詳細"ウインドウ (Vista)

    Windows Vistaでは Business, Enterprise, Ultimate の3エディションに完全搭載されていて、ノートパソコンなどを持ち歩く際に、安全のためにと使う人も多いと思います。

    ちなみに、暗号化したまま(何の対策も無く)うっかり再インストールしてしまった日には泣き寝入りするしかないので、注意が必要です。詳しい解説は他所に譲ります。

    不具合とは

    Microsoftによると、今回の不具合の動作はこうです。

    1. ファイルの暗号化を開始する。
    2. 処理中に電源が落ちるなどの事態を想定して、 EFS0.tmp という名称でバックアップコピーを作成する。
    3. 実際に暗号化を施す。
    4. 暗号化が完了したので、 EFS0.tmp を削除する。
    5. とは言っても、”ゼロフィルによる削除を行わないので”、復元ツールによって復元出来る可能性がある。

    ファイルを暗号化したと思っていたら、実は処理中のファイルから復元が可能という、残念な不具合です。

    解決方法

    この不具合については、サポートページで修正プログラムが公開されていて、「View and request hotfix downloads」からダウンロード可能です。ただし、いわゆる「とりあえず」のもので、別の不具合が起こる可能性がまれにあります。ご注意ください。

    なお、回避策(WORKAROUND)として、Cipher.exe ユーティリティを使って削除済み領域に残ったデータを消去する方法が紹介されています。

    わきあがる疑問

    また、今回の不具合を考慮すると、次のような疑問が浮かびます。

    • Windows XPなどのEFS機能には、同様の不具合は存在しないのか?
    • 他の暗号化ツール、暗号化ソフトウェアに、同様の不具合は存在しないのか?

    検証求む。

    3 月 3rd, 2009 | Tags: , ,

    対象

    • Windows Vista
    • Windows Server 2008

    現象

    1. ホットプラグに対応したPCI Expressインタフェースがあります。
    2. PCI Expressインタフェースに、PCI Expressカード(デバイス)を取り付けています。
    3. 電源が入っている状態で、PCI Expressカードを抜きます。
    4. コンピュータがフリーズします。

    このとき、CPUの内部エラー(IERR)が発生します。IERRを示すLEDの付いたサーバコンピュータでは、LEDによってエラーの発生を確認できます。

    なお、内部エラー(IERR)は回復不可能なエラーで、コンピュータの電源を入れ直さない限り、CPUは止まったままです。

    ホットプラグ(hotplug)とは…

    コンピュータの電源が入っている状態で、デバイスやカードを抜き差しすることです。

    解決策

    MSKB英語版のページから、修正プログラムを入手することができます。

    3 月 1st, 2009 | Tags: , ,

    MSKB英語版: After you eject and re-insert a recordable CD (CD-R) in a drive, Windows Vista no longer finds some files on the CD (KB960632)

    対象

    • Windows Vista
    • Windows Server 2008

    現象

    1. Windows Vistaで、CD-Rにファイルを書き込みます。
    2. CD-Rへの書き込みが成功し、CD-Rのファイルを開くことができます。
    3. しかし、CD-Rを入れなおすと、ファイルが消えていることがあります。

    ※この問題は、ある特殊なファイルサイズを持ったファイルを書き込むときに発生します。また、CD-RW、DVD-R、DVD-RWなどでは発生しません。

    解決策

    MSKB英語版のページから、修正プログラムを入手できます。

    注意

    とくに明記されていませんでしたが、Windows Vista標準のCD書き込み機能を使った場合、ということだと思います。

    MSKB英語版: You cannot access a symbolic link by running Client for NFS if the path length of the symbolic link is too long (KB967111)

    対象

    • Windows XP Professional x64
    • Windows Vista Business/Enterprise/Ultimate
    • Windows Server 2003 R2
    • Windows Server 2008

    現象

    WindowsコンピュータのNFSクライアント機能で、次のようなシンボリックリンクにアクセスが出来ません。

    • 「シンボリックリンクのパスの長さ + シンボリックリンクのターゲット(リンク先)の長さ +  整数型の定数”c” (?)」の長さ(文字数)が、260文字よりも長い。

    このとき、SUA(UNIX ベース アプリケーション用サブシステム)のシェルプロンプトで ls コマンドを実行すると、次のようなエラーが表示されます。

    Data buffer too small to store result
    (データバッファは結果を格納するのに小さすぎます)

    また、コマンドプロンプトで dir コマンドを実行すると、ファイルの情報がうまく表示されません。

    原因

    この問題は、一時変数に割り当てるバッファのサイズが小さすぎるために発生します。

    解決策・回避策

    MSKB英語版より、修正プログラムを入手することができます。

    また、プログラムなしに問題を回避するには、 シンボリックリンク(symlink)を使わずに、絶対パスでアクセスしてください。

      TOP