// ntddstor.h
typedef struct _DEVICE_INTERNAL_STATUS_DATA {
ULONG Version;
ULONG Size;
ULONGLONG T10VendorId;
ULONG DataSet1Length;
ULONG DataSet2Length;
ULONG DataSet3Length;
ULONG DataSet4Length;
UCHAR StatusDataVersion;
UCHAR Reserved[3];
UCHAR ReasonIdentifier[128];
ULONG StatusDataLength;
UCHAR StatusData[ANYSIZE_ARRAY];
} DEVICE_INTERNAL_STATUS_DATA, *PDEVICE_INTERNAL_STATUS_DATA;
View the official Windows Driver Kit DDI referenceNo description available.
A device returns its internal error history data in a DEVICE_INTERNAL_STATUS_DATA structure during an IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG request.
VersionVersion of this structure. Set to sizeof(DEVICE_INTERNAL_STATUS_DATA).
SizeTotal size in bytes of this structure. Set to sizeof(DEVICE_INTERNAL_STATUS_DATA) plus the device's internal data size specified by StatusDataLength.
T10VendorIdThe Vendor ID defined by T10 industry association.
DataSet1LengthSpecifies the data length for data set 1.
DataSet2LengthSpecifies the data length for data set 2.
DataSet3LengthSpecifies the data length for data set 3.
DataSet4LengthSpecifies the data length for data set 4.
StatusDataVersionSpecifies the data version.
ReservedReserved; do not use.
ReasonIdentifierSpecifies the device internal status when the status data is generated.
StatusDataLengthSize, in bytes, of the entire buffer that StatusData points to.
StatusDataPointer to the status data header, which is always 512 bytes in size. The actual data follows the status data header.
DEVICE_INTERNAL_STATUS_DATA is the output buffer for IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG. The device will return its error history data in this structure.
See the SCSI specification for more information.
IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG