Informações sobre a Identificação de evento 51

Traduções deste artigo Traduções deste artigo
ID do artigo: 244780 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Ao gravar informações no disco físico, o log de eventos do sistema pode registrar a seguinte mensagem de evento:

Identificação do evento: 51
Tipo de evento: Aviso
Fonte do evento: Disco
Descrição: Foi detectado um erro no dispositivo \Device\Harddisk3\DR3 durante uma operação de paginação.
Dados:
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

Observação O dispositivo na descrição e os dados hexadecimais específicos podem variar.

Mais Informações

Quando o computador realiza a paginação de informações no disco, ou do disco, se um erro genérico ocorre, é registrada uma mensagem de identificação do evento 51. Em uma operação de paginação, o sistema operacional permuta uma página de memória, da memória para o disco ou recupera uma página de memória do disco para a memória. Isto faz parte do gerenciamento de memória do Microsoft Windows.

No entanto, o computador pode registrar esta mensagem de evento quando carrega imagens de um dispositivo de armazenamento, lê e grava em arquivos mapeados localmente ou em qualquer arquivo (contanto que esteja em buffer de E/S). O computador não registra este evento quando realiza E/S que não seja em buffer. É possível solucionar uma mensagem de identificação do evento 51 da mesma forma que faz com as mensagens de identificação do evento 9 ou 11.

Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft (alguns artigos podem estar em inglês):
154690 Como solucionar mensagens de erro de identificação do evento 9, de identificação do evento 11 e de identificação do evento 15
259237 Solucionando problemas da identificação dos eventos 9, 11 e 15 em servidores cluster
É possível usar os dados binários associados a qualquer erro de "DISCO" (Identificação do evento 7, 9, 11, 51 e outras) para ajudá-lo a identificar o problema decodificando a seção de dados. Para obter informações adicionais sobre como decodificar a seção de dados, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
182335 Formato dos dados do log de eventos criados por ScsiPortLogError
Como uma identificação do evento 51 tem uma caixa CDB (bloco descritor do comando) adicional, é necessário levar em consideração as seguintes informações quando estiver revisando a seção de dados de uma mensagem do evento de identificação 51.

Como decodificar a seção de dados de uma mensagem de identificação do evento 51

Ao decodificar a seção de dados no exemplo na seção "Resumo", é possível ver que houve falha na tentiva de realizar uma operação de gravação em LUN 3 começando no setor 0x2975820a para os setores 0x0080 pois o barramento foi redefinido, mas a solicitação será tentada novamente. Posteriormente, este artigo lista as etapas específicas para decodificar este exemplo.

As seguintes tabelas descrevem o que cada deslocamento representa.

Windows Server 2003 e Windows XP

Recolher esta tabelaExpandir esta tabela
DeslocamentoComprimento:Valores:
0x001Tipo de operação: 0x03 = Leitura, 0x04 = Gravação, 0x0F = IOCTL
0x011Número de novas tentativas restantes
0x022Tamanho dos dados de despejo 0x0068
0x042Número de seqüências de caracteres 0x0001
0x062Deslocamento para o nome do dispositivo
0x082Não usado
0x0a2Bytes de preenchimento
0x0c4Código de erro NTSTATUS
0x104Valor de erro exclusivo
0x144Status Final de NTSTATUS 0x00000000 = a solicitação será tentada novamente
0x184Número da seqüência ? Não usado
0x1c4Código de controle Io (Não se aplica a este evento)
0x208Deslocamento do byte para setor inválido, se existir
0x288Contagem de tiques quando o erro ocorreu
0x304Número da porta ? Não usado
0x341Indicadores de erro
0x353Não usado
0x3864Estrutura do bloqueio de solicitação SCSI
0x7818Estrutura dos dados de detecção

Windows 2000

Recolher esta tabelaExpandir esta tabela
DeslocamentoComprimento:Valores:
0x001Tipo de operação: 0x03 = Leitura, 0x04 = Gravação, 0x0F = Ioctl
0x011Número de novas tentativas restantes
0x022Tamanho dos dados de despejo 0x0022
0x042Número de seqüências de caracteres 0x0001
0x062Deslocamento para o nome do dispositivo
0x082Não usado
0x0a2Bytes de preenchimento
0x0c4Código de erro NTSTATUS
0x104Valor de erro exclusivo
0x144Status Final de NTSTATUS 0x00000000 = a solicitação será tentada novamente
0x184Número de seqüência não usado
0x1c4Código de controle Io (Não se aplica a este evento)
0x208Deslocamento do byte para setor inválido, se existir
0x284Identificação do caminho
0x2c4Identificação do destino
0x304LUN
0x344Tipo de operação: 0x0028 = Leitura, 0x002a = Gravação
0x381Status SCSI
0x391Status SRB
0x3a1Não usado
0x3b1Não usado
0x3c1Qualificador do código de detecção adicional (ASCQ)
0x3d1Código de detecção adicional (ASCQ)
0x3e1Chave de detecção
0x3f1Não usado
0x4010Bloco descritor do comando (CDB)

Principais seções para decodificar

O código de erro
No exemplo na seção "Resumo", o código de erro está listado na segunda linha. Esta linha começa com "0008:" e inclui os últimos quatro bytes na linha.
0008: 00 00 00 00 33 00 04 80
ErrorCode = 0x80040033

Este é o código do erro 51. Este código é o mesmo para todas as mensagens de identificação do evento 51:
IO_WARNING_PAGING_FAILURE
Observação Ao interpretar os dados hexadecimais na identificação do evento do código de status, lembre-se de que os valores são representados no formato little endian.
O código de status final
No exemplo da seção "Resumo", o código de status final está listado em 0x14 (na terceira linha) que começa com "0010:" e inclui os últimos quatro octetos nesta linha.
0010: 2d 01 00 00 00 00 00 00
FinalStatus = 0x00000000

Isto mapeia para STATUS_SUCCESS e implica que a solicitação será tentada novamente.

Observação Ao interpretar os dados hexadecimais na identificação do evento do código de status, lembre-se de que os valores são representados no formato little endian.
O disco de destino
É possível usar estes dados para ajudar a determinar em qual disco está ocorrendo o problema:
0028: 01 00 00 00 04 00 00 00
Identificação do caminho = 0x0000001, Identificação do destino = 0x0000004
0030: 03 00 00 00 2a 00 00 00
LUN = 0x0000003

Pode ser mais fácil identificar o volume usando o link simbólico listado na unidade na descrição da identificação de evento. Por exemplo: \Device\Harddisk3\DR3. Para obter mais informações, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
159865 Como diferenciar um dispositivo de disco físico de uma mensagem de evento
Observação As informações do disco de destino estão exatamente como aparecem para o sistema operacional. O software de virtualização de armazenamento e de E/S com diversos caminhos podem mascarar o que é apresentado ao sistema operacional. Estas informações podem não corresponder diretamente aos mapeamentos físicos.
Os parâmetros SRB (SCSI Solicita bloco)
No exemplo na seção "Resumo", o ScsiStatus é 0x02 (primeiro byte na linha "0038") e SrbStatus é 0x84 (segundo byte na linha "0038"). Isto fornece as seguintes informações:
0038: 02 84 00 00 00 29 06 00
ScsiStatus de 0x02:
SCSISTAT_CHECK_CONDITION

Códigos de status SCSI: (de 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 de 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
	(usado pelo driver da porta para indicar que um erro relacionado a algo que é scsi ocorreu)
0x38 - 0x3f = valores de status Srb reservados para uso interno do driver da porta.
					
Máscaras de status SRB:
0x80 = SRB_STATUS_AUTOSENSE_VALID
0x40 = SRB_STATUS_QUEUE_FROZEN
					
É necessário quebrar as máscaras de status SRB pois são um substatus. Estas máscaras estão combinadas com os códigos de status SRB.

No exemplo 0x84 anterior, 0x8_ é uma máscara de status. Por isto, SRB_STATUS_AUTOSENSE_VALID e 0x04 é o código de status SRB. Isto significa SRB_STATUS_ERROR.
O código de detecção
Se o status SRB for de que a detecção automática é válida, os códigos de detecção fornecerão mais informações. No exemplo na seção "Resumo", o código de detecção é 0x06 (sétimo byte na linha "0038") e o código de detecção adicional é 0x29 (sexto octeto na linha "0038"). Isto fornece as seguintes informações:
0038: 02 84 00 00 00 29 06 00
A chave de detecção de 0x06:

O byte no deslocamento 003e é a chave de detecção. Isto mapeia para:
0x06 = SCSI_SENSE_UNIT_ATTENTION

Códigos de detecção: (de 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         
					
Código de detecção adicional (ASCQ) de 0x29:

O código de detecção adicional está localizado no sexto byte na linha ?0038? no deslocamento 003d e tem um valor 29. Para a chave de detecção especificada, isso mapeia para:
0x29 = SCSI_ADSENSE_BUS_RESET

Códigos de detecção adicionais: (de 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                       
					
Qualificador do código de detecção adicional (ASCQ) de 0x00:

O qualificador do código de detecção adicional está localizado no quinto byte na linha ?0038? no deslocamento 003C e tem um valor de 00. É 00 neste exemplo, por isso não se aplica ao ASC especificado. Esta lista de qualificadores de código de detecção adicional para cada código de detecção é muito grande para incluir neste artigo. Verifique o SCSI.H no DDK para obter mais informações.

Observação Todos os valores ASC e ASCQ acima de 0x80 são específicos do fornecedor e não estão documentados na especificação do SCSI ou do Microsoft DDK. Consulte o fornecedor do hardware.
Os parâmetros CDB (Bloco descritor do comando)
O CDB inicia na linha com um deslocamento de ?0040?:
0040: 2a 60 0a 82 75 29 00 00
0048: 80 00
Os bytes no deslocamento 0x40 representam o código CDB, os bytes do deslocamento 0x43 até 0x46 representam o setor de inicialização e do deslocamento 0x47 até 0x49 representam o número de setores envolvidos na operação.

Observação A seção de dados CDB não está no formato little-endian, portanto os bytes não devem ser movidos. Tenha cuidado ao decodificar esta seção pois o formato é diferente das anteriores.

0x2a = Solicitação de gravação
0x0a827529 = O setor de inicialização
0x0080 = O número de setores

Códigos SCSI CDB: (de 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       
					

Propriedades

ID do artigo: 244780 - Última revisão: quarta-feira, 23 de agosto de 2006 - Revisão: 14.1
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kberrmsg kbinfo kbenv KB244780

Submeter comentários

 

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