イベント ID 51 に関する情報

物理ディスクに情報を書き込むときにイベント ID 51 が発生することがあります。 この記事では、イベント ID 51 イベント メッセージのデータ セクションをデコードする方法について説明します。

適用対象:  Windows 7 Service Pack 1, Windows Server 2012 R2
元の KB 番号:   244780

概要

物理ディスクに情報を書き込む場合、次のイベント メッセージがシステム ログに記録されることがあります。

Event ID: 51  
Event Type: Warning  
Event Source: Disk  
Description: An error was detected on device \Device\Harddisk3\DR3 during a paging operation.  
Data:  
0000: 04 00 22 00 01 00 72 00  
0008: 00 00 00 00 33 00 04 80  
0010: 2d 01 00 00 00 00 00 00  
0018: 00 00 00 00 00 00 00 00  
0020: 00 52 ea 04 15 00 00 00  
0028: 01 00 00 00 04 00 00 00  
0030: 03 00 00 00 2a 00 00 00  
0038: 02 84 00 00 00 29 06 00  
0040: 2a 60 0a 82 75 29 00 00  
0048: 80 00

注意

説明のデバイスと特定の 16 進データは異なる場合があります。

詳細

コンピューターがディスクに対して情報をページする場合、またはディスクから情報をページ化するときに一般的なエラーが発生すると、イベント ID 51 イベント メッセージがログに記録されます。 ページング操作では、オペレーティング システムはメモリからディスクにメモリのページを交換するか、ディスクからメモリにメモリのページを取得します。 これは、メモリ管理の一部Windows。

ただし、記憶域デバイスからイメージを読み込み、読み取り、ローカルにマップされたファイルまたは任意のファイル (バッファー I/O である限り) に書き込む場合、コンピューターは、このイベント メッセージをログに記録できます。 このイベント メッセージがバッファされていない I/O を実行しても、コンピューターはログに記録されません。 イベント ID 9 またはイベント ID 11 イベント メッセージのトラブルシューティングとまったく同じ方法で、イベント ID 51 イベント メッセージをトラブルシューティングできます。

特定の状況では、システムは次のイベント ID 51 イベント メッセージをログに記録します。

An error was detected on device \Device\DeviceName during a paging operation

この場合、有害な影響は発生します。 たとえば、CDR、CDRW、DVDR などの空のメディアが書き込み可能なドライブに挿入され、USB デバイスが接続されている間にイベント ID 51 が記録されます。 ディスクが書き込み可能で、USB デバイスが使用できる場合でも、システムはイベントをログに記録します。 これらの特定のケースでは、ログ エントリを無視しても問題ない場合があります。 アクションは必要ありません。

注意

XP Windowsサーバー 2003 Windowsでは、イベント ログ エントリのサイズ制限のために DeviceName が切り詰められることがあります。 その結果、表示されるハード ディスク番号、またはデバイス オブジェクト名自体が正しくない可能性があります。 大量の情報がデータ セクションに格納されるので、DeviceName で使用できる領域が小さくなる。 この場合、データ セクションに格納されているコピー先のディスク データを見て、適切なデバイスを見つけることができます。 詳細については、「イベント ID 51 イベント メッセージのデータをデコードする」を参照してください

Vista Windows以降のバージョンでは、イベント ログ エントリのサイズが増加し、DeviceName は切り捨てられてはいなかっています。

DISK エラー (イベント ID 7、9、11、51、その他のイベント ID) に関連付けられたバイナリ データを使用して、データ セクションをデコードして問題を特定できます。

イベント ID 51 には、追加のコマンド記述子ブロック (CDB) ボックスがあります。 イベント ID 51 イベント メッセージのデータ セクションを確認する場合は、次の情報を考慮してください。

イベント ID 51 イベント メッセージのデータ セクションをデコードする

[概要] セクションの例のデータ セクションをデコードすると、バスがリセットされたが要求が再試行されたため、0x0080 セクターのセクター 0x2975820a から LUN 3 への書き込み操作を実行しようとすると失敗する場合があります。 後で、この例をデコードするための具体的な手順を示します。

次の表は、各オフセットが何を表すのかを示しています。

Offset 長さ
0x00 1 操作の種類: 0x03 = 読み取り、0x04 = 書き込み、0x0F = IOCTL
0x01 1 残りの再試行回数
0x02 2 ダンプ データ サイズ 0x0068
0x04 2 文字列の数0x0001
0x06 2 デバイス名へのオフセット
0x08 2 未使用
0x0a 2 埋め込みバイト数
0x0c 4 NTSTATUS エラー コード
0x10 4 一意のエラー値
0x14 4 NTSTATUS Final Status 0x00000000 = 要求が再試行されます
0x18 4 シーケンス番号 - 未使用
0x1c 4 Io コントロール コード (このイベントには適用されません)
0x20 8 バイト オフセットが不良セクタに設定されている場合
0x28 8 エラーが発生した場合の目盛数
0x30 4 ポート番号 - 未使用
0x34 1 エラー フラグ
0x35 3 未使用
0x38 88 SCSI 要求ブロック構造
0x90 18 データ構造の検出

デコードする主要なセクション

デコードする主要なセクションを次に示します。

エラー コード

[概要] セクションの例 では、エラー コードが 2 行目に一覧表示されます。 この行は 0008 から始 まり、行の最後の 4 バイトが含まれます。

0008: 00 00 00 00 33 00 04 80

ErrorCode = 0x80040033

このコードは、エラー 51 のコードです。 このコードは、すべてのイベント ID 51 イベント メッセージで同じです。

IO_WARNING_PAGING_FAILURE

注意

イベント ID の 16 進データを状態コードに解釈する場合、値は小さなエンディアン形式で表されます。

最終状態コード

[概要] セクション の例では、最終状態コードは 0010 で始まる 0x14 (3 行目) に一覧表示され、この行の最後の 4 オクテットが含まれます。

0010: 2d 01 00 00 00 00 00 00 00

FinalStatus = 0x00000000

要求にマップ STATUS_SUCCESS され、要求が再試行されます。

注意

イベント ID の 16 進データを状態コードに解釈する場合、値は小さなエンディアン形式で表されます。

コピー先のディスク

このデータを使用すると、問題が発生したディスクを特定できます。

0028: 01 00 00 00 04 00 00 00

パス ID = 0x0000001、ターゲット ID = 0x0000004

0030: 03 00 00 00 2a 00 00 00 00

LUN = 0x0000003

イベント ID の説明に記載されているドライブへのシンボリック リンクを使用して、ボリュームを識別する方が簡単な場合があります。 たとえば、「 \Device\Harddisk3\DR3 」のように入力します。

注意

移動先のディスク情報は、オペレーティング システムへの表示方法です。 Storageマルチパス I/O ソフトウェアは、オペレーティング システムに表示される情報をマスクする場合があります。 この情報は、物理マッピングに直接対応しない場合があります。

SCSI 要求ブロック (SRB) パラメーター

[概要] セクション の例では、ScsiStatus は 0x02 (行 0038 の最初のバイト) で、SrbStatus は 0x84 (00382 番目のバイト) です。 次の情報が提供されます。

0038: 02 84 00 00 00 29 06 00

ScsiStatus of 0x02:
SCSISTAT_CHECK_CONDITION

SCSI 状態コード: (SCSI から)。H)

0x00 = SCSISTAT_GOOD
0x02 = SCSISTAT_CHECK_CONDITION
0x04 = SCSISTAT_CONDITION_MET
0x08 = SCSISTAT_BUSY
0x10 = SCSISTAT_INTERMEDIATE
0x14 = SCSISTAT_INTERMEDIATE_COND_MET
0x18 = SCSISTAT_RESERVATION_CONFLICT
0x22 = SCSISTAT_COMMAND_TERMINATED
0x28 = SCSISTAT_QUEUE_FULL

SrbStatus の0x84:
SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_ERROR

0x00 = SRB_STATUS_PENDING
0x01 = SRB_STATUS_SUCCESS
0x02 = SRB_STATUS_ABORTED
0x03 = SRB_STATUS_ABORT_FAILED
0x04 = SRB_STATUS_ERROR
0x05 = SRB_STATUS_BUSY
0x06 = SRB_STATUS_INVALID_REQUEST
0x07 = SRB_STATUS_INVALID_PATH_ID
0x08 = SRB_STATUS_NO_DEVICE
0x09 = SRB_STATUS_TIMEOUT
0x0A = SRB_STATUS_SELECTION_TIMEOUT
0x0B = SRB_STATUS_COMMAND_TIMEOUT
0x0D = SRB_STATUS_MESSAGE_REJECTED
0x0E = SRB_STATUS_BUS_RESET
0x0F = SRB_STATUS_PARITY_ERROR
0x10 = SRB_STATUS_REQUEST_SENSE_FAILED
0x11 = SRB_STATUS_NO_HBA
0x12 = SRB_STATUS_DATA_OVERRUN
0x13 = SRB_STATUS_UNEXPECTED_BUS_FREE
0x14 = SRB_STATUS_PHASE_SEQUENCE_FAILURE
0x15 = SRB_STATUS_BAD_SRB_BLOCK_LENGTH
0x16 = SRB_STATUS_REQUEST_FLUSHED
0x20 = SRB_STATUS_INVALID_LUN
0x21 = SRB_STATUS_INVALID_TARGET_ID
0x22 = SRB_STATUS_BAD_FUNCTION
0x23 = SRB_STATUS_ERROR_RECOVERY
0x24 = SRB_STATUS_NOT_POWERED
0x30 = SRB_STATUS_INTERNAL_ERROR
(used by the port driver to indicate that a non-scsi-related error occurred)
0x38 - 0x3f = Srb status values reserved for internal port driver use.

SRB 状態マスク:

0x80 = SRB_STATUS_AUTOSENSE_VALID
0x40 = SRB_STATUS_QUEUE_FROZEN

SRB 状態マスクはサブ統計なので、このマスクをブレークダウンする必要があります。 これらは SRB 状態コードと組み合わされます。

前の例 0x84、0x8_ は状態マスクです。 したがって SRB_STATUS_AUTOSENSE_VALID 、SRB 0x04 は SRB 状態コードです。 これは、 SRB_STATUS_ERROR を意味します。

センス コード

SRB の状態が自動検出が有効である場合、センス コードは詳細を提供します。 [概要] セクション の例では、センス コードは 0x06 (行 0038 の 7 番目のバイト) で、追加のセンス コードは 0x29 (行 00386 番目のオクテット) です。 次の情報が提供されます。

0038: 02 84 00 00 00 29 06 00

次に示す 0x06。

オフセット 003e のバイトがセンス キーです。 次の場所にマップされます。

0x06 = SCSI_SENSE_UNIT_ATTENTION

センス コード: (SCSI から)。H)

0x00 = SCSI_SENSE_NO_SENSE
0x01 = SCSI_SENSE_RECOVERED_ERROR
0x02 = SCSI_SENSE_NOT_READY
0x03 = SCSI_SENSE_MEDIUM_ERROR
0x04 = SCSI_SENSE_HARDWARE_ERROR
0x05 = SCSI_SENSE_ILLEGAL_REQUEST
0x06 = SCSI_SENSE_UNIT_ATTENTION
0x07 = SCSI_SENSE_DATA_PROTECT
0x08 = SCSI_SENSE_BLANK_CHECK
0x09 = SCSI_SENSE_UNIQUE
0x0A = SCSI_SENSE_COPY_ABORTED
0x0B = SCSI_SENSE_ABORTED_COMMAND
0x0C = SCSI_SENSE_EQUAL
0x0D = SCSI_SENSE_VOL_OVERFLOW
0x0E = SCSI_SENSE_MISCOMPARE
0x0F = SCSI_SENSE_RESERVED

次に示す追加のセンス コード (ASC) 0x29。

ASC は、オフセット 003d の行 0038 の 6 番目のバイトにあり、値は 29 です。 指定したセンス キーの場合、次の値にマップされます。

0x29 = SCSI_ADSENSE_BUS_RESET

追加のセンス コード: (SCSI から)。H)

0x00 = SCSI_ADSENSE_NO_SENSE
0x02 = SCSI_ADSENSE_NO_SEEK_COMPLETE
0x04 = SCSI_ADSENSE_LUN_NOT_READY
0x0C = SCSI_ADSENSE_WRITE_ERROR
0x14 = SCSI_ADSENSE_TRACK_ERROR
0x15 = SCSI_ADSENSE_SEEK_ERROR
0x17 = SCSI_ADSENSE_REC_DATA_NOECC
0x18 = SCSI_ADSENSE_REC_DATA_ECC
0x20 = SCSI_ADSENSE_ILLEGAL_COMMAND
0x21 = SCSI_ADSENSE_ILLEGAL_BLOCK
0x24 = SCSI_ADSENSE_INVALID_CDB
0x25 = SCSI_ADSENSE_INVALID_LUN
0x27 = SCSI_ADSENSE_WRITE_PROTECT
0x28 = SCSI_ADSENSE_MEDIUM_CHANGED
0x29 = SCSI_ADSENSE_BUS_RESET
0x2E = SCSI_ADSENSE_INSUFFICIENT_TIME_FOR_OPERATION
0x30 = SCSI_ADSENSE_INVALID_MEDIA
0x3a = SCSI_ADSENSE_NO_MEDIA_IN_DEVICE
0x3b = SCSI_ADSENSE_POSITION_ERROR
0x5a = SCSI_ADSENSE_OPERATOR_REQUEST
0x5d = SCSI_ADSENSE_FAILURE_PREDICTION_THRESHOLD_EXCEEDED
0x64 = SCSI_ADSENSE_ILLEGAL_MODE_FOR_THIS_TRACK
0x6f = SCSI_ADSENSE_COPY_PROTECTION_FAILURE
0x73 = SCSI_ADSENSE_POWER_CALIBRATION_ERROR
0x80 = SCSI_ADSENSE_VENDOR_UNIQUE
0xA0 = SCSI_ADSENSE_MUSIC_AREA
0xA1 = SCSI_ADSENSE_DATA_AREA
0xA7 = SCSI_ADSENSE_VOLUME_OVERFLOW

次に示す追加のセンス コード修飾子 (ASCQ) 0x00。

ASCQ は、オフセット 003C の行 0038 の 5 番目のバイトにあり、値 は 00 です。 この例 では 00 なので、指定した ASC には適用されません。 各センス コードの ASCQ のこのリストは、この記事に含めるには大きすぎます。 SCSI を表示します。詳細については、DDK の H。

注意

上記のすべての ASC および ASCQ 0x80ベンダー固有の値であり、SCSI 仕様または Microsoft DDK には記載されません。 ハードウェア ベンダーを参照してください。

コマンド記述子ブロック (CDB) パラメーター

CDB は、オフセットが 0040 の行から始まります

0040: 2a 60 0a 82 75 29 00 00
0048: 80 00

オフセット位置のバイト0x40 CDB コードを表します。 オフセット 0x43 0x46 から 0x46 へのバイトは開始セクターを表し、オフセット 0x47 から 0x49 は操作に関係するセクターの数を表します。

注意

[CDB データ] セクションは、リトル エンド形式にありません。 したがって、バイトを反転する必要があります。 このセクションをデコードする場合は、前のセクションとは形式が異なるので注意してください。

0x2a = Write request
0x0a827529 = The starting sector
0x0080 = The number of sectors

SCSI CDB コード: (SCSI から。H)

0x00 = SCSIOP_TEST_UNIT_READY
0x01 = SCSIOP_REZERO_UNIT
0x01 = SCSIOP_REWIND
0x02 = SCSIOP_REQUEST_BLOCK_ADDR
0x03 = SCSIOP_REQUEST_SENSE
0x04 = SCSIOP_FORMAT_UNIT
0x05 = SCSIOP_READ_BLOCK_LIMITS
0x07 = SCSIOP_REASSIGN_BLOCKS
0x07 = SCSIOP_INIT_ELEMENT_STATUS
0x08 = SCSIOP_READ6
0x08 = SCSIOP_RECEIVE
0x0A = SCSIOP_WRITE6
0x0A = SCSIOP_PRINT
0x0A = SCSIOP_SEND
0x0B = SCSIOP_SEEK6
0x0B = SCSIOP_TRACK_SELECT
0x0B = SCSIOP_SLEW_PRINT
0x0C = SCSIOP_SEEK_BLOCK
0x0D = SCSIOP_PARTITION
0x0F = SCSIOP_READ_REVERSE
0x10 = SCSIOP_WRITE_FILEMARKS
0x10 = SCSIOP_FLUSH_BUFFER
0x11 = SCSIOP_SPACE
0x12 = SCSIOP_INQUIRY
0x13 = SCSIOP_VERIFY6
0x14 = SCSIOP_RECOVER_BUF_DATA
0x15 = SCSIOP_MODE_SELECT
0x16 = SCSIOP_RESERVE_UNIT
0x17 = SCSIOP_RELEASE_UNIT
0x18 = SCSIOP_COPY
0x19 = SCSIOP_ERASE
0x1A = SCSIOP_MODE_SENSE
0x1B = SCSIOP_START_STOP_UNIT
0x1B = SCSIOP_STOP_PRINT
0x1B = SCSIOP_LOAD_UNLOAD
0x1C = SCSIOP_RECEIVE_DIAGNOSTIC
0x1D = SCSIOP_SEND_DIAGNOSTIC
0x1E = SCSIOP_MEDIUM_REMOVAL
0x23 = SCSIOP_READ_FORMATTED_CAPACITY
0x25 = SCSIOP_READ_CAPACITY
0x28 = SCSIOP_READ
0x2A = SCSIOP_WRITE
0x2B = SCSIOP_SEEK
0x2B = SCSIOP_LOCATE
0x2B = SCSIOP_POSITION_TO_ELEMENT
0x2E = SCSIOP_WRITE_VERIFY
0x2F = SCSIOP_VERIFY
0x30 = SCSIOP_SEARCH_DATA_HIGH
0x31 = SCSIOP_SEARCH_DATA_EQUAL
0x32 = SCSIOP_SEARCH_DATA_LOW
0x33 = SCSIOP_SET_LIMITS
0x34 = SCSIOP_READ_POSITION
0x35 = SCSIOP_SYNCHRONIZE_CACHE
0x39 = SCSIOP_COMPARE
0x3A = SCSIOP_COPY_COMPARE
0x3B = SCSIOP_WRITE_DATA_BUFF
0x3C = SCSIOP_READ_DATA_BUFF
0x40 = SCSIOP_CHANGE_DEFINITION
0x42 = SCSIOP_READ_SUB_CHANNEL
0x43 = SCSIOP_READ_TOC
0x44 = SCSIOP_READ_HEADER
0x45 = SCSIOP_PLAY_AUDIO
0x46 = SCSIOP_GET_CONFIGURATION
0x47 = SCSIOP_PLAY_AUDIO_MSF
0x48 = SCSIOP_PLAY_TRACK_INDEX
0x49 = SCSIOP_PLAY_TRACK_RELATIVE
0x4A = SCSIOP_GET_EVENT_STATUS
0x4B = SCSIOP_PAUSE_RESUME
0x4C = SCSIOP_LOG_SELECT
0x4D = SCSIOP_LOG_SENSE
0x4E = SCSIOP_STOP_PLAY_SCAN
0x51 = SCSIOP_READ_DISK_INFORMATION
0x52 = SCSIOP_READ_TRACK_INFORMATION
0x53 = SCSIOP_RESERVE_TRACK_RZONE
0x54 = SCSIOP_SEND_OPC_INFORMATION
0x55 = SCSIOP_MODE_SELECT10
0x5A = SCSIOP_MODE_SENSE10
0x5B = SCSIOP_CLOSE_TRACK_SESSION
0x5C = SCSIOP_READ_BUFFER_CAPACITY
0x5D = SCSIOP_SEND_CUE_SHEET
0x5E = SCSIOP_PERSISTENT_RESERVE_IN
0x5F = SCSIOP_PERSISTENT_RESERVE_OUT
0xA0 = SCSIOP_REPORT_LUNS
0xA1 = SCSIOP_BLANK
0xA3 = SCSIOP_SEND_KEY
0xA4 = SCSIOP_REPORT_KEY
0xA5 = SCSIOP_MOVE_MEDIUM
0xA6 = SCSIOP_LOAD_UNLOAD_SLOT
0xA6 = SCSIOP_EXCHANGE_MEDIUM
0xA7 = SCSIOP_SET_READ_AHEAD
0xAD = SCSIOP_READ_DVD_STRUCTURE
0xB5 = SCSIOP_REQUEST_VOL_ELEMENT
0xB6 = SCSIOP_SEND_VOLUME_TAG
0xB8 = SCSIOP_READ_ELEMENT_STATUS
0xB9 = SCSIOP_READ_CD_MSF
0xBA = SCSIOP_SCAN_CD
0xBB = SCSIOP_SET_CD_SPEED
0xBC = SCSIOP_PLAY_CD
0xBD = SCSIOP_MECHANISM_STATUS
0xBE = SCSIOP_READ_CD
0xBF = SCSIOP_SEND_DVD_STRUCTURE
0xE7 = SCSIOP_INIT_ELEMENT_RANGE