MCI_PLAY コマンドが 5 秒以上応答を停止する

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

この記事は、以前は次の ID で公開されていました: JP308928
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
MCI_PLAY コマンドが mciSendCommand 関数によって CD-ROM デバイスに送信されたとき、一部の CD-ROM デバイスが 5 秒以上応答を停止することがあります。
原因
Windows XP では、CD-ROM デバイスのドライバ スタックに Redbook.sys というフィルタ ドライバをインストールすることにより、デジタル オーディオ再生機能が有効になります。このドライバは、オーディオ CD からデジタル データを読み取り、カーネル ストリーミングに送信することにより、オーディオ再生処理をエミュレートします。この処理は正常に行われますが、見かけ上、MCI がトラック間で PAUSE_AUDIO 要求を送信した後、seek を送信して光学式ドライブのヘッドの位置を変更し、PLAY_AUDIO コマンドを送信してオーディオの再生を再開するように見えます。Redbook.sys は最初の PLAY_AUDIO コマンドを完了したときに、内部状態を " not playing" に設定します。このとき PAUSE_AUDIO 要求が発生すると、Redbook.sys はオーディオが再生されていないと見なしているため、この要求を処理せずに、デバイス スタックの残りに送信します。

このコマンドがデバイス スタックに送信されると、ドライブでオーディオが再生されていないため、一部のドライブは ATAPI 層で ABORTED_COMMAND を報告します。このエラーに対して、上位層 (この場合 Cdrom.sys) は、ドライブのファームウェアがこの種類のエラーから回復する時間として 1 秒間待機した後、自動的に (かつ正しく) 再試行します。Windows は、その時点で無効となっているコマンドの受け取りを含め、ABORTED_COMMAND 応答が、通常の処理ではドライブから報告されるはずのない、非常に深刻なエラーであると認識します。したがってこのコマンドは 1 秒間隔で 6 回送信され、5 秒の遅延が生じます。
状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。この問題は、Windows XP Service Pack 1 で修正済みです。
詳細
以下の CD-ROM デバイスで、本資料の問題が発生することが知られています。
Goldstar LG CRD-8400B
九州松下 UJDA330 CD-RW
NEC 8500A CD-RW
TEAC CD-W28E CD-RW
TEAC CD-224E CD-ROM
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 308928 (最終更新日 2001-11-09) をもとに作成したものです。

プロパティ

文書番号:308928 - 最終更新日: 01/12/2015 18:59:32 - リビジョン: 1.1

Microsoft Windows XP Home Edition, Microsoft Windows XP Professional

  • kbnosurvey kbarchive kbhotfixserver kbbug kbfix kbwinxppresp1fix kbwinxpsp1fix KB308928
フィードバック