1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
#pragma autorecover
#pragma namespace("\\\\.\\Root\\WMI")
[WMI, guid("F903D6EC-8647-438f-9E42-891F4733EDAF")]
class MSStorageDriver_ScsiRequestBlock {
[read, WmiDataId(1), Description("Length")]
uint16 length;
[read, WmiDataId(2), DisplayInHex, Description("Function")]
uint8 function;
[read, WmiDataId(3), DisplayInHex, Description("SRB Status")]
uint8 srbStatus;
[read, WmiDataId(4), DisplayInHex, Description("SCSI Status")]
uint8 scsiStatus;
[read, WmiDataId(5), DisplayInHex, Description("Path ID")]
uint8 pathID;
[read, WmiDataId(6), DisplayInHex, Description("Target ID")]
uint8 targetID;
[read, WmiDataId(7), DisplayInHex, Description("LUN")]
uint8 lun;
[read, WmiDataId(8), DisplayInHex, Description("Queue Tag")]
uint8 queueTag;
[read, WmiDataId(9), DisplayInHex, Description("Queue Action")]
uint8 queueAction;
[read, WmiDataId(10), DisplayInHex, Description("CDB Length")]
uint8 cdbLength;
[read, WmiDataId(11), DisplayInHex, Description("Sense Info Buffer Length")]
uint8 senseInfoBufferLength;
[read, WmiDataId(12), DisplayInHex, Description("SRB Flags")]
uint32 srbFlags;
[read, WmiDataId(13), DisplayInHex, Description("Data Transfer Length")]
uint32 dataTransferLength;
[read, WmiDataId(14), DisplayInHex, Description("Time Out Value")]
uint32 timeOutValue;
[read, WmiDataId(15), DisplayInHex, Description("Data Buffer Pointer")]
uint64 dataBuffer;
[read, WmiDataId(16), DisplayInHex, Description("Sense Info Buffer Pointer")]
uint64 senseInfoBuffer;
[read, WmiDataId(17), DisplayInHex, Description("Next SRB Pointer")]
uint64 nextSRB;
[read, WmiDataId(18), DisplayInHex, Description("Original Request Pointer")]
uint64 originalRequest;
[read, WmiDataId(19), DisplayInHex, Description("SRB Extension Pointer")]
uint64 srbExtension;
[read, WmiDataId(20), DisplayInHex, Description("Internal Status")]
uint32 internalStatus;
[read, WmiDataId(21), DisplayInHex, Description("Reserved (only available in Win64)")]
uint32 reserved;
[read, WmiDataId(22), DisplayInHex, Description("CDB")]
uint8 cdb[16];
};
[WMI, guid("9065566F-5FD6-4b40-9961-98E3A3DD174E")]
class MSStorageDriver_SenseData {
[read, WmiDataId(1), Description("Error Code")]
uint8 errorCode;
[read, WmiDataId(2), Description("Valid")]
boolean valid;
[read, WmiDataId(3), Description("Segment Number")]
uint8 segmentNumber;
[read, WmiDataId(4), Description("Sense Key")]
uint8 senseKey;
[read, WmiDataId(5), Description("Reserved")]
boolean reserved;
[read, WmiDataId(6), Description("Incorrect Length")]
boolean incorrectLength;
[read, WmiDataId(7), Description("End Of Media")]
boolean endOfMedia;
[read, WmiDataId(8), Description("File Mark")]
boolean fileMark;
[read, WmiDataId(9), Description("Information")]
uint8 information[4];
[read, WmiDataId(10), Description("Additional Sense Length")]
uint8 additionalSenseLength;
[read, WmiDataId(11), Description("Command Specific Information")]
uint8 commandSpecificInformation[4];
[read, WmiDataId(12), Description("Additional Sense Code")]
uint8 additionalSenseCode;
[read, WmiDataId(13), Description("Additional Sense Code Qualifier")]
uint8 additionalSenseCodeQualifier;
[read, WmiDataId(14), Description("Field Replaceable Unit Code")]
uint8 fieldReplaceableUnitCode;
[read, WmiDataId(15), Description("Sense Key Specific")]
uint8 senseKeySpecific[3];
};
[WMI, guid("0C9BF007-50E9-407e-A9DA-0F33800E4B45")]
class MSStorageDriver_ClassErrorLogEntry {
[read, WmiDataId(1), Description("Tick Count")]
uint64 tickCount;
[read, WmiDataId(2), Description("Port Number")]
uint32 portNumber;
[read, WmiDataId(3), Description("Error Paging")]
boolean errorPaging;
[read, WmiDataId(4), Description("Error Retried")]
boolean errorRetried;
[read, WmiDataId(5), Description("Error Unhandled")]
boolean errorUnhandled;
[read, WmiDataId(6), DisplayInHex, Description("Error Reserved")]
uint8 errorReserved;
[read, WmiDataId(7), DisplayInHex, Description("Reserved")]
uint8 reserved[3];
[read, WmiDataId(8), Description("SCSI Request Block")]
MSStorageDriver_ScsiRequestBlock srb;
[read, WmiDataId(9), Description("Sense Data")]
MSStorageDriver_SenseData senseData;
[read, WmiDataId(10), Description("Event Time")]
datetime eventTime;
};
[Dynamic, Provider("WMIProv"),
WMI, Description("MS Storage Class Driver Error Log"),
guid("D5A9A51E-03F9-404d-9722-15F90EB07038"),
locale("MS\\0x409")]
class MSStorageDriver_ClassErrorLog {
[key, read]
string InstanceName;
[read]
boolean Active;
[read,
WmiDataId(1),
Description("Number of Error Log Entries")]
uint32 numEntries;
[read,
WmiDataId(2),
Description("Error Log Array")]
MSStorageDriver_ClassErrorLogEntry logEntries[16];
};
|