有關事件識別碼 51 的資訊

文章翻譯 文章翻譯
文章編號: 244780 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

當您將資訊寫入實體磁碟時,系統事件日誌可能會記錄下列事件訊息:

事件識別碼:51
事件類型:警告
事件來源:磁碟
說明:分頁操作時,偵測出裝置 \Device\Harddisk3\DR3 發生錯誤。
資料:
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

注意 說明中的裝置和特定的十六進位資料可能有所不同。

其他相關資訊

當電腦從磁碟中將資訊分頁或將資訊分頁至磁碟時,如果發生一般性錯誤,就會記錄事件識別碼 51 事件訊息。在分頁作業中,作業系統會從記憶體交換一個記憶體分頁到磁碟,或者從磁碟中擷取記憶體分頁到記憶體中。這是 Microsoft Windows 記憶體管理的一部分。

然而,當電腦從存放裝置載入影像、對本機所對應的檔案或任何檔案進行讀取及寫入作業 (只要是經緩衝處理的輸入 / 輸出) 時,就可能會記錄此事件訊息。當電腦執行未經緩衝處理的輸入 / 輸出時,並不會記錄此事件訊息。您可以使用疑難排解事件識別碼 9 或 11 事件訊息的相同方式,來疑難排解事件識別碼 51 事件訊息。

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
154690 如何針對事件 9 和事件 11 錯誤訊息進行疑難排解
259237 Troubleshooting event ID 9, 11, and 15 on Cluster Servers
您可以藉由解碼資料區段,使用所有與「磁碟」錯誤 (事件識別碼 7、9、11、51 等等) 相關的二進位資料,來協助您辨識問題。 如需有關如何解碼資料區段的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
182335 Format of event log data created by ScsiPortLogError
因為事件識別碼 51 具有額外的 Command Descriptor Block (CDB) 方塊,所以當您檢視事件識別碼 51 事件訊息的資料區段時,必須考量到下列資訊。

如何解碼事件識別碼 51 事件訊息的資料區段

當您解碼<摘要>一節中範例的資料區段時,您可以看到從磁區 0x2975820a 開始,0x0080 個磁區嘗試執行寫入作業到 LUN 3 失敗,因為匯流排已被重設且要求也會重試。稍後本文會列出解碼此範例的特定步驟。

下表將會說明每個位移所代表的意義。

Windows Server 2003 和 Windows XP

摺疊此表格展開此表格
位移長度
0x001作業類型:0x03 = 讀取、0x04 = 寫入、0x0F = IOCTL
0x011剩餘重試次數
0x022傾印資料大小 0x0068
0x042字串數 0x0001
0x062裝置名稱的位移
0x082未使用
0x0a2填補位元組
0x0c4NTSTATUS 錯誤碼
0x104唯一錯誤值
0x144NTSTATUS 最終狀態 0x00000000 = 要求將會重試
0x184未使用的序列號碼
0x1c4Io 控制碼 (不適用於此事件)
0x208損毀磁區 (如果有的話) 的位元組位移
0x288錯誤發生時的滴答計數
0x304未使用的連接埠號碼
0x341錯誤旗標
0x353未使用
0x3864SCSI Request Block 結構
0x7818感應資料結構

Windows 2000

摺疊此表格展開此表格
位移長度
0x001作業類型:0x03 = 讀取、0x04 = 寫入、0x0F = Ioctl
0x011剩餘重試次數
0x022傾印資料大小 0x0022
0x042字串數 0x0001
0x062裝置名稱的位移
0x082未使用
0x0a2填補位元組
0x0c4NTSTATUS 錯誤碼
0x104唯一錯誤值
0x144NTSTATUS 最終狀態 0x00000000 = 要求將會重試
0x184序列號碼 (未使用)
0x1c4Io 控制碼 (不適用於此事件)
0x208損毀磁區 (如果有的話) 的位元組位移
0x284路徑識別碼
0x2c4目標識別碼
0x304LUN
0x344作業類型:0x0028 = 讀取、0x002a = 寫入
0x381SCSI 狀態
0x391SRB 狀態
0x3a1未使用
0x3b1未使用
0x3c1Additional Sense Code Qualifier (ASCQ)
0x3d1Additional Sense Code (ASC)
0x3e1Sense Key
0x3f1未使用
0x4010Command Descriptor Block (CDB)

解碼關鍵區段

錯誤碼
在<摘要>一節的範例中,錯誤碼列於第二行。該行以 0008:開頭,並包含最後四個位元組。
0008:00 00 00 00 33 00 04 80
ErrorCode = 0x80040033

這是錯誤碼 51。此錯誤碼在所有事件識別碼 51 事件訊息中均相同:
IO_WARNING_PAGING_FAILURE
注意 請記住,當您將事件識別碼中的十六進位資料解譯為狀態碼時,值是以 Little Endian 格式表示。
最終狀態碼
在<摘要>一節的範例中,最後狀態碼是列在以「0010:」開頭的 0x14 (位於第三行) 中,,並包含最後四個八位元資料組。
0010: 2d 01 00 00 00 00 00 00
FinalStatus = 0x00000000

如此會對應到 STATUS_SUCCESS,並且意味著將重試要求。

注意 請記住,當您將事件識別碼中的十六進位資料解譯為狀態碼時,值是以 Little Endian 格式表示。
目的磁碟
您可以使用此資料來協助判斷問題發生在哪個磁碟:
0028:01 00 00 00 04 00 00 00
路徑識別碼 = 0x0000001,目標識別碼 = 0x0000004
0030:03 00 00 00 2a 00 00 00
LUN = 0x0000003

使用事件識別碼說明中所列出的磁碟機的符號連結來辨識磁碟區,可能會比較容易。例如:\Device\Harddisk3\DR3。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
159865 How to Distinguish a Physical Disk Device from an Event Message
注意 目的磁碟資訊是它對作業系統所呈現的形式。儲存虛擬和多重路徑 I/O 軟體可能會遮罩了磁碟資訊對作業系統所呈現的形式。此資訊可能不符實體對應。
SCSI Request Block (SRB) 參數
在<摘要>一節的範例中,ScsiStatus 是 0x02 (0038 行的第一個位元組),而 SrbStatus 是 0x84 (0038 行的第二個位元組)。提供下列資訊:
0038:02 84 00 00 00 29 06 00
0x02 的 ScsiStatus
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
					
0x84 的 SrbStatus
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 和 0x04 是 SRB 狀態碼。這代表了 SRB_STATUS_ERROR。
Sense Code
如果 SRB 狀態為自動偵測 (Autosense),則 Sense Code 便會提供其他資訊。在<摘要>一節的範例中,Sense Code 為 0x06 (0038 行的第七個位元組),而 Additional Sense Code 為 0x29 (0038 行的第六個八位元資料組)。提供下列資訊:
0038:02 84 00 00 00 29 06 00
0x06 的 Sense Key

003e 位移的位元組是 Sense Key。如此會對應到:
0x06 = SCSI_SENSE_UNIT_ATTENTION

Sense Codes:(源自 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         
					
0x29 的 Additional Sense Code (ASC)

Additional Sense Code 位於 003d 位移中 0038 行的第六個位元組,其值為 29。具體說明此 Sense Key,會對應到:
0x29 = SCSI_ADSENSE_BUS_RESET

Additional Sense Codes:(源自 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                       
					
0x00 的 Additional Sense Code Qualifier (ASCQ)

Additional Sense Code Qualifier 位於 003C 位移中 0038 行的第五個位元組,其值為 00。它在此範例中為 00,因此不適用於指定的 ASC。每個 Sense Code 的 Additional Sense Code Qualifier 所列出的清單太大,而無法納入本文中。如需詳細資訊,請檢視 DDK 中的 SCSI.H。

注意 所有 0x80 以上的 ASC 與 ASCQ 值均為廠商專用,因此不會記錄在 SCSI 規格或 Microsoft DDK 中。請與硬體廠商連絡。
Command Descriptor Block (CDB) 參數
CDB 是從 0040 位移的那一行開始的:
0040:2a 60 0a 82 75 29 00 00
0048: 80 00
0x40 位移的位元組代表 CDB 程式碼,位移 0x43 到 0x46 的位元組代表開始磁區,而位移 0x47 到 0x49 則代表與此操作有關的磁區數。

注意 CDB 資料區段並非 Little-Endian 格式,因此不需要翻轉此處的位元組。由於這裡的格式與先前的格式不同,因此在解碼此區段時,請務必小心。

0x2a = 寫入要求
0x0a827529 = 開始磁區
0x0080 = 磁區數

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       
					

屬性

文章編號: 244780 - 上次校閱: 2005年10月18日 - 版次: 14.1
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition (家用版)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
關鍵字:?
kberrmsg kbinfo kbenv KB244780
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com