Парсинг данных EventLog сообщений "The device, \Device\HarddiskX\DRX, has a bad block" от disk.sys

Mar 28, 2019 01:44

Это не в прямую по теме, но лучше найти не удалось (более того, рекомендую сохранить, т.к. не факт, что еще не удалено будет потом, т.к. есть пример дохлых ссылок - например, ссылка на SRB из этого описания уже дохлая):
https://support.microsoft.com/en-us/help/244780/information-about-event-id-51
(Здесь смотреть Windows Server 2008 R2, как самое "новое". Основное будет совпадать)

SCSI_REQUEST_BLOCK (SRB) structure:
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/srb/ns-srb-_scsi_request_block


// Standard 10-byte CDB
struct _CDB10 {
/* 00h 0 */ UCHAR OperationCode;

/* 01h 1 Битовые поля */
UCHAR RelativeAddress : 1;
UCHAR Reserved1 : 2;
UCHAR ForceUnitAccess : 1;
UCHAR DisablePageOut : 1;
UCHAR LogicalUnitNumber : 3;

/* 02h 2 */ UCHAR LogicalBlockByte0;
/* 03h 3 */ UCHAR LogicalBlockByte1;
/* 04h 4 */ UCHAR LogicalBlockByte2;
/* 05h 5 */ UCHAR LogicalBlockByte3;

/* 06h 6 */ UCHAR Reserved2;

/* 07h 7 */ UCHAR TransferBlocksMsb;
/* 08h 8 */ UCHAR TransferBlocksLsb;

/* 09h 9 */ UCHAR Control;
} CDB10;
Пример разбора:

0000: 03 00 80 00 01 00 00 00 ..?..... < 0x03 - Read
0008: 00 00 00 00 07 00 04 C0 .......? < Error Code: 0xC0040007 (IO_ERR_BAD_BLOCK)
0010: 00 01 00 00 9C 00 00 C0 ....?..?
0018: 00 00 00 00 00 00 00 00 ........
0020: 00 00 60 5B 78 00 00 00 ..`[x...
0028: BF ED 00 00 00 00 00 00 ??......
0030: FF FF FF FF 00 00 00 00 ????....
0038: 58 00 00 84 02 00 00 00 X..?.... < SCSI request block (SRB) structure (38h начало)
0040: FF 20 0A FF 42 07 20 00 ? .?B. . < (38h + 10 = &CdbLength = 0Ah = 10)
0048: 00 00 08 00 0A 00 00 00 ........
0050: 00 00 68 0C 00 00 00 00 ..h.....
0058: 20 3D E5 2D 8D C1 FF FF =?-????
0060: 00 00 00 00 00 00 00 00 ........
0068: 20 3B 14 2C 8D C1 FF FF ;.,????
0070: 00 00 00 00 00 00 00 00 ........
0078: 00 00 00 00 00 00 00 00 ........
0080: 28 00 3C 2D B0 00 00 04 (.<-°... < CDB-10 bytes (80h начало)
0088: 00 00 00 00 00 00 00 00 ........ < два байта еще (89h, включая; конец)
0090: F0 00 03 00 00 00 00 0A ?....... < SRB заканчивается на 8Fh (включая)
0098: 00 00 00 00 11 00 00 00 ........
00a0: 00 00 00 00 00 00 00 00 ........
Вытаскиваем:
CDB-10: 28 00 3C 2D B0 00 00 04 00 00

Разбираем:

0: 28 - Operation Code (0x28 = SCSIOP_READ10)
1: 00 - CDB10-Bits
2: 3C 2D B0 00 - Logical Block
6: 00 - Reserved2
7: 04 - TransferBlockMsb
8: 00 - TransferBlockLsb
9: 00 - Control
Получаем:
LBA: 3C2DB000h (сектор от начала физического диска)
Size: 0400h (1024 байт)

windows, hdd, восстановление данных

Previous post Next post
Up