These commands are general purpose tests to verify the integrity of the computer disks, files and IO subsystem.
154,001 DiskSMART
Fetches and returns the SMART counters from disk drives.
154,001 Reply Packet
Field# | Name | Description |
114 | SampleTime | Date/Time this sample was taken |
Base + 0 | Flags | Attribute flags field |
Base + 1 | Value | Attribute current value |
Base + 2 | Worst | Attribute worst value |
Base + 3 | Threshold | Reported threshold |
Base + 4 | Vendor | Vendor data |
The Base value is derived from the formula
Base = (1,000,000*(1+Physical-Drive-Number)) + (Attribute-Id * 100)
The means the current value of attribute 3 for physical drive 0 will be stored in field (1,000,000*(1+0)) + (3 * 100) = 1,000,300
154,002 DiskSampler
This requests an IO test on a drive. The test can be executed in parallel with normal activity, but may cause degradation as it is attempting to briefly strees the IO subsystem in order to verify operation.
Command Packet
This command takes a number of parameters in control operation. If not parameters are supplied the default operation is to....
154,002 Reply Packet
Field# | Name | Description |
120 | Status | Overall status of request. 0=error, 1=success |
30,000 | Stride | Reading stride. Amount of increment between each read |
30,001 | BytesSector | Bytes per sector |
30,002 | SectorsTrack | Sectors per track |
30,003 | TracksCylinder | Tracks per cylinder |
30,004 | Cylinders | Number of cylinders |
30,005 | TickStart | GetTickCount() at start of test |
30,006 | TickEnd | GetTickCount() at end of test |
30,007 | ReadCnt | Number of reads attempted |
30,008 | ZeroCnt | Number of reads that returned no data |
30,009 | Freq | QueryPerformanceFrequency() for this machine |
30,010 | Individual Sample timer. Taken from QueryPerformanceCounter. This is an array with one entry per sample. This field does not have a name in order to keep space use to a minimum when sampling. | |
30,011 | TimeStart | Wall time when reading loop started |
30,012 | TimeEnd | Wall time when reading loop ended |
Geometry information is returned verbatim, but may not be valid for a particular drive
Example Output
<DATS> <f100>154002</f100> <f110>684</f110> <BytesSector>512</BytesSector> <SectorsTrack>63</SectorsTrack> <TracksCylinder>255</TracksCylinder> <Cylinders>19457,0</Cylinders> <Stride>8225280</Stride> <TimeStart>42554.025417</TimeStart> <f30010>313549,0</f30010> <f30010>31352,0</f30010> <f30010>19284,0</f30010> <f30010>13252,0</f30010> ... <f30010>15228,0</f30010> <TickStart>59081078</TickStart> <TickEnd>59109578</TickEnd> <ReadCnt>19024</ReadCnt> <ZeroCnt>0</ZeroCnt> <Freq>3579545,0</Freq> <TimeEnd>42554.025764</TimeEnd> </DATS>