Información acerca del Id. de suceso 51

Seleccione idioma Seleccione idioma
Id. de artículo: 244780 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Cuando escribe información en el disco físico, el registro de sucesos del sistema puede grabar el siguiente mensaje:

Id. del suceso: 51
Tipo de suceso: advertencia
Origen del suceso: Disco
Descripción: Error detectado en el dispositivo \Device\Harddisk3\DR3 durante una operación de paginación.
Datos:
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

Nota: el dispositivo de la descripción y los datos hexadecimales específicos pueden variar.

Más información

Cuando el equipo pagina información hacia o desde el disco, si se produce un error genérico, graba un mensaje con el Id. de suceso 51. En una operación de paginación, el sistema operativo intercambia una página de memoria de la memoria al disco o recupera una página de memoria del disco a la memoria. Forma parte de la administración de memoria de Microsoft Windows.

Sin embargo, el equipo puede registrar este mensaje de suceso cuando carga imágenes desde un dispositivo de almacenamiento, o cuando lee y escribe en archivos asignados localmente o en cualquier archivo (siempre y cuando sea E/S almacenada en búfer). El equipo no registra este mensaje de suceso cuando realiza una operación de E/S no almacenada en búfer. Puede solucionar el mensaje con el Id. de suceso 51 de la misma forma que los mensajes que tienen el Id. de suceso 9 y 11.

Para obtener más información al respecto, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
154690 Cómo solucionar los mensajes de error de Id. de suceso 9, 11 y 15
259237 Solucionar errores de los Id. de suceso 9, 11 y 15 en Cluster Server
Puede utilizar los datos binarios asociados a cualquier error de "DISCO" (Id. de suceso 7, 9, 11 y 51, entre otros) como ayuda para identificar el problema descodificando la sección de datos. Para obtener más información acerca de cómo descodificar la sección de datos, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
182335 Formato de los datos del registro de sucesos creado por ScsiPortLogError
Como un Id. de suceso 51 tiene un cuadro adicional de bloque descriptor de comandos (CDB), debe tener en cuenta la información siguiente cuando esté examinando la sección de datos de un mensaje con el Id. de suceso 51.

Cómo descodificar la sección de datos de un mensaje con el Id. de suceso 51

Cuando descodifique la sección de datos del ejemplo de la sección "Resumen", puede ver que se produjo un error al intentar realizar una operación de escritura en LUN 3, empezando en el sector 0x2975820a para 0x0080 sectores porque se restableció el bus pero se volverá a intentar la solicitud. Más adelante en este artículo se indican los pasos necesarios para descodificar este ejemplo.

En la tabla siguiente se describe lo que representa cada desplazamiento.

Windows Server 2003 y Windows XP

Contraer esta tablaAmpliar esta tabla
DesplazamientoLongitudValores
0x001Tipo de operación: 0x03 = Lectura, 0x04 = Escritura, 0x0F = IOCTL
0x011Número de reintentos restantes
0x022Tamaño de los datos de volcado 0x0068
0x042Número de cadenas 0x0001
0x062Desplazamiento para el nombre de dispositivo
0x082No se utiliza
0x0a2Bytes de relleno
0x0c4Código de error NTSTATUS
0x104Valor de error único
0x144Estado final de NTSTATUS 0x00000000 = se volverá a intentar la solicitud
0x184Número de secuencia: no se utiliza
0x1c4Código de control Io (no se aplica a este suceso)
0x208Desplazamiento de bytes al sector defectuoso, si existe
0x288Recuento de ticks cuando se produjo el error
0x304Número de puerto: no se utiliza
0x341Indicadores de error
0x353No se utiliza
0x3864Estructura del bloque de solicitud SCSI
0x7818Estructura de datos de detección

Windows 2000

Contraer esta tablaAmpliar esta tabla
DesplazamientoLongitudValores
0x001Tipo de operación: 0x03 = Lectura, 0x04 = Escritura, 0x0F = Ioctl
0x011Número de reintentos restantes
0x022Tamaño de los datos de volcado 0x0022
0x042Número de cadenas 0x0001
0x062Desplazamiento para el nombre de dispositivo
0x082No se utiliza
0x0a2Bytes de relleno
0x0c4Código de error NTSTATUS
0x104Valor de error único
0x144Estado final de NTSTATUS 0x00000000 = se volverá a intentar la solicitud
0x184Número de secuencia: no se utiliza
0x1c4Código de control Io (no se aplica a este suceso)
0x208Desplazamiento de bytes al sector defectuoso, si existe
0x284Id. de ruta de acceso
0x2c4Id. de destino
0x304LUN
0x344Tipo de operación: 0x0028 = Lectura, 0x002a = Escritura
0x381Estado SCSI
0x391Estado SRB
0x3a1No se utiliza
0x3b1No se utiliza
0x3c1Calificador adicional de código de detección (ASCQ)
0x3d1Código adicional de detección (ASC)
0x3e1Clave de detección
0x3f1No se utiliza
0x4010Bloque descriptor de comandos (CDB)

Principales secciones que hay que descodificar

El código de error
En el ejemplo de la sección "Resumen", el código de error aparece en la segunda línea. Esa línea empieza con "0008:" e incluye los cuatro últimos bytes de la línea.
0008: 00 00 00 00 33 00 04 80
ErrorCode = 0x80040033

Éste es el código del error 51. Este código es el mismo para todos los mensajes con el Id. de suceso 51.
IO_WARNING_PAGING_FAILURE
Nota: cuando interprete los datos hexadecimales del Id. de suceso en el código de estado, recuerde que los valores se representan en el formato little endian.
El código de estado final
En el ejemplo de la sección "Resumen", el código de estado final se muestra como 0x14 (en la tercera línea); empieza con "0010:" e incluye los cuatro últimos octetos de esta línea.
0010: 2d 01 00 00 00 00 00 00
FinalStatus = 0x00000000

Esto se asigna a STATUS_SUCCESS e implica que se volverá a intentar la solicitud.

Nota: cuando interprete los datos hexadecimales del Id. de suceso en el código de estado, recuerde que los valores se representan en el formato little endian.
El disco de destino
Puede utilizar estos datos para averiguar en qué disco se produjo el problema:
0028: 01 00 00 00 04 00 00 00
Id. de ruta de acceso = 0x0000001, Id. de destino = 0x0000004
0030: 03 00 00 00 2a 00 00 00
LUN = 0x0000003

Quizás sea más fácil identificar el volumen utilizando el vínculo simbólico a la unidad que se indica en la descripción del Id. del suceso. Por ejemplo: \Device\Harddisk3\DR3. Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
159865 Cómo distinguir un dispositivo de disco físico de un mensaje de suceso
Nota: la información del disco de destino es cómo aparece ante el sistema operativo. El software de virtualización del almacenamiento y de E/S de varias rutas puede enmascarar lo que se presenta al sistema operativo. Esta información puede no corresponder directamente con las asignaciones físicas.
Los parámetros de Bloque de solicitud SCSI (SRB)
En el ejemplo de la sección "Resumen", el ScsiStatus es 0x02 (primer byte de la línea "0038") y el SrbStatus es 0x84 (segundo byte de la línea "0038"). Esto proporciona la siguiente información:
0038: 02 84 00 00 00 29 06 00
ScsiStatus de 0x02:
SCSISTAT_CHECK_CONDITION

Códigos de estado 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 (lo utiliza el controlador del puerto para indicar que se produjo un error no relacionado con scsi) 0x38 - 0x3f = Valores de estado Srb reservados para uso interno del controlador del puerto.
					
Máscaras de estado SRB:
0x80 = SRB_STATUS_AUTOSENSE_VALID 0x40 = SRB_STATUS_QUEUE_FROZEN
					
Debe desglosar las máscaras de estado SRB porque son un subestado. Se combinan con los códigos de estado SRB.

En el ejemplo anterior de 0x84, 0x8_ es una máscara de estado. Por tanto, SRB_STATUS_AUTOSENSE_VALID y 0x04 es el código de estado SRB. Esto significa SRB_STATUS_ERROR.
El código de detección
Si el estado SRB es que la detección automática es válida, los códigos de detección proporcionan información adicional. En el ejemplo de la sección "Resumen", el código de detección es 0x06 (séptimo byte de la línea "0038") y el código de detección adicional es 0x29 (sexto octeto de la línea "0038"). Esto proporciona la siguiente información:
0038: 02 84 00 00 00 29 06 00
La clave de detección de 0x06:

El byte del desplazamiento 003e es la clave de detección. Esto se asigna a:
0x06 = SCSI_SENSE_UNIT_ATTENTION

Códigos de detección: (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 detección adicional (ASC) de 0x29:

El código de detección adicional se encuentra en el sexto byte de la línea ?0038? en el desplazamiento 003d y tiene un valor de 29. Para la clave de detección especificada, esto se asigna a:
0x29 = SCSI_ADSENSE_BUS_RESET

Códigos adicionales de detección: (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                       
					
Calificador adicional de código de detección (ASCQ) de 0x00:

El calificador adicional de código de detección se encuentra en el quinto byte de la línea ?0038? en el desplazamiento 003C y tiene un valor de 00. Es 00 en este ejemplo, por lo que no se aplica al ASC especificado. Esta lista de calificadores adicionales para cada código de detección es demasiado larga para incluirla en este artículo. Examine SCSI.H en el DDK para obtener información adicional al respecto.

Nota: todos los valores ASC y ASCQ por encima de 0x80 son específicos del proveedor y no se documentan en la especificación SCSI ni en el DDK de Microsoft. Consulte al proveedor de hardware.
Los parámetros de Bloque descriptor de comandos (CDB)
El CDB empieza en la línea que tiene un desplazamiento ?0040?:
0040: 2a 60 0a 82 75 29 00 00
0048: 80 00
Los bytes del desplazamiento 0x40 representan el código CDB, los bytes del desplazamiento 0x43 to 0x46 representan el sector inicial y los bytes del desplazamiento 0x47 al 0x49 representan el número de sectores implicados en la operación.

Nota: la sección de datos de CDB no tiene el formato little-endian, por lo que no se deben invertir los bytes. Tenga cuidado cuando descodifique esta sección, ya que el formato es diferente del de las secciones anteriores.

0x2a = Solicitud de escritura
0x0a827529 = El sector inicial
0x0080 = El número de sectores

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

Propiedades

Id. de artículo: 244780 - Última revisión: viernes, 16 de junio de 2006 - Versión: 14.1
La información de este artículo se refiere 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
Palabras clave: 
kberrmsg kbinfo kbenv KB244780

Enviar comentarios

 

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