0x0020 - Mass Storage Monitoring
|  | Windows CE / Windows Embedded Compact This function is not available for Windows CE / Windows Embedded Compact. | 
The information about a drive is mapped line by line in the tables 0x8nn1 to 0x8nnF. For example, the serial number from line 2 (in Table 0x8nn1) and the DriveName from line 2 (in Table 0x8nn4) belong to the same drive.
|  | Position offset The position of the drives within the table can shift if a drive is connected to the computer or disconnected from it during operation. Therefore a check should always be done on the basis of the serial number from Table 0x8nn1 in order to identify the drive in line (n). | 
- If drive (n) is a data storage device that is not supported, then Tables 0x8nn4 to 0x8nnF contain the error message 0xECA61000 "Not Supported" in line (n).
- The tables 0x8nn6 to 0x8nnB contain exclusively SMART information for flash drive media. If the drive (n) is a hard disk (DriveType=1), then these tables contain the error message 0xECAF0701 "Flashdrive data not available" in line (n).
- Tables 0x8nnC to 0x8nnF contain exclusively data for hard disks (rotary data storage media). If the drive (n) is a flash drive (DriveType > 1), then these tables contain the error message 0xECAF0702 "Hard disk data not available" in line (n).
0x8nn0 - Module Header
| SubIndex | Type | Name | Value | Type | Access | 
|---|---|---|---|---|---|
| 00 | VAR | Len | 
 | UNSIGNED16 | read-only | 
| 01 | VAR | Address | 0x0020 00nn | UNSIGNED32 | read-only | 
| 02 | VAR | Type | MassStorageMonitoring | VISIBLE STRING | read-only | 
| 03 | VAR | Name | MassStorageMonitoring | VISIBLE STRING | read-only | 
| 04 | VAR | Dev type | 0x0020 2710 | UNSIGNED32 | read-only | 
0x8nn1 - Serial number
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | Serial number of drive (1 .. Len) | VISIBLE STRING | read-only | 
0x8nn2 - SATA-Port
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | SATA-Port of drive (1 .. Len) | UNSIGNED8 | read-only | 
0x8nn3 - Partition-letter(s)
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | Partition-letter(s) of drive (1 .. Len) | VISIBLE STRING | read-only | 
0x8nn4 - DriveName
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | DriveName of drive (1 .. Len) | VISIBLE STRING | read-only | 
0x8nn5 - DriveType
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | DriveType of drive (1 .. Len) | UNSIGNED8 | read-only | 
(0 = Unknown, 1 = Harddisk, 2 = 2.5” SSD, 3 = CFast, 4 = CF, 5 = M.2 SATA SSD, 6 = M.2 NVMe SSD)
Flashdrive SMART information
0x8nn6 - EraseCountAverage
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | EraseCountAverage of drive (1 .. Len) | UNSIGNED64 | read-only | 
0x8nn7 - EraseCountSpecified
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | EraseCountSpecified of drive (1 .. Len) | UNSIGNED64 | read-only | 
0x8nn8 - EraseCyclesLeftPercent
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | EraseCyclesLeftPercent of drive (1 .. Len) | SIGNED16 | read-only | 
0x8nn9 - SpareBlocksRemaining
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | SpareBlocksRemaining of drive (1 .. Len) | UNSIGNED64 | read-only | 
0x8nnA - SpareBlocksInitial
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | SpareBlocksInitial of drive (1 .. Len) | UNSIGNED64 | read-only | 
0x8nnB - SpareBlocksLeftPercent
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | SpareBlocksLeftPercent of drive (1 .. Len) | SIGNED16 | read-only | 
Harddisk SMART information
0x8nnC - ReallocatedSectors
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | ReallocatedSectors of drive (1 .. Len) | UNSIGNED64 | read-only | 
0x8nnD - SpinRetries
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | SpinRetries of drive (1 .. Len) | UNSIGNED64 | read-only | 
0x8nnE - PendingSectors
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | PendingSectors of drive (1 .. Len) | UNSIGNED64 | read-only | 
0x8nnF - UltraDmaCrcErrors
| SubIndex | Type | Name | Type | Access | 
|---|---|---|---|---|
| 00 | VAR | Len | UNSIGNED16 | read-only | 
| 01 .. Len | VAR | UltraDmaCrcErrors of drive (1 .. Len) | UNSIGNED64 | read-only |