30#ifndef _NTSCSI_USER_MODE_
34#define NOTIFICATION_OPERATIONAL_CHANGE_CLASS_MASK 0x02
35#define NOTIFICATION_POWER_MANAGEMENT_CLASS_MASK 0x04
36#define NOTIFICATION_EXTERNAL_REQUEST_CLASS_MASK 0x08
37#define NOTIFICATION_MEDIA_STATUS_CLASS_MASK 0x10
38#define NOTIFICATION_MULTI_HOST_CLASS_MASK 0x20
39#define NOTIFICATION_DEVICE_BUSY_CLASS_MASK 0x40
42#define NOTIFICATION_NO_CLASS_EVENTS 0x0
43#define NOTIFICATION_OPERATIONAL_CHANGE_CLASS_EVENTS 0x1
44#define NOTIFICATION_POWER_MANAGEMENT_CLASS_EVENTS 0x2
45#define NOTIFICATION_EXTERNAL_REQUEST_CLASS_EVENTS 0x3
46#define NOTIFICATION_MEDIA_STATUS_CLASS_EVENTS 0x4
47#define NOTIFICATION_MULTI_HOST_CLASS_EVENTS 0x5
48#define NOTIFICATION_DEVICE_BUSY_CLASS_EVENTS 0x6
50#define NOTIFICATION_OPERATIONAL_EVENT_NO_CHANGE 0x0
51#define NOTIFICATION_OPERATIONAL_EVENT_CHANGE_REQUESTED 0x1
52#define NOTIFICATION_OPERATIONAL_EVENT_CHANGE_OCCURRED 0x2
54#define NOTIFICATION_OPERATIONAL_STATUS_AVAILABLE 0x0
55#define NOTIFICATION_OPERATIONAL_STATUS_TEMPORARY_BUSY 0x1
56#define NOTIFICATION_OPERATIONAL_STATUS_EXTENDED_BUSY 0x2
58#define NOTIFICATION_OPERATIONAL_OPCODE_NONE 0x0
59#define NOTIFICATION_OPERATIONAL_OPCODE_FEATURE_CHANGE 0x1
60#define NOTIFICATION_OPERATIONAL_OPCODE_FEATURE_ADDED 0x2
61#define NOTIFICATION_OPERATIONAL_OPCODE_UNIT_RESET 0x3
62#define NOTIFICATION_OPERATIONAL_OPCODE_FIRMWARE_CHANGED 0x4
63#define NOTIFICATION_OPERATIONAL_OPCODE_INQUIRY_CHANGED 0x5
65#define NOTIFICATION_POWER_EVENT_NO_CHANGE 0x0
66#define NOTIFICATION_POWER_EVENT_CHANGE_SUCCEEDED 0x1
67#define NOTIFICATION_POWER_EVENT_CHANGE_FAILED 0x2
69#define NOTIFICATION_POWER_STATUS_ACTIVE 0x1
70#define NOTIFICATION_POWER_STATUS_IDLE 0x2
71#define NOTIFICATION_POWER_STATUS_STANDBY 0x3
72#define NOTIFICATION_POWER_STATUS_SLEEP 0x4
74#define NOTIFICATION_MEDIA_EVENT_NO_EVENT 0x0
75#define NOTIFICATION_EXTERNAL_EVENT_NO_CHANGE 0x0
76#define NOTIFICATION_EXTERNAL_EVENT_BUTTON_DOWN 0x1
77#define NOTIFICATION_EXTERNAL_EVENT_BUTTON_UP 0x2
78#define NOTIFICATION_EXTERNAL_EVENT_EXTERNAL 0x3
80#define NOTIFICATION_EXTERNAL_STATUS_READY 0x0
81#define NOTIFICATION_EXTERNAL_STATUS_PREVENT 0x1
83#define NOTIFICATION_EXTERNAL_REQUEST_NONE 0x0000
84#define NOTIFICATION_EXTERNAL_REQUEST_QUEUE_OVERRUN 0x0001
85#define NOTIFICATION_EXTERNAL_REQUEST_PLAY 0x0101
86#define NOTIFICATION_EXTERNAL_REQUEST_REWIND_BACK 0x0102
87#define NOTIFICATION_EXTERNAL_REQUEST_FAST_FORWARD 0x0103
88#define NOTIFICATION_EXTERNAL_REQUEST_PAUSE 0x0104
89#define NOTIFICATION_EXTERNAL_REQUEST_STOP 0x0106
90#define NOTIFICATION_EXTERNAL_REQUEST_ASCII_LOW 0x0200
91#define NOTIFICATION_EXTERNAL_REQUEST_ASCII_HIGH 0x02ff
93#define NOTIFICATION_MEDIA_EVENT_NO_CHANGE 0x0
94#define NOTIFICATION_MEDIA_EVENT_EJECT_REQUEST 0x1
95#define NOTIFICATION_MEDIA_EVENT_NEW_MEDIA 0x2
96#define NOTIFICATION_MEDIA_EVENT_MEDIA_REMOVAL 0x3
97#define NOTIFICATION_MEDIA_EVENT_MEDIA_CHANGE 0x4
99#define NOTIFICATION_BUSY_EVENT_NO_EVENT 0x0
100#define NOTIFICATION_MULTI_HOST_EVENT_NO_CHANGE 0x0
101#define NOTIFICATION_MULTI_HOST_EVENT_CONTROL_REQUEST 0x1
102#define NOTIFICATION_MULTI_HOST_EVENT_CONTROL_GRANT 0x2
103#define NOTIFICATION_MULTI_HOST_EVENT_CONTROL_RELEASE 0x3
105#define NOTIFICATION_MULTI_HOST_STATUS_READY 0x0
106#define NOTIFICATION_MULTI_HOST_STATUS_PREVENT 0x1
108#define NOTIFICATION_MULTI_HOST_PRIORITY_NO_REQUESTS 0x0
109#define NOTIFICATION_MULTI_HOST_PRIORITY_LOW 0x1
110#define NOTIFICATION_MULTI_HOST_PRIORITY_MEDIUM 0x2
111#define NOTIFICATION_MULTI_HOST_PRIORITY_HIGH 0x3
113#define NOTIFICATION_BUSY_EVENT_NO_EVENT 0x0
114#define NOTIFICATION_BUSY_EVENT_NO_CHANGE 0x0
115#define NOTIFICATION_BUSY_EVENT_BUSY 0x1
116#define NOTIFICATION_BUSY_EVENT_LO_CHANGE 0x2
118#define NOTIFICATION_BUSY_STATUS_NO_EVENT 0x0
119#define NOTIFICATION_BUSY_STATUS_POWER 0x1
120#define NOTIFICATION_BUSY_STATUS_IMMEDIATE 0x2
121#define NOTIFICATION_BUSY_STATUS_DEFERRED 0x3
123#define DVD_FORMAT_LEAD_IN 0x00
124#define DVD_FORMAT_COPYRIGHT 0x01
125#define DVD_FORMAT_DISK_KEY 0x02
126#define DVD_FORMAT_BCA 0x03
127#define DVD_FORMAT_MANUFACTURING 0x04
129#define DVD_REPORT_AGID 0x00
130#define DVD_CHALLENGE_KEY 0x01
131#define DVD_KEY_1 0x02
132#define DVD_KEY_2 0x03
133#define DVD_TITLE_KEY 0x04
134#define DVD_REPORT_ASF 0x05
135#define DVD_INVALIDATE_AGID 0x3F
137#define BLANK_FULL 0x0
138#define BLANK_MINIMAL 0x1
139#define BLANK_TRACK 0x2
140#define BLANK_UNRESERVE_TRACK 0x3
141#define BLANK_TAIL 0x4
142#define BLANK_UNCLOSE_SESSION 0x5
143#define BLANK_SESSION 0x6
145#define CD_EXPECTED_SECTOR_ANY 0x0
146#define CD_EXPECTED_SECTOR_CDDA 0x1
147#define CD_EXPECTED_SECTOR_MODE1 0x2
148#define CD_EXPECTED_SECTOR_MODE2 0x3
149#define CD_EXPECTED_SECTOR_MODE2_FORM1 0x4
150#define CD_EXPECTED_SECTOR_MODE2_FORM2 0x5
152#define DISK_STATUS_EMPTY 0x00
153#define DISK_STATUS_INCOMPLETE 0x01
154#define DISK_STATUS_COMPLETE 0x02
155#define DISK_STATUS_OTHERS 0x03
157#define LAST_SESSION_EMPTY 0x00
158#define LAST_SESSION_INCOMPLETE 0x01
159#define LAST_SESSION_RESERVED_DAMAGED 0x02
160#define LAST_SESSION_COMPLETE 0x03
162#define DISK_TYPE_CDDA 0x00
163#define DISK_TYPE_CDI 0x10
164#define DISK_TYPE_XA 0x20
165#define DISK_TYPE_UNDEFINED 0xFF
167#define DISC_BGFORMAT_STATE_NONE 0x0
168#define DISC_BGFORMAT_STATE_INCOMPLETE 0x1
169#define DISC_BGFORMAT_STATE_RUNNING 0x2
170#define DISC_BGFORMAT_STATE_COMPLETE 0x3
172#define DATA_BLOCK_MODE0 0x0
173#define DATA_BLOCK_MODE1 0x1
174#define DATA_BLOCK_MODE2 0x2
177#define READ_TOC_FORMAT_TOC 0x00
178#define READ_TOC_FORMAT_SESSION 0x01
179#define READ_TOC_FORMAT_FULL_TOC 0x02
180#define READ_TOC_FORMAT_PMA 0x03
181#define READ_TOC_FORMAT_ATIP 0x04
183#define CDB6GENERIC_LENGTH 6
184#define CDB10GENERIC_LENGTH 10
185#define CDB12GENERIC_LENGTH 12
191#define MODE_PAGE_VENDOR_SPECIFIC 0x00
192#define MODE_PAGE_ERROR_RECOVERY 0x01
193#define MODE_PAGE_DISCONNECT 0x02
194#define MODE_PAGE_FORMAT_DEVICE 0x03
195#define MODE_PAGE_MRW 0x03
196#define MODE_PAGE_RIGID_GEOMETRY 0x04
197#define MODE_PAGE_FLEXIBILE 0x05
198#define MODE_PAGE_WRITE_PARAMETERS 0x05
199#define MODE_PAGE_VERIFY_ERROR 0x07
200#define MODE_PAGE_CACHING 0x08
201#define MODE_PAGE_PERIPHERAL 0x09
202#define MODE_PAGE_CONTROL 0x0A
203#define MODE_PAGE_MEDIUM_TYPES 0x0B
204#define MODE_PAGE_NOTCH_PARTITION 0x0C
205#define MODE_PAGE_CD_AUDIO_CONTROL 0x0E
206#define MODE_PAGE_DATA_COMPRESS 0x0F
207#define MODE_PAGE_DEVICE_CONFIG 0x10
208#define MODE_PAGE_XOR_CONTROL 0x10
209#define MODE_PAGE_MEDIUM_PARTITION 0x11
210#define MODE_PAGE_ENCLOSURE_SERVICES_MANAGEMENT 0x14
211#define MODE_PAGE_EXTENDED 0x15
212#define MODE_PAGE_EXTENDED_DEVICE_SPECIFIC 0x16
213#define MODE_PAGE_CDVD_FEATURE_SET 0x18
214#define MODE_PAGE_PROTOCOL_SPECIFIC_LUN 0x18
215#define MODE_PAGE_PROTOCOL_SPECIFIC_PORT 0x19
216#define MODE_PAGE_POWER_CONDITION 0x1A
217#define MODE_PAGE_LUN_MAPPING 0x1B
218#define MODE_PAGE_FAULT_REPORTING 0x1C
219#define MODE_PAGE_CDVD_INACTIVITY 0x1D
220#define MODE_PAGE_ELEMENT_ADDRESS 0x1D
221#define MODE_PAGE_TRANSPORT_GEOMETRY 0x1E
222#define MODE_PAGE_DEVICE_CAPABILITIES 0x1F
223#define MODE_PAGE_CAPABILITIES 0x2A
225#define MODE_SENSE_RETURN_ALL 0x3f
227#define MODE_SENSE_CURRENT_VALUES 0x00
228#define MODE_SENSE_CHANGEABLE_VALUES 0x40
229#define MODE_SENSE_DEFAULT_VAULES 0x80
230#define MODE_SENSE_SAVED_VALUES 0xc0
233#define SCSIOP_TEST_UNIT_READY 0x00
234#define SCSIOP_REZERO_UNIT 0x01
235#define SCSIOP_REWIND 0x01
236#define SCSIOP_REQUEST_BLOCK_ADDR 0x02
237#define SCSIOP_REQUEST_SENSE 0x03
238#define SCSIOP_FORMAT_UNIT 0x04
239#define SCSIOP_READ_BLOCK_LIMITS 0x05
240#define SCSIOP_REASSIGN_BLOCKS 0x07
241#define SCSIOP_INIT_ELEMENT_STATUS 0x07
242#define SCSIOP_READ6 0x08
243#define SCSIOP_RECEIVE 0x08
244#define SCSIOP_WRITE6 0x0A
245#define SCSIOP_PRINT 0x0A
246#define SCSIOP_SEND 0x0A
247#define SCSIOP_SEEK6 0x0B
248#define SCSIOP_TRACK_SELECT 0x0B
249#define SCSIOP_SLEW_PRINT 0x0B
250#define SCSIOP_SET_CAPACITY 0x0B
251#define SCSIOP_SEEK_BLOCK 0x0C
252#define SCSIOP_PARTITION 0x0D
253#define SCSIOP_READ_REVERSE 0x0F
254#define SCSIOP_WRITE_FILEMARKS 0x10
255#define SCSIOP_FLUSH_BUFFER 0x10
256#define SCSIOP_SPACE 0x11
257#define SCSIOP_INQUIRY 0x12
258#define SCSIOP_VERIFY6 0x13
259#define SCSIOP_RECOVER_BUF_DATA 0x14
260#define SCSIOP_MODE_SELECT 0x15
261#define SCSIOP_RESERVE_UNIT 0x16
262#define SCSIOP_RELEASE_UNIT 0x17
263#define SCSIOP_COPY 0x18
264#define SCSIOP_ERASE 0x19
265#define SCSIOP_MODE_SENSE 0x1A
266#define SCSIOP_START_STOP_UNIT 0x1B
267#define SCSIOP_STOP_PRINT 0x1B
268#define SCSIOP_LOAD_UNLOAD 0x1B
269#define SCSIOP_RECEIVE_DIAGNOSTIC 0x1C
270#define SCSIOP_SEND_DIAGNOSTIC 0x1D
271#define SCSIOP_MEDIUM_REMOVAL 0x1E
273#define SCSIOP_READ_FORMATTED_CAPACITY 0x23
274#define SCSIOP_READ_CAPACITY 0x25
275#define SCSIOP_READ 0x28
276#define SCSIOP_WRITE 0x2A
277#define SCSIOP_SEEK 0x2B
278#define SCSIOP_LOCATE 0x2B
279#define SCSIOP_POSITION_TO_ELEMENT 0x2B
280#define SCSIOP_WRITE_VERIFY 0x2E
281#define SCSIOP_VERIFY 0x2F
282#define SCSIOP_SEARCH_DATA_HIGH 0x30
283#define SCSIOP_SEARCH_DATA_EQUAL 0x31
284#define SCSIOP_SEARCH_DATA_LOW 0x32
285#define SCSIOP_SET_LIMITS 0x33
286#define SCSIOP_READ_POSITION 0x34
287#define SCSIOP_SYNCHRONIZE_CACHE 0x35
288#define SCSIOP_COMPARE 0x39
289#define SCSIOP_COPY_COMPARE 0x3A
290#define SCSIOP_WRITE_DATA_BUFF 0x3B
291#define SCSIOP_READ_DATA_BUFF 0x3C
292#define SCSIOP_WRITE_LONG 0x3F
293#define SCSIOP_CHANGE_DEFINITION 0x40
294#define SCSIOP_WRITE_SAME 0x41
295#define SCSIOP_READ_SUB_CHANNEL 0x42
296#define SCSIOP_UNMAP 0x42
297#define SCSIOP_READ_TOC 0x43
298#define SCSIOP_READ_HEADER 0x44
299#define SCSIOP_REPORT_DENSITY_SUPPORT 0x44
300#define SCSIOP_PLAY_AUDIO 0x45
301#define SCSIOP_GET_CONFIGURATION 0x46
302#define SCSIOP_PLAY_AUDIO_MSF 0x47
303#define SCSIOP_PLAY_TRACK_INDEX 0x48
304#define SCSIOP_SANITIZE 0x48
305#define SCSIOP_PLAY_TRACK_RELATIVE 0x49
306#define SCSIOP_GET_EVENT_STATUS 0x4A
307#define SCSIOP_PAUSE_RESUME 0x4B
308#define SCSIOP_LOG_SELECT 0x4C
309#define SCSIOP_LOG_SENSE 0x4D
310#define SCSIOP_STOP_PLAY_SCAN 0x4E
311#define SCSIOP_XDWRITE 0x50
312#define SCSIOP_XPWRITE 0x51
313#define SCSIOP_READ_DISK_INFORMATION 0x51
314#define SCSIOP_READ_DISC_INFORMATION 0x51
315#define SCSIOP_READ_TRACK_INFORMATION 0x52
316#define SCSIOP_XDWRITE_READ 0x53
317#define SCSIOP_RESERVE_TRACK_RZONE 0x53
318#define SCSIOP_SEND_OPC_INFORMATION 0x54
319#define SCSIOP_MODE_SELECT10 0x55
320#define SCSIOP_RESERVE_UNIT10 0x56
321#define SCSIOP_RESERVE_ELEMENT 0x56
322#define SCSIOP_RELEASE_UNIT10 0x57
323#define SCSIOP_RELEASE_ELEMENT 0x57
324#define SCSIOP_REPAIR_TRACK 0x58
325#define SCSIOP_MODE_SENSE10 0x5A
326#define SCSIOP_CLOSE_TRACK_SESSION 0x5B
327#define SCSIOP_READ_BUFFER_CAPACITY 0x5C
328#define SCSIOP_SEND_CUE_SHEET 0x5D
329#define SCSIOP_PERSISTENT_RESERVE_IN 0x5E
330#define SCSIOP_PERSISTENT_RESERVE_OUT 0x5F
332#define SCSIOP_OPERATION32 0x7F
334#define SCSIOP_XDWRITE_EXTENDED16 0x80
335#define SCSIOP_WRITE_FILEMARKS16 0x80
336#define SCSIOP_REBUILD16 0x81
337#define SCSIOP_READ_REVERSE16 0x81
338#define SCSIOP_REGENERATE16 0x82
339#define SCSIOP_EXTENDED_COPY 0x83
340#define SCSIOP_POPULATE_TOKEN 0x83
341#define SCSIOP_WRITE_USING_TOKEN 0x83
342#define SCSIOP_RECEIVE_COPY_RESULTS 0x84
343#define SCSIOP_RECEIVE_ROD_TOKEN_INFORMATION 0x84
344#define SCSIOP_ATA_PASSTHROUGH16 0x85
345#define SCSIOP_ACCESS_CONTROL_IN 0x86
346#define SCSIOP_ACCESS_CONTROL_OUT 0x87
347#define SCSIOP_READ16 0x88
348#define SCSIOP_COMPARE_AND_WRITE 0x89
349#define SCSIOP_WRITE16 0x8A
350#define SCSIOP_READ_ATTRIBUTES 0x8C
351#define SCSIOP_WRITE_ATTRIBUTES 0x8D
352#define SCSIOP_WRITE_VERIFY16 0x8E
353#define SCSIOP_VERIFY16 0x8F
354#define SCSIOP_PREFETCH16 0x90
355#define SCSIOP_SYNCHRONIZE_CACHE16 0x91
356#define SCSIOP_SPACE16 0x91
357#define SCSIOP_LOCK_UNLOCK_CACHE16 0x92
358#define SCSIOP_LOCATE16 0x92
359#define SCSIOP_WRITE_SAME16 0x93
360#define SCSIOP_ERASE16 0x93
361#define SCSIOP_ZBC_OUT 0x94
362#define SCSIOP_ZBC_IN 0x95
363#define SCSIOP_READ_DATA_BUFF16 0x9B
364#define SCSIOP_READ_CAPACITY16 0x9E
365#define SCSIOP_GET_LBA_STATUS 0x9E
366#define SCSIOP_GET_PHYSICAL_ELEMENT_STATUS 0x9E
367#define SCSIOP_REMOVE_ELEMENT_AND_TRUNCATE 0x9E
368#define SCSIOP_SERVICE_ACTION_IN16 0x9E
369#define SCSIOP_SERVICE_ACTION_OUT16 0x9F
371#define SCSIOP_REPORT_LUNS 0xA0
372#define SCSIOP_BLANK 0xA1
373#define SCSIOP_ATA_PASSTHROUGH12 0xA1
374#define SCSIOP_SEND_EVENT 0xA2
375#define SCSIOP_SECURITY_PROTOCOL_IN 0xA2
376#define SCSIOP_SEND_KEY 0xA3
377#define SCSIOP_MAINTENANCE_IN 0xA3
378#define SCSIOP_REPORT_KEY 0xA4
379#define SCSIOP_MAINTENANCE_OUT 0xA4
380#define SCSIOP_MOVE_MEDIUM 0xA5
381#define SCSIOP_LOAD_UNLOAD_SLOT 0xA6
382#define SCSIOP_EXCHANGE_MEDIUM 0xA6
383#define SCSIOP_SET_READ_AHEAD 0xA7
384#define SCSIOP_MOVE_MEDIUM_ATTACHED 0xA7
385#define SCSIOP_READ12 0xA8
386#define SCSIOP_GET_MESSAGE 0xA8
387#define SCSIOP_SERVICE_ACTION_OUT12 0xA9
388#define SCSIOP_WRITE12 0xAA
389#define SCSIOP_SEND_MESSAGE 0xAB
390#define SCSIOP_SERVICE_ACTION_IN12 0xAB
391#define SCSIOP_GET_PERFORMANCE 0xAC
392#define SCSIOP_READ_DVD_STRUCTURE 0xAD
393#define SCSIOP_WRITE_VERIFY12 0xAE
394#define SCSIOP_VERIFY12 0xAF
395#define SCSIOP_SEARCH_DATA_HIGH12 0xB0
396#define SCSIOP_SEARCH_DATA_EQUAL12 0xB1
397#define SCSIOP_SEARCH_DATA_LOW12 0xB2
398#define SCSIOP_SET_LIMITS12 0xB3
399#define SCSIOP_READ_ELEMENT_STATUS_ATTACHED 0xB4
400#define SCSIOP_REQUEST_VOL_ELEMENT 0xB5
401#define SCSIOP_SECURITY_PROTOCOL_OUT 0xB5
402#define SCSIOP_SEND_VOLUME_TAG 0xB6
403#define SCSIOP_SET_STREAMING 0xB6
404#define SCSIOP_READ_DEFECT_DATA 0xB7
405#define SCSIOP_READ_ELEMENT_STATUS 0xB8
406#define SCSIOP_READ_CD_MSF 0xB9
407#define SCSIOP_SCAN_CD 0xBA
408#define SCSIOP_REDUNDANCY_GROUP_IN 0xBA
409#define SCSIOP_SET_CD_SPEED 0xBB
410#define SCSIOP_REDUNDANCY_GROUP_OUT 0xBB
411#define SCSIOP_PLAY_CD 0xBC
412#define SCSIOP_SPARE_IN 0xBC
413#define SCSIOP_MECHANISM_STATUS 0xBD
414#define SCSIOP_SPARE_OUT 0xBD
415#define SCSIOP_READ_CD 0xBE
416#define SCSIOP_VOLUME_SET_IN 0xBE
417#define SCSIOP_SEND_DVD_STRUCTURE 0xBF
418#define SCSIOP_VOLUME_SET_OUT 0xBF
419#define SCSIOP_INIT_ELEMENT_RANGE 0xE7
425#define SERVICE_ACTION_OVERWRITE 0x01
426#define SERVICE_ACTION_BLOCK_ERASE 0x02
427#define SERVICE_ACTION_CRYPTO_ERASE 0x03
428#define SERVICE_ACTION_EXIT_FAILURE 0x1f
432#define SERVICE_ACTION_XDWRITE 0x0004
433#define SERVICE_ACTION_XPWRITE 0x0006
434#define SERVICE_ACTION_XDWRITEREAD 0x0007
435#define SERVICE_ACTION_WRITE 0x000B
436#define SERVICE_ACTION_WRITE_VERIFY 0x000C
437#define SERVICE_ACTION_WRITE_SAME 0x000D
438#define SERVICE_ACTION_ORWRITE 0x000E
442#define SERVICE_ACTION_POPULATE_TOKEN 0x10
443#define SERVICE_ACTION_WRITE_USING_TOKEN 0x11
447#define SERVICE_ACTION_RECEIVE_TOKEN_INFORMATION 0x07
451#define SERVICE_ACTION_CLOSE_ZONE 0x01
452#define SERVICE_ACTION_FINISH_ZONE 0x02
453#define SERVICE_ACTION_OPEN_ZONE 0x03
454#define SERVICE_ACTION_RESET_WRITE_POINTER 0x04
458#define SERVICE_ACTION_REPORT_ZONES 0x00
460#define REPORT_ZONES_OPTION_LIST_ALL_ZONES 0x00
461#define REPORT_ZONES_OPTION_LIST_EMPTY_ZONES 0x01
462#define REPORT_ZONES_OPTION_LIST_IMPLICITLY_OPENED_ZONES 0x02
463#define REPORT_ZONES_OPTION_LIST_EXPLICITLY_OPENED_ZONES 0x03
464#define REPORT_ZONES_OPTION_LIST_CLOSED_ZONES 0x04
465#define REPORT_ZONES_OPTION_LIST_FULL_ZONES 0x05
466#define REPORT_ZONES_OPTION_LIST_READ_ONLY_ZONES 0x06
467#define REPORT_ZONES_OPTION_LIST_OFFLINE_ZONES 0x07
468#define REPORT_ZONES_OPTION_LIST_RWP_ZONES 0x10
469#define REPORT_ZONES_OPTION_LIST_NON_SEQUENTIAL_WRITE_RESOURCES_ACTIVE_ZONES 0x11
470#define REPORT_ZONES_OPTION_LIST_NOT_WRITE_POINTER_ZONES 0x3F
474#define SERVICE_ACTION_READ_CAPACITY16 0x10
475#define SERVICE_ACTION_GET_LBA_STATUS 0x12
476#define SERVICE_ACTION_GET_PHYSICAL_ELEMENT_STATUS 0x17
477#define SERVICE_ACTION_REMOVE_ELEMENT_AND_TRUNCATE 0x18
481#define SERVICE_ACTION_REPORT_TIMESTAMP 0x0F
485#define SERVICE_ACTION_SET_TIMESTAMP 0x0F
487#define CDB_RETURN_ON_COMPLETION 0
488#define CDB_RETURN_IMMEDIATE 1
490#define CDB_FORCE_MEDIA_ACCESS 0x08
492#define SCSIOP_DENON_EJECT_DISC 0xE6
493#define SCSIOP_DENON_STOP_AUDIO 0xE7
494#define SCSIOP_DENON_PLAY_AUDIO 0xE8
495#define SCSIOP_DENON_READ_TOC 0xE9
496#define SCSIOP_DENON_READ_SUBCODE 0xEB
498#define SCSIMESS_ABORT 0x06
499#define SCSIMESS_ABORT_WITH_TAG 0x0D
500#define SCSIMESS_BUS_DEVICE_RESET 0X0C
501#define SCSIMESS_CLEAR_QUEUE 0X0E
502#define SCSIMESS_COMMAND_COMPLETE 0X00
503#define SCSIMESS_DISCONNECT 0X04
504#define SCSIMESS_EXTENDED_MESSAGE 0X01
505#define SCSIMESS_IDENTIFY 0X80
506#define SCSIMESS_IDENTIFY_WITH_DISCON 0XC0
507#define SCSIMESS_IGNORE_WIDE_RESIDUE 0X23
508#define SCSIMESS_INITIATE_RECOVERY 0X0F
509#define SCSIMESS_INIT_DETECTED_ERROR 0X05
510#define SCSIMESS_LINK_CMD_COMP 0X0A
511#define SCSIMESS_LINK_CMD_COMP_W_FLAG 0X0B
512#define SCSIMESS_MESS_PARITY_ERROR 0X09
513#define SCSIMESS_MESSAGE_REJECT 0X07
514#define SCSIMESS_NO_OPERATION 0X08
515#define SCSIMESS_HEAD_OF_QUEUE_TAG 0X21
516#define SCSIMESS_ORDERED_QUEUE_TAG 0X22
517#define SCSIMESS_SIMPLE_QUEUE_TAG 0X20
518#define SCSIMESS_RELEASE_RECOVERY 0X10
519#define SCSIMESS_RESTORE_POINTERS 0X03
520#define SCSIMESS_SAVE_DATA_POINTER 0X02
521#define SCSIMESS_TERMINATE_IO_PROCESS 0X11
523#define SCSIMESS_MODIFY_DATA_POINTER 0X00
524#define SCSIMESS_SYNCHRONOUS_DATA_REQ 0X01
525#define SCSIMESS_WIDE_DATA_REQUEST 0X03
527#define SCSIMESS_MODIFY_DATA_LENGTH 5
528#define SCSIMESS_SYNCH_DATA_LENGTH 3
529#define SCSIMESS_WIDE_DATA_LENGTH 2
531#define CDB_INQUIRY_EVPD 0x01
533#define LUN0_FORMAT_SAVING_DEFECT_LIST 0
534#define USE_DEFAULTMSB 0
535#define USE_DEFAULTLSB 0
537#define START_UNIT_CODE 0x01
538#define STOP_UNIT_CODE 0x00
541#define DIRECT_ACCESS_DEVICE 0x00
542#define SEQUENTIAL_ACCESS_DEVICE 0x01
543#define PRINTER_DEVICE 0x02
544#define PROCESSOR_DEVICE 0x03
545#define WRITE_ONCE_READ_MULTIPLE_DEVICE 0x04
546#define READ_ONLY_DIRECT_ACCESS_DEVICE 0x05
547#define SCANNER_DEVICE 0x06
548#define OPTICAL_DEVICE 0x07
549#define MEDIUM_CHANGER 0x08
550#define COMMUNICATION_DEVICE 0x09
551#define ARRAY_CONTROLLER_DEVICE 0x0C
552#define SCSI_ENCLOSURE_DEVICE 0x0D
553#define REDUCED_BLOCK_DEVICE 0x0E
554#define OPTICAL_CARD_READER_WRITER_DEVICE 0x0F
555#define BRIDGE_CONTROLLER_DEVICE 0x10
556#define OBJECT_BASED_STORAGE_DEVICE 0x11
557#define LOGICAL_UNIT_NOT_PRESENT_DEVICE 0x7F
559#define DEVICE_QUALIFIER_ACTIVE 0x00
560#define DEVICE_QUALIFIER_NOT_ACTIVE 0x01
561#define DEVICE_QUALIFIER_NOT_SUPPORTED 0x03
564#define DEVICE_CONNECTED 0x00
566#define SCSISTAT_GOOD 0x00
567#define SCSISTAT_CHECK_CONDITION 0x02
568#define SCSISTAT_CONDITION_MET 0x04
569#define SCSISTAT_BUSY 0x08
570#define SCSISTAT_INTERMEDIATE 0x10
571#define SCSISTAT_INTERMEDIATE_COND_MET 0x14
572#define SCSISTAT_RESERVATION_CONFLICT 0x18
573#define SCSISTAT_COMMAND_TERMINATED 0x22
574#define SCSISTAT_QUEUE_FULL 0x28
576#define RESERVATION_ACTION_READ_KEYS 0x00
577#define RESERVATION_ACTION_READ_RESERVATIONS 0x01
579#define RESERVATION_ACTION_REGISTER 0x00
580#define RESERVATION_ACTION_RESERVE 0x01
581#define RESERVATION_ACTION_RELEASE 0x02
582#define RESERVATION_ACTION_CLEAR 0x03
583#define RESERVATION_ACTION_PREEMPT 0x04
584#define RESERVATION_ACTION_PREEMPT_ABORT 0x05
585#define RESERVATION_ACTION_REGISTER_IGNORE_EXISTING 0x06
587#define RESERVATION_SCOPE_LU 0x00
588#define RESERVATION_SCOPE_ELEMENT 0x02
590#define RESERVATION_TYPE_WRITE_EXCLUSIVE 0x01
591#define RESERVATION_TYPE_EXCLUSIVE 0x03
592#define RESERVATION_TYPE_WRITE_EXCLUSIVE_REGISTRANTS 0x05
593#define RESERVATION_TYPE_EXCLUSIVE_REGISTRANTS 0x06
595#define SENSE_BUFFER_SIZE sizeof(SENSE_DATA)
596#define SENSE_BUFFER_SIZE_EX sizeof(SENSE_DATA_EX)
598#define MAX_SENSE_BUFFER_SIZE 255
600#define MAX_ADDITIONAL_SENSE_BYTES (MAX_SENSE_BUFFER_SIZE - SENSE_BUFFER_SIZE)
601#define MAX_ADDITIONAL_SENSE_BYTES_EX (MAX_SENSE_BUFFER_SIZE - SENSE_BUFFER_SIZE_EX)
604#define SCSI_SENSE_NO_SENSE 0x00
605#define SCSI_SENSE_RECOVERED_ERROR 0x01
606#define SCSI_SENSE_NOT_READY 0x02
607#define SCSI_SENSE_MEDIUM_ERROR 0x03
608#define SCSI_SENSE_HARDWARE_ERROR 0x04
609#define SCSI_SENSE_ILLEGAL_REQUEST 0x05
610#define SCSI_SENSE_UNIT_ATTENTION 0x06
611#define SCSI_SENSE_DATA_PROTECT 0x07
612#define SCSI_SENSE_BLANK_CHECK 0x08
613#define SCSI_SENSE_UNIQUE 0x09
614#define SCSI_SENSE_COPY_ABORTED 0x0A
615#define SCSI_SENSE_ABORTED_COMMAND 0x0B
616#define SCSI_SENSE_EQUAL 0x0C
617#define SCSI_SENSE_VOL_OVERFLOW 0x0D
618#define SCSI_SENSE_MISCOMPARE 0x0E
619#define SCSI_SENSE_RESERVED 0x0F
623#define SCSI_SENSE_ERRORCODE_FIXED_CURRENT 0x70
624#define SCSI_SENSE_ERRORCODE_FIXED_DEFERRED 0x71
625#define SCSI_SENSE_ERRORCODE_DESCRIPTOR_CURRENT 0x72
626#define SCSI_SENSE_ERRORCODE_DESCRIPTOR_DEFERRED 0x73
630#define SCSI_SENSE_DESCRIPTOR_TYPE_INFORMATION 0x00
631#define SCSI_SENSE_DESCRIPTOR_TYPE_COMMAND_SPECIFIC 0x01
632#define SCSI_SENSE_DESCRIPTOR_TYPE_SENSE_KEY_SPECIFIC 0x02
633#define SCSI_SENSE_DESCRIPTOR_TYPE_FIELD_REPLACEABLE_UNIT 0x03
634#define SCSI_SENSE_DESCRIPTOR_TYPE_STREAM_COMMAND 0x04
635#define SCSI_SENSE_DESCRIPTOR_TYPE_BLOCK_COMMAND 0x05
636#define SCSI_SENSE_DESCRIPTOR_TYPE_OSD_OBJECT_IDENTIFICATION 0x06
637#define SCSI_SENSE_DESCRIPTOR_TYPE_OSD_RESPONSE_INTEGRITY_CHECK 0x07
638#define SCSI_SENSE_DESCRIPTOR_TYPE_OSD_ATTRIBUTE_IDENTIFICATION 0x08
639#define SCSI_SENSE_DESCRIPTOR_TYPE_ATA_STATUS_RETURN 0x09
640#define SCSI_SENSE_DESCRIPTOR_TYPE_PROGRESS_INDICATION 0x0A
641#define SCSI_SENSE_DESCRIPTOR_TYPE_USER_DATA_SEGMENT_REFERRAL 0x0B
644#define SCSI_ILLEGAL_LENGTH 0x20
646#define SCSI_FILE_MARK 0x80
649#define SCSI_ADSENSE_NO_SENSE 0x00
650#define SCSI_ADSENSE_NO_SEEK_COMPLETE 0x02
651#define SCSI_ADSENSE_WRITE 0x03
652#define SCSI_ADSENSE_LUN_NOT_READY 0x04
653#define SCSI_ADSENSE_LUN_COMMUNICATION 0x08
654#define SCSI_ADSENSE_SERVO_ERROR 0x09
655#define SCSI_ADSENSE_WARNING 0x0B
656#define SCSI_ADSENSE_WRITE_ERROR 0x0C
657#define SCSI_ADSENSE_COPY_TARGET_DEVICE_ERROR 0x0D
658#define SCSI_ADSENSE_UNRECOVERED_ERROR 0x11
659#define SCSI_ADSENSE_TRACK_ERROR 0x14
660#define SCSI_ADSENSE_SEEK_ERROR 0x15
661#define SCSI_ADSENSE_REC_DATA_NOECC 0x17
662#define SCSI_ADSENSE_REC_DATA_ECC 0x18
663#define SCSI_ADSENSE_DEFECT_LIST_ERROR 0x19
664#define SCSI_ADSENSE_PARAMETER_LIST_LENGTH 0x1A
665#define SCSI_ADSENSE_MISCOMPARE_DURING_VERIFY_OPERATION 0x1D
666#define SCSI_ADSENSE_ILLEGAL_COMMAND 0x20
667#define SCSI_ADSENSE_ACCESS_DENIED 0x20
668#define SCSI_ADSENSE_ILLEGAL_BLOCK 0x21
669#define SCSI_ADSENSE_INVALID_TOKEN 0x23
670#define SCSI_ADSENSE_INVALID_CDB 0x24
671#define SCSI_ADSENSE_INVALID_LUN 0x25
672#define SCSI_ADSENSE_INVALID_FIELD_PARAMETER_LIST 0x26
673#define SCSI_ADSENSE_WRITE_PROTECT 0x27
674#define SCSI_ADSENSE_MEDIUM_CHANGED 0x28
675#define SCSI_ADSENSE_BUS_RESET 0x29
676#define SCSI_ADSENSE_PARAMETERS_CHANGED 0x2A
677#define SCSI_ADSENSE_INSUFFICIENT_TIME_FOR_OPERATION 0x2E
678#define SCSI_ADSENSE_INVALID_MEDIA 0x30
679#define SCSI_ADSENSE_DEFECT_LIST 0x32
680#define SCSI_ADSENSE_LB_PROVISIONING 0x38
681#define SCSI_ADSENSE_NO_MEDIA_IN_DEVICE 0x3a
682#define SCSI_ADSENSE_POSITION_ERROR 0x3b
683#define SCSI_ADSENSE_LOGICAL_UNIT_ERROR 0x3e
684#define SCSI_ADSENSE_OPERATING_CONDITIONS_CHANGED 0x3f
685#define SCSI_ADSENSE_DATA_PATH_FAILURE 0x41
686#define SCSI_ADSENSE_POWER_ON_SELF_TEST_FAILURE 0x42
687#define SCSI_ADSENSE_INTERNAL_TARGET_FAILURE 0x44
688#define SCSI_ADSENSE_DATA_TRANSFER_ERROR 0x4b
689#define SCSI_ADSENSE_LUN_FAILED_SELF_CONFIGURATION 0x4c
690#define SCSI_ADSENSE_RESOURCE_FAILURE 0x55
691#define SCSI_ADSENSE_OPERATOR_REQUEST 0x5a
692#define SCSI_ADSENSE_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x5d
693#define SCSI_ADSENSE_ILLEGAL_MODE_FOR_THIS_TRACK 0x64
694#define SCSI_ADSENSE_COPY_PROTECTION_FAILURE 0x6f
695#define SCSI_ADSENSE_POWER_CALIBRATION_ERROR 0x73
696#define SCSI_ADSENSE_VENDOR_UNIQUE 0x80
697#define SCSI_ADSENSE_MUSIC_AREA 0xA0
698#define SCSI_ADSENSE_DATA_AREA 0xA1
699#define SCSI_ADSENSE_VOLUME_OVERFLOW 0xA7
701#define SCSI_ADWRITE_PROTECT SCSI_ADSENSE_WRITE_PROTECT
702#define SCSI_FAILURE_PREDICTION_THRESHOLD_EXCEEDED SCSI_ADSENSE_FAILURE_PREDICTION_THRESHOLD_EXCEEDED
708#define SCSI_SENSEQ_FILEMARK_DETECTED 0x01
709#define SCSI_SENSEQ_END_OF_MEDIA_DETECTED 0x02
710#define SCSI_SENSEQ_SETMARK_DETECTED 0x03
711#define SCSI_SENSEQ_BEGINNING_OF_MEDIA_DETECTED 0x04
712#define SCSI_SENSEQ_OPERATION_IS_IN_PROGRESS 0x16
716#define SCSI_SENSEQ_PERIPHERAL_DEVICE_WRITE_FAULT 0x00
717#define SCSI_SENSEQ_NO_WRITE_CURRENT 0x01
718#define SCSI_SENSEQ_EXCESSIVE_WRITE_ERRORS 0x02
722#define SCSI_SENSEQ_CAUSE_NOT_REPORTABLE 0x00
723#define SCSI_SENSEQ_BECOMING_READY 0x01
724#define SCSI_SENSEQ_INIT_COMMAND_REQUIRED 0x02
725#define SCSI_SENSEQ_MANUAL_INTERVENTION_REQUIRED 0x03
726#define SCSI_SENSEQ_FORMAT_IN_PROGRESS 0x04
727#define SCSI_SENSEQ_REBUILD_IN_PROGRESS 0x05
728#define SCSI_SENSEQ_RECALCULATION_IN_PROGRESS 0x06
729#define SCSI_SENSEQ_OPERATION_IN_PROGRESS 0x07
730#define SCSI_SENSEQ_LONG_WRITE_IN_PROGRESS 0x08
731#define SCSI_SENSEQ_SPACE_ALLOC_IN_PROGRESS 0x14
735#define SCSI_SENSEQ_COMM_FAILURE 0x00
736#define SCSI_SENSEQ_COMM_TIMEOUT 0x01
737#define SCSI_SENSEQ_COMM_PARITY_ERROR 0x02
738#define SCSI_SESNEQ_COMM_CRC_ERROR 0x03
739#define SCSI_SENSEQ_UNREACHABLE_TARGET 0x04
743#define SCSI_SENSEQ_TRACK_FOLLOWING_ERROR 0x00
744#define SCSI_SENSEQ_TRACKING_SERVO_FAILURE 0x01
745#define SCSI_SENSEQ_FOCUS_SERVO_FAILURE 0x02
746#define SCSI_SENSEQ_SPINDLE_SERVO_FAILURE 0x03
747#define SCSI_SENSEQ_HEAD_SELECT_FAULT 0x04
751#define SCSI_SENSEQ_POWER_LOSS_EXPECTED 0x08
755#define SCSI_SENSEQ_LOSS_OF_STREAMING 0x09
756#define SCSI_SENSEQ_PADDING_BLOCKS_ADDED 0x0A
760#define SCSI_SENSEQ_NOT_REACHABLE 0x02
761#define SCSI_SENSEQ_DATA_UNDERRUN 0x04
765#define SCSI_SENSEQ_UNRECOVERED_READ_ERROR 0x00
769#define SCSI_SENSEQ_RANDOM_POSITIONING_ERROR 0x00
770#define SCSI_SENSEQ_MECHANICAL_POSITIONING_ERROR 0x01
771#define SCSI_SENSEQ_POSITIONING_ERROR_DETECTED_BY_READ_OF_MEDIUM 0x02
775#define SCSI_SENSEQ_DEFECT_LIST_ERROR 0x00
776#define SCSI_SENSEQ_DEFECT_LIST_NOT_AVAILABLE 0x01
777#define SCSI_SENSEQ_DEFECT_LIST_ERROR_IN_PRIMARY_LIST 0x02
778#define SCSI_SENSEQ_DEFECT_LIST_ERROR_IN_GROWN_LIST 0x03
782#define SCSI_SENSEQ_NO_ACCESS_RIGHTS 0x02
786#define SCSI_SENSEQ_LOGICAL_ADDRESS_OUT_OF_RANGE 0x00
787#define SCSI_SENSEQ_ILLEGAL_ELEMENT_ADDR 0x01
788#define SCSI_SENSEQ_INVALID_WRITE_ADDRESS 0x02
789#define SCSI_SENSEQ_INVALID_WRITE_CROSSING_LAYER_JUMP 0x03
790#define SCSI_SENSEQ_UNALIGNED_WRITE 0x04
791#define SCSI_SENSEQ_WRITE_BOUNDARY_VIOLATION 0x05
792#define SCSI_SENSEQ_READ_INVALID_DATA 0x06
793#define SCSI_SENSEQ_READ_BOUNDARY_VIOLATION 0x07
794#define SCSI_SENSEQ_MISALIGNED_WRITE 0x08
798#define SCSI_SENSEQ_INVALID_RELEASE_OF_PERSISTENT_RESERVATION 0x04
799#define SCSI_SENSEQ_TOO_MANY_SEGMENT_DESCRIPTORS 0x08
803#define SCSI_SENSEQ_SPACE_ALLOC_FAILED_WRITE_PROTECT 0x07
807#define SCSI_SENSEQ_CAPACITY_DATA_CHANGED 0x09
811#define SCSI_SENSEQ_DESTINATION_FULL 0x0d
812#define SCSI_SENSEQ_SOURCE_EMPTY 0x0e
816#define SCSI_SENSEQ_INCOMPATIBLE_MEDIA_INSTALLED 0x00
817#define SCSI_SENSEQ_UNKNOWN_FORMAT 0x01
818#define SCSI_SENSEQ_INCOMPATIBLE_FORMAT 0x02
819#define SCSI_SENSEQ_CLEANING_CARTRIDGE_INSTALLED 0x03
823#define SCSI_SENSEQ_NO_DEFECT_SPARE_LOCATION_AVAILABLE 0x00
824#define SCSI_SENSEQ_DEFECT_LIST_UPDATE_FAILURE 0x01
828#define SCSI_SENSEQ_SOFT_THRESHOLD_REACHED 0x07
832#define SCSI_SENSEQ_LOGICAL_UNIT_HAS_NOT_SELF_CONFIGURED_YET 0x00
833#define SCSI_SENSEQ_LOGICAL_UNIT_FAILURE 0x01
834#define SCSI_SENSEQ_TIMEOUT_ON_LOGICAL_UNIT 0x02
835#define SCSI_SENSEQ_LOGICAL_UNIT_FAILED_SELF_TEST 0x03
836#define SCSI_SENSEQ_LOGICAL_UNIT_FAILED_TO_UPDATE_SELF_TEST_LOG 0x04
840#define SCSI_SENSEQ_TARGET_OPERATING_CONDITIONS_CHANGED 0x00
841#define SCSI_SENSEQ_MICROCODE_CHANGED 0x01
842#define SCSI_SENSEQ_OPERATING_DEFINITION_CHANGED 0x02
843#define SCSI_SENSEQ_INQUIRY_DATA_CHANGED 0x03
844#define SCSI_SENSEQ_COMPONENT_DEVICE_ATTACHED 0x04
845#define SCSI_SENSEQ_DEVICE_IDENTIFIER_CHANGED 0x05
846#define SCSI_SENSEQ_REDUNDANCY_GROUP_MODIFIED 0x06
847#define SCSI_SENSEQ_REDUNDANCY_GROUP_DELETED 0x07
848#define SCSI_SENSEQ_SPARE_MODIFIED 0x08
849#define SCSI_SENSEQ_SPARE_DELETED 0x09
850#define SCSI_SENSEQ_VOLUME_SET_MODIFIED 0x0A
851#define SCSI_SENSEQ_VOLUME_SET_DELETED 0x0B
852#define SCSI_SENSEQ_VOLUME_SET_DEASSIGNED 0x0C
853#define SCSI_SENSEQ_VOLUME_SET_REASSIGNED 0x0D
854#define SCSI_SENSEQ_REPORTED_LUNS_DATA_CHANGED 0x0E
855#define SCSI_SENSEQ_ECHO_BUFFER_OVERWRITTEN 0x0F
856#define SCSI_SENSEQ_MEDIUM_LOADABLE 0x10
857#define SCSI_SENSEQ_MEDIUM_AUXILIARY_MEMORY_ACCESSIBLE 0x11
861#define SCSI_SENSEQ_INTERNAL_TARGET_FAILURE 0x00
862#define SCSI_SENSEQ_PRESISTENT_RESERVATION_INFORMATION_LOST 0x01
863#define SCSI_SENSEQ_ATA_DEVICE_FAILED_SET_FEATURES 0x71
867#define SCSI_SENSEQ_INITIATOR_RESPONSE_TIMEOUT 0x06
871#define SCSI_SENSEQ_SYSTEM_RESOURCE_FAILURE 0x00
872#define SCSI_SENSEQ_SYSTEM_BUFFER_FULL 0x01
873#define SCSI_SENSEQ_INSUFFICIENT_RESERVATION_RESOURCES 0x02
874#define SCSI_SENSEQ_INSUFFICIENT_RESOURCES 0x03
878#define SCSI_SENSEQ_STATE_CHANGE_INPUT 0x00
879#define SCSI_SENSEQ_MEDIUM_REMOVAL 0x01
880#define SCSI_SENSEQ_WRITE_PROTECT_ENABLE 0x02
881#define SCSI_SENSEQ_WRITE_PROTECT_DISABLE 0x03
885#define SCSI_SENSEQ_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x00
886#define SCSI_SENSEQ_MEDIA_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x01
887#define SCSI_SENSEQ_LUN_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x02
888#define SCSI_SENSEQ_SPARE_AREA_EXHAUSTION_PREDICTION_THRESHOLD_EXCEEDED 0x03
889#define SCSI_SENSEQ_GENERAL_HARD_DRIVE_FAILURE 0x10
890#define SCSI_SENSEQ_DRIVE_ERROR_RATE_TOO_HIGH 0x11
891#define SCSI_SENSEQ_DATA_ERROR_RATE_TOO_HIGH 0x12
892#define SCSI_SENSEQ_SEEK_ERROR_RATE_TOO_HIGH 0x13
893#define SCSI_SENSEQ_TOO_MANY_BLOCK_REASSIGNS 0x14
894#define SCSI_SENSEQ_ACCESS_TIMES_TOO_HIGH 0x15
895#define SCSI_SENSEQ_START_UNIT_TIMES_TOO_HIGH 0x16
896#define SCSI_SENSEQ_CHANNEL_PARAMETRICS 0x17
897#define SCSI_SENSEQ_CONTROLLER_DETECTED 0x18
898#define SCSI_SENSEQ_THROUGHPUT_PERFORMANCE 0x19
899#define SCSI_SENSEQ_SEEK_TIME_PERFORMANCE 0x1A
900#define SCSI_SENSEQ_SPIN_UP_RETRY_COUNT 0x1B
901#define SCSI_SENSEQ_DRIVE_CALIBRATION_RETRY_COUNT 0x1C
902#define SCSI_SENSEQ_DATA_CHANNEL_DATA_ERROR_RATE_TOO_HIGH 0x32
903#define SCSI_SENSEQ_SERVO_DATA_ERROR_RATE_TOO_HIGH 0x42
904#define SCSI_SENSEQ_SERVER_SEEK_ERROR_RATE_TOO_HIGH 0x43
905#define SCSI_SENSEQ_FAILURE_PREDICTION_THRESHOLD_EXCEEDED_FALSE 0xFF
909#define SCSI_SENSEQ_AUTHENTICATION_FAILURE 0x00
910#define SCSI_SENSEQ_KEY_NOT_PRESENT 0x01
911#define SCSI_SENSEQ_KEY_NOT_ESTABLISHED 0x02
912#define SCSI_SENSEQ_READ_OF_SCRAMBLED_SECTOR_WITHOUT_AUTHENTICATION 0x03
913#define SCSI_SENSEQ_MEDIA_CODE_MISMATCHED_TO_LOGICAL_UNIT 0x04
914#define SCSI_SENSEQ_LOGICAL_UNIT_RESET_COUNT_ERROR 0x05
918#define SCSI_SENSEQ_POWER_CALIBRATION_AREA_ALMOST_FULL 0x01
919#define SCSI_SENSEQ_POWER_CALIBRATION_AREA_FULL 0x02
920#define SCSI_SENSEQ_POWER_CALIBRATION_AREA_ERROR 0x03
921#define SCSI_SENSEQ_PMA_RMA_UPDATE_FAILURE 0x04
922#define SCSI_SENSEQ_PMA_RMA_IS_FULL 0x05
923#define SCSI_SENSEQ_PMA_RMA_ALMOST_FULL 0x06
925#define FILE_DEVICE_SCSI 0x0000001b
927#define IOCTL_SCSI_EXECUTE_IN ((FILE_DEVICE_SCSI << 16) + 0x0011)
928#define IOCTL_SCSI_EXECUTE_OUT ((FILE_DEVICE_SCSI << 16) + 0x0012)
929#define IOCTL_SCSI_EXECUTE_NONE ((FILE_DEVICE_SCSI << 16) + 0x0013)
932#define IOCTL_SCSI_MINIPORT_SMART_VERSION ((FILE_DEVICE_SCSI << 16) + 0x0500)
933#define IOCTL_SCSI_MINIPORT_IDENTIFY ((FILE_DEVICE_SCSI << 16) + 0x0501)
934#define IOCTL_SCSI_MINIPORT_READ_SMART_ATTRIBS ((FILE_DEVICE_SCSI << 16) + 0x0502)
935#define IOCTL_SCSI_MINIPORT_READ_SMART_THRESHOLDS ((FILE_DEVICE_SCSI << 16) + 0x0503)
936#define IOCTL_SCSI_MINIPORT_ENABLE_SMART ((FILE_DEVICE_SCSI << 16) + 0x0504)
937#define IOCTL_SCSI_MINIPORT_DISABLE_SMART ((FILE_DEVICE_SCSI << 16) + 0x0505)
938#define IOCTL_SCSI_MINIPORT_RETURN_STATUS ((FILE_DEVICE_SCSI << 16) + 0x0506)
939#define IOCTL_SCSI_MINIPORT_ENABLE_DISABLE_AUTOSAVE ((FILE_DEVICE_SCSI << 16) + 0x0507)
940#define IOCTL_SCSI_MINIPORT_SAVE_ATTRIBUTE_VALUES ((FILE_DEVICE_SCSI << 16) + 0x0508)
941#define IOCTL_SCSI_MINIPORT_EXECUTE_OFFLINE_DIAGS ((FILE_DEVICE_SCSI << 16) + 0x0509)
942#define IOCTL_SCSI_MINIPORT_ENABLE_DISABLE_AUTO_OFFLINE ((FILE_DEVICE_SCSI << 16) + 0x050a)
943#define IOCTL_SCSI_MINIPORT_READ_SMART_LOG ((FILE_DEVICE_SCSI << 16) + 0x050b)
944#define IOCTL_SCSI_MINIPORT_WRITE_SMART_LOG ((FILE_DEVICE_SCSI << 16) + 0x050c)
947#define IOCTL_SCSI_MINIPORT_NOT_QUORUM_CAPABLE ((FILE_DEVICE_SCSI << 16) + 0x0520)
948#define IOCTL_SCSI_MINIPORT_NOT_CLUSTER_CAPABLE ((FILE_DEVICE_SCSI << 16) + 0x0521)
950#define MODE_FD_SINGLE_SIDE 0x01
951#define MODE_FD_DOUBLE_SIDE 0x02
952#define MODE_FD_MAXIMUM_TYPE 0x1E
953#define MODE_DSP_FUA_SUPPORTED 0x10
954#define MODE_DSP_WRITE_PROTECT 0x80
956#define CDDA_CHANNEL_MUTED 0x0
957#define CDDA_CHANNEL_ZERO 0x1
958#define CDDA_CHANNEL_ONE 0x2
959#define CDDA_CHANNEL_TWO 0x4
960#define CDDA_CHANNEL_THREE 0x8
962#define CDVD_LMT_CADDY 0
963#define CDVD_LMT_TRAY 1
964#define CDVD_LMT_POPUP 2
965#define CDVD_LMT_RESERVED1 3
966#define CDVD_LMT_CHANGER_INDIVIDUAL 4
967#define CDVD_LMT_CHANGER_CARTRIDGE 5
968#define CDVD_LMT_RESERVED2 6
969#define CDVD_LMT_RESERVED3 7
971#define LOADING_MECHANISM_CADDY 0x00
972#define LOADING_MECHANISM_TRAY 0x01
973#define LOADING_MECHANISM_POPUP 0x02
974#define LOADING_MECHANISM_INDIVIDUAL_CHANGER 0x04
975#define LOADING_MECHANISM_CARTRIDGE_CHANGER 0x05
977#define MODE_BLOCK_DESC_LENGTH 8
978#define MODE_HEADER_LENGTH 4
979#define MODE_HEADER_LENGTH10 8
982#define CDB_AUDIO_PAUSE 0x00
983#define CDB_AUDIO_RESUME 0x01
984#define CDB_DEVICE_START 0x11
985#define CDB_DEVICE_STOP 0x10
986#define CDB_EJECT_MEDIA 0x10
987#define CDB_LOAD_MEDIA 0x01
988#define CDB_SUBCHANNEL_HEADER 0x00
989#define CDB_SUBCHANNEL_BLOCK 0x01
991#define CDROM_AUDIO_CONTROL_PAGE 0x0E
992#define MODE_SELECT_IMMEDIATE 0x04
993#define MODE_SELECT_PFBIT 0x10
995#define CDB_USE_MSF 0x01
998#define GET_LAST_SESSION 0x01
999#define GET_SESSION_DATA 0x02
1013 struct _CDB6READWRITE {
1051 struct _CDB6FORMAT {
1099 struct _PAUSE_RESUME {
1178 struct _READ_BUFFER_CAPACITY {
1212 struct _PLAY_AUDIO_MSF {
1285 struct _SUBCHANNEL {
1369#if (NTDDI_VERSION >= NTDDI_WIN8)
1407 struct _MODE_SENSE10 {
1420 struct _MODE_SELECT {
1692 struct _LOAD_UNLOAD {
1748 struct _READ_DVD_STRUCTURE {
1760 struct _SET_STREAMING {
1786 struct _REPORT_KEY {
1814 struct _REPORT_LUNS {
1839 struct _GET_CONFIGURATION {
2308 union _EXTENDED_ARGUMENTS {
2322#ifndef _INQUIRYDATA_DEFINED
2323#define _INQUIRYDATA_DEFINED
2325#define INQUIRYDATABUFFERSIZE 36
2327#if (NTDDI_VERSION < NTDDI_WINXP)
2337 UCHAR ReservedBit:1;
2402#define VPD_MAX_BUFFER_SIZE 0xff
2404#define VPD_SUPPORTED_PAGES 0x00
2405#define VPD_SERIAL_NUMBER 0x80
2406#define VPD_DEVICE_IDENTIFIERS 0x83
2407#define VPD_MEDIA_SERIAL_NUMBER 0x84
2408#define VPD_SOFTWARE_INTERFACE_IDENTIFIERS 0x84
2409#define VPD_NETWORK_MANAGEMENT_ADDRESSES 0x85
2410#define VPD_EXTENDED_INQUIRY_DATA 0x86
2411#define VPD_MODE_PAGE_POLICY 0x87
2412#define VPD_SCSI_PORTS 0x88
2413#define VPD_ATA_INFORMATION 0x89
2415#define VPD_THIRD_PARTY_COPY 0x8F
2416#define VPD_BLOCK_LIMITS 0xB0
2417#define VPD_BLOCK_DEVICE_CHARACTERISTICS 0xB1
2418#define VPD_LOGICAL_BLOCK_PROVISIONING 0xB2
2419#define VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS 0xB6
2501#if (NTDDI_VERSION >= NTDDI_WIN8)
2523#define BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR_TYPE_WINDOWS 0x00
2561#define ZONED_CAPABILITIES_NOT_REPORTED 0x0
2562#define ZONED_CAPABILITIES_HOST_AWARE 0x1
2563#define ZONED_CAPABILITIES_DEVICE_MANAGED 0x2
2588#define PROVISIONING_TYPE_UNKNOWN 0x0
2589#define PROVISIONING_TYPE_RESOURCE 0x1
2590#define PROVISIONING_TYPE_THIN 0x2
2753#define RC_BASIS_LAST_LBA_NOT_SEQUENTIAL_WRITE_REQUIRED_ZONES 0x0
2754#define RC_BASIS_LAST_LBA_ON_LOGICAL_UNIT 0x1
2786#define LBA_STATUS_MAPPED 0x0
2787#define LBA_STATUS_DEALLOCATED 0x1
2788#define LBA_STATUS_ANCHORED 0x2
3242#include <pshpack1.h>
3259#define LOG_PAGE_CODE_SUPPORTED_LOG_PAGES 0x00
3260#define LOG_PAGE_CODE_WRITE_ERROR_COUNTERS 0x02
3261#define LOG_PAGE_CODE_READ_ERROR_COUNTERS 0x03
3262#define LOG_PAGE_CODE_LOGICAL_BLOCK_PROVISIONING 0x0C
3263#define LOG_PAGE_CODE_TEMPERATURE 0x0D
3264#define LOG_PAGE_CODE_STARTSTOP_CYCLE_COUNTERS 0x0E
3265#define LOG_PAGE_CODE_SELFTEST_RESULTS 0x10
3266#define LOG_PAGE_CODE_SOLID_STATE_MEDIA 0x11
3267#define LOG_PAGE_CODE_BACKGROUND_SCAN_RESULTS 0x15
3268#define LOG_PAGE_CODE_INFORMATIONAL_EXCEPTIONS 0x2F
3271#include <pshpack1.h>
3294 struct _THRESHOLD_RESOURCE_COUNT {
3300 struct _TEMPERATURE {
3304 struct _DATE_OF_MANUFACTURE {
3308 struct _SELF_TEST_RESULTS {
3322 struct _SOLID_STATE_MEDIA {
3327 struct _BACKGROUND_SCAN_STATUS {
3336 struct _INFORMATIONAL_EXCEPTIONS {
3359#define LOG_PAGE_LBP_PARAMETER_CODE_AVAILABLE 0x1
3360#define LOG_PAGE_LBP_PARAMETER_CODE_USED 0x2
3362#define LOG_PAGE_LBP_RESOURCE_SCOPE_NOT_REPORTED 0x0
3363#define LOG_PAGE_LBP_RESOURCE_SCOPE_DEDICATED_TO_LUN 0x1
3364#define LOG_PAGE_LBP_RESOURCE_SCOPE_NOT_DEDICATED_TO_LUN 0x2
3452#define REVERSE_BYTES_QUAD(Destination, Source) { \
3453 PEIGHT_BYTE _val1 = (PEIGHT_BYTE)(Destination); \
3454 PEIGHT_BYTE _val2 = (PEIGHT_BYTE)(Source); \
3455 _val1->Byte7 = _val2->Byte0; \
3456 _val1->Byte6 = _val2->Byte1; \
3457 _val1->Byte5 = _val2->Byte2; \
3458 _val1->Byte4 = _val2->Byte3; \
3459 _val1->Byte3 = _val2->Byte4; \
3460 _val1->Byte2 = _val2->Byte5; \
3461 _val1->Byte1 = _val2->Byte6; \
3462 _val1->Byte0 = _val2->Byte7; \
3465#define REVERSE_BYTES(Destination, Source) { \
3466 PFOUR_BYTE _val1 = (PFOUR_BYTE)(Destination); \
3467 PFOUR_BYTE _val2 = (PFOUR_BYTE)(Source); \
3468 _val1->Byte3 = _val2->Byte0; \
3469 _val1->Byte2 = _val2->Byte1; \
3470 _val1->Byte1 = _val2->Byte2; \
3471 _val1->Byte0 = _val2->Byte3; \
3474#define REVERSE_BYTES_SHORT(Destination, Source) { \
3475 PTWO_BYTE _val1 = (PTWO_BYTE)(Destination); \
3476 PTWO_BYTE _val2 = (PTWO_BYTE)(Source); \
3477 _val1->Byte1 = _val2->Byte0; \
3478 _val1->Byte0 = _val2->Byte1; \
3481#define REVERSE_SHORT(Short) { \
3483 PTWO_BYTE _val2 = (PTWO_BYTE)(Short); \
3484 _val = _val2->Byte0; \
3485 _val2->Byte0 = _val2->Byte1; \
3486 _val2->Byte1 = _val; \
3489#define REVERSE_LONG(Long) { \
3491 PFOUR_BYTE _val2 = (PFOUR_BYTE)(Long); \
3492 _val = _val2->Byte3; \
3493 _val2->Byte3 = _val2->Byte0; \
3494 _val2->Byte0 = _val; \
3495 _val = _val2->Byte2; \
3496 _val2->Byte2 = _val2->Byte1; \
3497 _val2->Byte1 = _val; \
3500#define WHICH_BIT(Data, Bit) { \
3502 for (_val = 0; _val < 32; _val++) { \
3503 if (((Data) >> _val) == 1) { \
3507 ASSERT(_val != 32); \
3512#define STOR_ADDRESS_ALIGN DECLSPEC_ALIGN(8)
3514#define STOR_ADDRESS_ALIGN
3524#define STOR_ADDRESS_TYPE_UNKNOWN 0x0
3525#define STOR_ADDRESS_TYPE_BTL8 0x1
3526#define STOR_ADDRESS_TYPE_MAX 0xffff
3528#define STOR_ADDR_BTL8_ADDRESS_LENGTH 4
3535 ULONG AddressLength;
3581#if (NTDDI_VERSION >= NTDDI_WIN8)
3582#include <pshpack1.h>
3584#define BLOCK_DEVICE_TOKEN_SIZE 512
3599 UCHAR BlockDeviceRangeDescriptorListLength[2];
3613 UCHAR BlockDeviceRangeDescriptorListLength[2];
3676#define ScsiGetSenseErrorCode(SenseInfoBuffer) (((PUCHAR)(SenseInfoBuffer))[0] & 0x7f)
3678#define ScsiGetSenseDescriptorLength(DescriptorBuffer) \
3679 (sizeof(SCSI_SENSE_DESCRIPTOR_HEADER) + ((PSCSI_SENSE_DESCRIPTOR_HEADER)(DescriptorBuffer))->AdditionalLength)
3681#define IsFixedSenseDataFormat(SenseInfoBuffer) \
3682 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_CURRENT || \
3683 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_DEFERRED)
3685#define IsDescriptorSenseDataFormat(SenseInfoBuffer) \
3686 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_CURRENT || \
3687 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_DEFERRED)
3689#define IsSenseDataCurrentError(SenseInfoBuffer) \
3690 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_CURRENT || \
3691 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_CURRENT)
3693#define IsSenseDataDeferredError(SenseInfoBuffer) \
3694 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_DEFERRED || \
3695 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_DEFERRED)
3697#define IsSenseDataFormatValueValid(SenseInfoBuffer) \
3698 (IsFixedSenseDataFormat(SenseInfoBuffer) || IsDescriptorSenseDataFormat(SenseInfoBuffer))
3703ScsiGetTotalSenseByteCountIndicated(
3742ScsiGetFixedSenseKeyAndCodes(
3798ScsiGetDescriptorSenseKeyAndCodes(
3838#define SCSI_SENSE_OPTIONS_NONE ((SCSI_SENSE_OPTIONS)0x00000000)
3839#define SCSI_SENSE_OPTIONS_FIXED_FORMAT_IF_UNKNOWN_FORMAT_INDICATED ((SCSI_SENSE_OPTIONS)0x00000001)
3844ScsiGetSenseKeyAndCodes(
3881ScsiGetSenseDescriptor(
3938ScsiValidateInformationSenseDescriptor(
3977ScsiValidateBlockCommandSenseDescriptor(
4011ScsiConvertToFixedSenseFormat(
4065ScsiGetNextSenseDescriptorByType(
struct _CDVD_REPORT_ASF_DATA CDVD_REPORT_ASF_DATA
struct _INQUIRYDATA * PINQUIRYDATA
struct _READ_CAPACITY_DATA * PREAD_CAPACITY_DATA
struct _SLOT_TABLE_INFORMATION SLOT_TABLE_INFORMATION
struct _CDVD_KEY_HEADER * PCDVD_KEY_HEADER
struct _MODE_CACHING_PAGE * PMODE_CACHING_PAGE
struct _MODE_PARM_READ_WRITE * PMODE_PARM_READ_WRITE_DATA
struct _READ_CAPACITY_DATA READ_CAPACITY_DATA
struct _SLOT_TABLE_INFORMATION * PSLOT_TABLE_INFORMATION
struct _MODE_READ_RECOVERY_PAGE * PMODE_READ_RECOVERY_PAGE
struct _MODE_READ_WRITE_RECOVERY_PAGE * PMODE_READ_WRITE_RECOVERY_PAGE
struct _FORMAT_LIST_HEADER * PFORMAT_LIST_HEADER
struct _MODE_READ_RECOVERY_PAGE MODE_READ_RECOVERY_PAGE
struct _MECHANICAL_STATUS * PMECHANICAL_STATUS
struct _CDVD_KEY_DATA * PCDVD_KEY_DATA
struct _MODE_PARAMETER_HEADER10 MODE_PARAMETER_HEADER10
struct _CDVD_TITLE_KEY_HEADER CDVD_TITLE_KEY_HEADER
struct _SENSE_DATA * PSENSE_DATA
struct _MODE_CACHING_PAGE MODE_CACHING_PAGE
struct _MODE_PARAMETER_HEADER MODE_PARAMETER_HEADER
struct _CDVD_CHALLENGE_KEY_DATA CDVD_CHALLENGE_KEY_DATA
struct _CDVD_REPORT_ASF_DATA * PCDVD_REPORT_ASF_DATA
struct _MECHANICAL_STATUS_INFORMATION_HEADER MECHANICAL_STATUS_INFORMATION_HEADER
struct _SCSI_EXTENDED_MESSAGE * PSCSI_EXTENDED_MESSAGE
struct _MODE_PARAMETER_HEADER10 * PMODE_PARAMETER_HEADER10
struct _SENSE_DATA SENSE_DATA
struct _CDVD_REPORT_AGID_DATA * PCDVD_REPORT_AGID_DATA
struct _FORMAT_LIST_HEADER FORMAT_LIST_HEADER
struct _MODE_PARM_READ_WRITE MODE_PARM_READ_WRITE_DATA
struct _CDVD_CHALLENGE_KEY_DATA * PCDVD_CHALLENGE_KEY_DATA
struct _MECHANICAL_STATUS MECHANICAL_STATUS
struct _READ_CAPACITY16_DATA READ_CAPACITY16_DATA
struct _CDVD_TITLE_KEY_HEADER * PCDVD_TITLE_KEY_HEADER
struct _SCSI_EXTENDED_MESSAGE SCSI_EXTENDED_MESSAGE
struct _MODE_READ_WRITE_RECOVERY_PAGE MODE_READ_WRITE_RECOVERY_PAGE
struct _INQUIRYDATA INQUIRYDATA
struct _READ_CAPACITY16_DATA * PREAD_CAPACITY16_DATA
struct _MODE_PARAMETER_BLOCK * PMODE_PARAMETER_BLOCK
struct _CDVD_KEY_DATA CDVD_KEY_DATA
struct _CDVD_REPORT_AGID_DATA CDVD_REPORT_AGID_DATA
struct _MODE_PARAMETER_BLOCK MODE_PARAMETER_BLOCK
struct _MODE_PARAMETER_HEADER * PMODE_PARAMETER_HEADER
struct _MECHANICAL_STATUS_INFORMATION_HEADER * PMECHANICAL_STATUS_INFORMATION_HEADER
struct _CDVD_KEY_HEADER CDVD_KEY_HEADER
GLuint GLuint GLsizei GLenum type
static ULONG ResourceCount
#define _In_reads_bytes_(s)
#define _Outptr_result_bytebuffer_(s)
#define _Out_writes_bytes_(s)
#define RTL_CONTAINS_FIELD(Struct, Size, Field)
#define RTL_SIZEOF_THROUGH_FIELD(type, field)
#define _ANONYMOUS_STRUCT
_In_ ULONG _In_ ULONG _In_ ULONG Length
struct _DESCRIPTOR_SENSE_DATA * PDESCRIPTOR_SENSE_DATA
#define IsSenseDataCurrentError(SenseInfoBuffer)
struct _NOTIFICATION_MULTI_HOST_STATUS NOTIFICATION_MULTI_HOST_STATUS
struct _PORT_OUTPUT * PPORT_OUTPUT
struct _WINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR WINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR
struct _CDAUDIO_CONTROL_PAGE CDAUDIO_CONTROL_PAGE
struct _SCSI_SENSE_DESCRIPTOR_INFORMATION SCSI_SENSE_DESCRIPTOR_INFORMATION
struct _CDVD_FEATURE_SET_PAGE CDVD_FEATURE_SET_PAGE
struct _POWER_CONDITION_PAGE * PPOWER_CONDITION_PAGE
union _EIGHT_BYTE EIGHT_BYTE
struct _LOG_PAGE_LOGICAL_BLOCK_PROVISIONING * PLOG_PAGE_LOGICAL_BLOCK_PROVISIONING
struct _READ_CAPACITY_DATA_EX READ_CAPACITY_DATA_EX
struct _LBA_STATUS_LIST_HEADER LBA_STATUS_LIST_HEADER
UCHAR additionalSenseCode
struct _NOTIFICATION_OPERATIONAL_STATUS * PNOTIFICATION_OPERATIONAL_STATUS
#define ScsiGetSenseDescriptorLength(DescriptorBuffer)
struct _VPD_LOGICAL_BLOCK_PROVISIONING_PAGE * PVPD_LOGICAL_BLOCK_PROVISIONING_PAGE
struct _PRI_RESERVATION_LIST * PPRI_RESERVATION_LIST
struct _LOG_PARAMETER_HEADER LOG_PARAMETER_HEADER
struct _READ_BUFFER_CAPACITY_DATA READ_BUFFER_CAPACITY_DATA
struct _NOTIFICATION_POWER_STATUS NOTIFICATION_POWER_STATUS
struct _VPD_IDENTIFICATION_PAGE VPD_IDENTIFICATION_PAGE
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE2 MODE_CDROM_WRITE_PARAMETERS_PAGE2
struct _NOTIFICATION_EXTERNAL_STATUS * PNOTIFICATION_EXTERNAL_STATUS
struct _LOG_PAGE_LOGICAL_BLOCK_PROVISIONING LOG_PAGE_LOGICAL_BLOCK_PROVISIONING
struct _NOTIFICATION_MEDIA_STATUS NOTIFICATION_MEDIA_STATUS
#define IsFixedSenseDataFormat(SenseInfoBuffer)
struct _VPD_SERIAL_NUMBER_PAGE VPD_SERIAL_NUMBER_PAGE
struct _VPD_ATA_INFORMATION_PAGE * PVPD_ATA_INFORMATION_PAGE
struct BLOCK_DEVICE_TOKEN_DESCRIPTOR * PBLOCK_DEVICE_TOKEN_DESCRIPTOR
struct POPULATE_TOKEN_HEADER * PPOPULATE_TOKEN_HEADER
struct _VPD_SERIAL_NUMBER_PAGE * PVPD_SERIAL_NUMBER_PAGE
UCHAR remainingBufferLength
struct _PRO_PARAMETER_LIST * PPRO_PARAMETER_LIST
struct _VPD_MEDIA_SERIAL_NUMBER_PAGE VPD_MEDIA_SERIAL_NUMBER_PAGE
struct _VPD_SUPPORTED_PAGES_PAGE VPD_SUPPORTED_PAGES_PAGE
struct _LOG_PARAMETER_THRESHOLD_RESOURCE_COUNT LOG_PARAMETER_THRESHOLD_RESOURCE_COUNT
#define BLOCK_DEVICE_TOKEN_SIZE
enum _VPD_IDENTIFIER_TYPE VPD_IDENTIFIER_TYPE
struct _READ_BUFFER_CAPACITY_DATA * PREAD_BUFFER_CAPACITY_DATA
struct _LUN_LIST LUN_LIST
struct _TRACK_INFORMATION2 * PTRACK_INFORMATION2
struct _CDVD_FEATURE_SET_PAGE * PCDVD_FEATURE_SET_PAGE
struct _PERFORMANCE_DESCRIPTOR PERFORMANCE_DESCRIPTOR
struct _VPD_THIRD_PARTY_COPY_PAGE * PVPD_THIRD_PARTY_COPY_PAGE
UCHAR additionalSenseCodeQualifier
struct _READ_DVD_STRUCTURES_HEADER * PREAD_DVD_STRUCTURES_HEADER
struct BLOCK_DEVICE_RANGE_DESCRIPTOR * PBLOCK_DEVICE_RANGE_DESCRIPTOR
_In_ UCHAR _In_ ULONG _Out_ PUCHAR OutType
union _SENSE_DATA_EX * PSENSE_DATA_EX
struct _MODE_FLEXIBLE_DISK_PAGE * PMODE_FLEXIBLE_DISK_PAGE
struct _TRACK_INFORMATION * PTRACK_INFORMATION
struct _OPC_TABLE_ENTRY * POPC_TABLE_ENTRY
struct _DISK_INFORMATION * PDISK_INFORMATION
struct _UNMAP_BLOCK_DESCRIPTOR UNMAP_BLOCK_DESCRIPTOR
struct _FORMATTED_CAPACITY_LIST FORMATTED_CAPACITY_LIST
struct _UNMAP_LIST_HEADER UNMAP_LIST_HEADER
struct WRITE_USING_TOKEN_HEADER * PWRITE_USING_TOKEN_HEADER
enum _VPD_CODE_SET VPD_CODE_SET
struct _LOG_PAGE * PLOG_PAGE
struct _MODE_MRW_PAGE MODE_MRW_PAGE
struct _MODE_DISCONNECT_PAGE MODE_DISCONNECT_PAGE
struct _VPD_SUPPORTED_PAGES_PAGE * PVPD_SUPPORTED_PAGES_PAGE
struct _LOG_PARAMETER_THRESHOLD_RESOURCE_COUNT * PLOG_PARAMETER_THRESHOLD_RESOURCE_COUNT
union _EIGHT_BYTE * PEIGHT_BYTE
struct _READ_BLOCK_LIMITS * PREAD_BLOCK_LIMITS_DATA
struct _MODE_CONTROL_PAGE * PMODE_CONTROL_PAGE
#define SCSI_SENSE_DESCRIPTOR_TYPE_INFORMATION
struct _FORMATTED_CAPACITY_DESCRIPTOR * PFORMATTED_CAPACITY_DESCRIPTOR
#define SCSI_SENSE_ERRORCODE_FIXED_CURRENT
struct _VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE * PVPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE
struct _VPD_IDENTIFICATION_PAGE * PVPD_IDENTIFICATION_PAGE
struct STOR_ADDRESS_ALIGN _STOR_ADDR_BTL8 * PSTOR_ADDR_BTL8
struct _MODE_MRW_PAGE * PMODE_MRW_PAGE
union _FOUR_BYTE FOUR_BYTE
struct _PRI_RESERVATION_LIST PRI_RESERVATION_LIST
struct _MODE_RIGID_GEOMETRY_PAGE MODE_RIGID_GEOMETRY_PAGE
union _SENSE_DATA_EX SENSE_DATA_EX
struct _PORT_OUTPUT PORT_OUTPUT
struct _FORMATTED_CAPACITY_DESCRIPTOR FORMATTED_CAPACITY_DESCRIPTOR
struct _VPD_ATA_INFORMATION_PAGE VPD_ATA_INFORMATION_PAGE
struct _FORMATTED_CAPACITY_LIST * PFORMATTED_CAPACITY_LIST
struct _SENSE_DATA FIXED_SENSE_DATA
struct _LOG_PAGE LOG_PAGE
struct _DATA_BLOCK_HEADER DATA_BLOCK_HEADER
struct _READ_BLOCK_LIMITS READ_BLOCK_LIMITS_DATA
struct _UNMAP_LIST_HEADER * PUNMAP_LIST_HEADER
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE MODE_CDROM_WRITE_PARAMETERS_PAGE
struct _SCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN SCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN
#define SCSI_SENSE_OPTIONS_FIXED_FORMAT_IF_UNKNOWN_FORMAT_INDICATED
struct _VPD_BLOCK_LIMITS_PAGE * PVPD_BLOCK_LIMITS_PAGE
struct _NOTIFICATION_POWER_STATUS * PNOTIFICATION_POWER_STATUS
struct _LUN_LIST * PLUN_LIST
struct _VPD_IDENTIFICATION_DESCRIPTOR * PVPD_IDENTIFICATION_DESCRIPTOR
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
struct _MODE_INFO_EXCEPTIONS * PMODE_INFO_EXCEPTIONS
struct _MODE_FLEXIBLE_DISK_PAGE MODE_FLEXIBLE_DISK_PAGE
struct _SCSI_SENSE_DESCRIPTOR_HEADER SCSI_SENSE_DESCRIPTOR_HEADER
union _TWO_BYTE * PTWO_BYTE
union _FOUR_BYTE * PFOUR_BYTE
struct _VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE
#define SCSI_SENSE_DESCRIPTOR_TYPE_BLOCK_COMMAND
_In_ UCHAR _Out_opt_ PUCHAR _Out_opt_ PUCHAR _Out_opt_ PUCHAR AdditionalSenseCodeQualifier
struct _MODE_DISCONNECT_PAGE * PMODE_DISCONNECT_PAGE
struct _TRACK_INFORMATION3 TRACK_INFORMATION3
struct _PRI_REGISTRATION_LIST PRI_REGISTRATION_LIST
struct _VPD_BLOCK_LIMITS_PAGE VPD_BLOCK_LIMITS_PAGE
enum _OPERATION_STATUS OPERATION_STATUS
_In_ UCHAR SenseInfoBufferLength
struct _AUDIO_OUTPUT AUDIO_OUTPUT
_In_ UCHAR _Out_ UCHAR * TotalByteCountIndicated
struct _VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE
struct RECEIVE_TOKEN_INFORMATION_HEADER * PRECEIVE_TOKEN_INFORMATION_HEADER
struct _SCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN * PSCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN
struct _CDAUDIO_CONTROL_PAGE * PCDAUDIO_CONTROL_PAGE
struct _NOTIFICATION_EVENT_STATUS_HEADER * PNOTIFICATION_EVENT_STATUS_HEADER
struct _POWER_CONDITION_PAGE POWER_CONDITION_PAGE
struct _WINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR * PWINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR
struct _READ_DVD_STRUCTURES_HEADER READ_DVD_STRUCTURES_HEADER
struct _LOG_PARAMETER_HEADER * PLOG_PARAMETER_HEADER
struct _MODE_INFO_EXCEPTIONS MODE_INFO_EXCEPTIONS
struct _CDVD_INACTIVITY_TIMEOUT_PAGE CDVD_INACTIVITY_TIMEOUT_PAGE
#define STOR_ADDRESS_TYPE_BTL8
struct _TRACK_INFORMATION TRACK_INFORMATION
struct _READ_CAPACITY_DATA_EX * PREAD_CAPACITY_DATA_EX
struct _LBA_STATUS_DESCRIPTOR * PLBA_STATUS_DESCRIPTOR
struct _NOTIFICATION_BUSY_STATUS NOTIFICATION_BUSY_STATUS
struct _PERFORMANCE_DESCRIPTOR * PPERFORMANCE_DESCRIPTOR
struct _NOTIFICATION_MEDIA_STATUS * PNOTIFICATION_MEDIA_STATUS
struct _TRACK_INFORMATION2 TRACK_INFORMATION2
struct _CDVD_CAPABILITIES_PAGE * PCDVD_CAPABILITIES_PAGE
struct STOR_ADDRESS_ALIGN _STOR_ADDR_BTL8 STOR_ADDR_BTL8
_In_ UCHAR _In_ UCHAR OutBufferLength
PFIXED_SENSE_DATA senseInfoBuffer
struct _SENSE_DATA * PFIXED_SENSE_DATA
struct _VPD_MEDIA_SERIAL_NUMBER_PAGE * PVPD_MEDIA_SERIAL_NUMBER_PAGE
struct _SCSI_SENSE_DESCRIPTOR_INFORMATION * PSCSI_SENSE_DESCRIPTOR_INFORMATION
enum _TRANSFER_COUNT_UNITS * PTRANSFER_COUNT_UNITS
@ OPERATION_IN_PROGRESS_IN_FOREGROUND
@ OPERATION_IN_PROGRESS_IN_BACKGROUND
@ OPERATION_COMPLETED_WITH_SUCCESS
@ OPERATION_COMPLETED_WITH_ERROR
@ OPERATION_COMPLETED_WITH_RESIDUAL_DATA
struct _FORMAT_DESCRIPTOR FORMAT_DESCRIPTOR
#define STOR_ADDRESS_ALIGN
struct _MODE_FORMAT_PAGE MODE_FORMAT_PAGE
#define SCSI_SENSE_ERRORCODE_FIXED_DEFERRED
struct _TAPE_POSITION_DATA TAPE_POSITION_DATA
struct _LOG_PARAMETER LOG_PARAMETER
struct _PRI_RESERVATION_DESCRIPTOR * PPRI_RESERVATION_DESCRIPTOR
@ VpdIdentifierTypeSCSINameString
@ VpdIdentifierTypeVendorId
@ VpdIdentifierTypeMD5LogicalUnitId
@ VpdIdentifierTypeTargetPortGroup
@ VpdIdentifierTypeLogicalUnitGroup
@ VpdIdentifierTypeFCPHName
@ VpdIdentifierTypePortRelative
@ VpdIdentifierTypeVendorSpecific
struct _NOTIFICATION_BUSY_STATUS * PNOTIFICATION_BUSY_STATUS
enum _VPD_ASSOCIATION * PVPD_ASSOCIATION
enum _TRANSFER_COUNT_UNITS TRANSFER_COUNT_UNITS
struct _UNMAP_BLOCK_DESCRIPTOR * PUNMAP_BLOCK_DESCRIPTOR
struct RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER * PRECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER
struct _PRO_PARAMETER_LIST PRO_PARAMETER_LIST
struct _MODE_CONTROL_PAGE MODE_CONTROL_PAGE
enum _OPERATION_STATUS * POPERATION_STATUS
enum _VPD_CODE_SET * PVPD_CODE_SET
struct _DISK_INFORMATION DISK_INFORMATION
_In_ UCHAR _In_ ULONG TypeListCount
struct _PRI_RESERVATION_DESCRIPTOR PRI_RESERVATION_DESCRIPTOR
struct _CDDA_OUTPUT_PORT * PCDDA_OUTPUT_PORT
struct _NOTIFICATION_MULTI_HOST_STATUS * PNOTIFICATION_MULTI_HOST_STATUS
struct _MODE_RIGID_GEOMETRY_PAGE * PMODE_RIGID_GEOMETRY_PAGE
_In_ UCHAR _Outptr_result_bytebuffer_ DescriptorBufferLength PVOID _Out_ UCHAR * DescriptorBufferLength
struct _VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE * PVPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE
_In_ UCHAR _Out_opt_ PUCHAR _Out_opt_ PUCHAR AdditionalSenseCode
struct _TAPE_POSITION_DATA * PTAPE_POSITION_DATA
PFIXED_SENSE_DATA outBuffer
struct _LOG_PARAMETER * PLOG_PARAMETER
struct _SCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND SCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND
struct _SCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND * PSCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND
#define STOR_ADDR_BTL8_ADDRESS_LENGTH
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE2 * PMODE_CDROM_WRITE_PARAMETERS_PAGE2
enum _VPD_ASSOCIATION VPD_ASSOCIATION
struct _NOTIFICATION_EVENT_STATUS_HEADER NOTIFICATION_EVENT_STATUS_HEADER
struct _LBA_STATUS_DESCRIPTOR LBA_STATUS_DESCRIPTOR
@ TRANSFER_COUNT_UNITS_PEBIBYTES
@ TRANSFER_COUNT_UNITS_GIBIBYTES
@ TRANSFER_COUNT_UNITS_KIBIBYTES
@ TRANSFER_COUNT_UNITS_NUMBER_BLOCKS
@ TRANSFER_COUNT_UNITS_TEBIBYTES
@ TRANSFER_COUNT_UNITS_EXBIBYTES
@ TRANSFER_COUNT_UNITS_MEBIBYTES
@ TRANSFER_COUNT_UNITS_BYTES
struct _SCSI_SENSE_DESCRIPTOR_HEADER * PSCSI_SENSE_DESCRIPTOR_HEADER
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS STOR_ADDRESS
_In_ UCHAR _Out_opt_ PUCHAR SenseKey
_In_ UCHAR _Outptr_result_bytebuffer_ DescriptorBufferLength PVOID * DescriptorBuffer
struct _VPD_IDENTIFICATION_DESCRIPTOR VPD_IDENTIFICATION_DESCRIPTOR
struct _DISC_INFORMATION * PDISC_INFORMATION
struct _OPC_TABLE_ENTRY OPC_TABLE_ENTRY
struct _AUDIO_OUTPUT * PAUDIO_OUTPUT
struct _TRACK_INFORMATION3 * PTRACK_INFORMATION3
#define MAX_SENSE_BUFFER_SIZE
struct _FORMAT_DESCRIPTOR * PFORMAT_DESCRIPTOR
struct _CDDA_OUTPUT_PORT CDDA_OUTPUT_PORT
struct _MODE_FORMAT_PAGE * PMODE_FORMAT_PAGE
struct _CDVD_INACTIVITY_TIMEOUT_PAGE * PCDVD_INACTIVITY_TIMEOUT_PAGE
struct _VPD_LOGICAL_BLOCK_PROVISIONING_PAGE VPD_LOGICAL_BLOCK_PROVISIONING_PAGE
#define SCSI_SENSE_OPTIONS_NONE
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE * PMODE_CDROM_WRITE_PARAMETERS_PAGE
struct _DISC_INFORMATION DISC_INFORMATION
struct _CDVD_CAPABILITIES_PAGE CDVD_CAPABILITIES_PAGE
struct _DATA_BLOCK_HEADER * PDATA_BLOCK_HEADER
enum _VPD_IDENTIFIER_TYPE * PVPD_IDENTIFIER_TYPE
struct _VPD_THIRD_PARTY_COPY_PAGE VPD_THIRD_PARTY_COPY_PAGE
struct _LBA_STATUS_LIST_HEADER * PLBA_STATUS_LIST_HEADER
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS * PSTOR_ADDRESS
struct _NOTIFICATION_EXTERNAL_STATUS NOTIFICATION_EXTERNAL_STATUS
struct _NOTIFICATION_OPERATIONAL_STATUS NOTIFICATION_OPERATIONAL_STATUS
#define IsDescriptorSenseDataFormat(SenseInfoBuffer)
struct _PRI_REGISTRATION_LIST * PPRI_REGISTRATION_LIST
struct _DESCRIPTOR_SENSE_DATA DESCRIPTOR_SENSE_DATA
UCHAR LogicalBlocksPerSecond[2]
PORT_OUTPUT PortOutput[4]
UCHAR StopOnTrackCrossing
CDDA_OUTPUT_PORT CDDAOutputPorts[4]
UCHAR CommandUniqueBytes[3]
UCHAR EnableVitalProductData
UCHAR VerificationLength[3]
UCHAR Destination2ElementAddress[2]
UCHAR TransportElementAddress[2]
UCHAR SourceElementAddress[2]
UCHAR Destination1ElementAddress[2]
UCHAR AllocationLength[2]
UCHAR NotificationClassRequest
UCHAR AllocationLength[4]
UCHAR FirstElementAddress[2]
UCHAR NumberOfElements[2]
UCHAR LogicalBlockAddress[4]
UCHAR ParameterListLength[2]
UCHAR ParameterPointer[2]
UCHAR AllocationLength[2]
UCHAR AllocationLength[2]
UCHAR ParameterListLength[2]
UCHAR ParameterListLength
UCHAR AllocationLength[2]
UCHAR DestinationElementAddress[2]
UCHAR SourceElementAddress[2]
UCHAR TransportElementAddress[2]
UCHAR AllocationLength[2]
UCHAR ParameterListLength[2]
UCHAR StartingBlockAddress[4]
struct _CDB::_PLAY_CD::@2187::_MSF MSF
_ANONYMOUS_UNION union _CDB::_PLAY_CD::@2187 DUMMYUNIONNAME
struct _CDB::_PLAY_CD::@2187::_LBA LBA
UCHAR TransportElementAddress[2]
UCHAR DestinationElementAddress[2]
UCHAR AllocationLength[2]
UCHAR AllocationLength[4]
UCHAR SubChannelSelection
UCHAR SubChannelSelection
UCHAR AllocationLength[2]
UCHAR StartingElementAddress[2]
UCHAR NumberOfElements[2]
UCHAR AllocationLength[3]
UCHAR AllocationLength[2]
UCHAR LogicalBlockAddress[4]
UCHAR AllocationLength[2]
UCHAR AllocationLength[4]
UCHAR StartingElementAddress[2]
UCHAR AllocationLength[3]
UCHAR LogicalBlockAddress[4]
UCHAR ParameterListLength[2]
UCHAR ParameterListLength[2]
UCHAR StartingElementAddress[2]
UCHAR ParameterListLength[2]
_ANONYMOUS_STRUCT struct _CDB::_SET_CD_SPEED::@2190::@2191 DUMMYSTRUCTNAME
_ANONYMOUS_UNION union _CDB::_SET_CD_SPEED::@2190 DUMMYUNIONNAME
UCHAR ParameterListLength[2]
union _CDB::_SPACE_TAPE_MARKS::@2188 Byte6
struct _CDB::_SPACE_TAPE_MARKS::@2188::@2189 Fields
UCHAR AllocationLength[2]
UCHAR LogicalBlockAddress[4]
UCHAR ParameterListLength[4]
UCHAR AllocationLength[2]
UCHAR VerificationLength[4]
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2214 DUMMYUNIONNAME4
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2211 DUMMYUNIONNAME
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2212 DUMMYUNIONNAME2
UCHAR CopyManagementRevision[2]
UCHAR ReadSpeedCurrent[2]
UCHAR ReadSpeedMaximum[2]
UCHAR WriteSpeedMaximum[2]
UCHAR ObsoleteReserved[2]
UCHAR ObsoleteReserved4[2]
UCHAR LoadingMechanismType
UCHAR WriteSpeedCurrent[2]
UCHAR NumberVolumeLevels[2]
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2213 DUMMYUNIONNAME3
UCHAR ObsoleteReserved2[2]
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2215 DUMMYUNIONNAME5
UCHAR SeperateChannelMute
UCHAR SupportsDiskPresent
UCHAR ObsoleteReserved11[2]
UCHAR ChallengeKeyValue[10]
UCHAR EventStatusNotification[2]
UCHAR CDSequentialRecordable[2]
UCHAR DVDSequentialRecordable[2]
UCHAR RandomRecordable[2]
UCHAR PersistantPrevent[2]
UCHAR GroupTwoMinimumTimeout[2]
UCHAR GroupOneMinimumTimeout[2]
UCHAR AdditionalSenseLength
UCHAR DescriptorBuffer[ANYSIZE_ARRAY]
UCHAR AdditionalSenseCodeQualifier
UCHAR AdditionalSenseCode
_ANONYMOUS_STRUCT struct _FOUR_BYTE::@2223 DUMMYSTRUCTNAME
UCHAR ProductRevisionLevel[4]
_ANONYMOUS_STRUCT struct _INQUIRYDATA::@2199::@2200 DUMMYSTRUCTNAME
UCHAR DeviceTypeQualifier
_ANONYMOUS_UNION union _INQUIRYDATA::@2199 DUMMYUNIONNAME
LOG_PARAMETER_HEADER Header
UCHAR AdditionalSenseCodeQualifier
struct _LOG_PARAMETER::@2220::_SELF_TEST_RESULTS SELF_TEST_RESULTS
struct _LOG_PARAMETER::@2220::_INFORMATIONAL_EXCEPTIONS INFORMATIONAL_EXCEPTIONS
UCHAR AdditionalSenseCode
struct _LOG_PARAMETER::@2220::_SOLID_STATE_MEDIA SOLID_STATE_MEDIA
UCHAR MostRecentTemperature
struct _LOG_PARAMETER::@2220::_THRESHOLD_RESOURCE_COUNT THRESHOLD_RESOURCE_COUNT
LOG_PARAMETER_HEADER Header
struct _LOG_PARAMETER::@2220::_TEMPERATURE TEMPERATURE
struct _LOG_PARAMETER::@2220::_DATE_OF_MANUFACTURE DATE_OF_MANUFACTURE
struct _LOG_PARAMETER::@2220::_BACKGROUND_SCAN_STATUS BACKGROUND_SCAN_STATUS
MECHANICAL_STATUS_INFORMATION_HEADER MechanicalStatusHeader
SLOT_TABLE_INFORMATION SlotTableInfo[1]
UCHAR MultiplicationFactor
UCHAR WriteRetensionPriority
UCHAR ReadRetensionPriority
UCHAR MaximumPrefetchCeiling[2]
UCHAR DisablePrefetchTransfer[2]
UCHAR BufferUnderrunFreeEnabled
UCHAR MediaCatalogNumber[16]
UCHAR AudioPauseLength[2]
UCHAR HostApplicationCode
UCHAR MediaCatalogNumberZero
UCHAR ISRCRecordingYear[2]
UCHAR MediaCatalogNumberAFrame
UCHAR MediaCatalogNumberValid
UCHAR HostApplicationCode
UCHAR ISRCSerialNumber[5]
UCHAR MediaCatalogNumber[13]
UCHAR BufferUnderrunFreeEnabled
UCHAR AudioPauseLength[2]
UCHAR ExtendeSelfTestCompletionTime[2]
UCHAR BusyTimeoutPeriod[2]
UCHAR QueueAlgorithmModifier
UCHAR BusDisconnectTime[2]
UCHAR DataTransferDisconnect
UCHAR MaximumBurstSize[2]
UCHAR BusInactivityLimit[2]
UCHAR StepPlusePerCyclynder
UCHAR StartWritePrecom[2]
UCHAR StartReducedCurrent[2]
UCHAR NumberOfCylinders[2]
UCHAR MediumRotationRate[2]
UCHAR HardSectorFormating
UCHAR AlternateSectorsPerZone[2]
UCHAR BytesPerPhysicalSector[2]
UCHAR CylinderSkewFactor[2]
UCHAR AlternateTracksPerZone[2]
UCHAR AlternateTracksPerLogicalUnit[2]
UCHAR SoftSectorFormating
_ANONYMOUS_UNION union _MODE_INFO_EXCEPTIONS::@2209 DUMMYUNIONNAME
_ANONYMOUS_STRUCT struct _MODE_INFO_EXCEPTIONS::@2209::@2210 DUMMYSTRUCTNAME
MODE_PARAMETER_HEADER ParameterListHeader
MODE_PARAMETER_BLOCK ParameterListBlock
UCHAR NumberOfCylinders[3]
UCHAR StartWritePrecom[3]
UCHAR RotationalPositionLock
UCHAR StartReducedCurrent[3]
UCHAR LandZoneCyclinder[3]
UCHAR PersistentPrevented
UCHAR PersistentPrevented
UCHAR PersistentPrevented
UCHAR ReservationKeyList[0][8]
UCHAR AdditionalLength[4]
UCHAR ScopeSpecificAddress[4]
UCHAR AdditionalLength[4]
PRI_RESERVATION_DESCRIPTOR Reservations[0]
UCHAR ActivatePersistThroughPowerLoss
UCHAR ServiceActionReservationKey[8]
UCHAR ScopeSpecificAddress[4]
UCHAR BlockMinimumSize[2]
UCHAR BlockMaximumSize[3]
UCHAR AvailableBufferSize[4]
UCHAR ProtectionInfoExponent
UCHAR LogicalPerPhysicalExponent
UCHAR LowestAlignedBlock_MSB
UCHAR LowestAlignedBlock_LSB
LARGE_INTEGER LogicalBlockAddress
LARGE_INTEGER LogicalBlockAddress
ULONG LogicalBlockAddress
union _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS ExtendedArguments
SCSI_SENSE_DESCRIPTOR_HEADER Header
SCSI_SENSE_DESCRIPTOR_HEADER Header
UCHAR AdditionalSenseLength
UCHAR AdditionalSenseCode
UCHAR FieldReplaceableUnitCode
UCHAR SenseKeySpecific[3]
UCHAR AdditionalSenseCodeQualifier
UCHAR CommandSpecificInformation[4]
_Field_size_bytes_(AddressLength) UCHAR AddressData[ANYSIZE_ARRAY]
_Field_range_(STOR_ADDRESS_TYPE_BTL8, STOR_ADDRESS_TYPE_BTL8) USHORT Type
_Field_range_(STOR_ADDR_BTL8_ADDRESS_LENGTH, STOR_ADDR_BTL8_ADDRESS_LENGTH) ULONG AddressLength
UCHAR BeginningOfPartition
UCHAR BlockPositionUnsupported
UCHAR ProductRevisionLevel[4]
UCHAR DeviceTypeQualifier
UCHAR IdentifyDeviceData[512]
UCHAR DeviceSignature[20]
UCHAR MediumRotationRateLsb
UCHAR DeviceTypeQualifier
UCHAR DepopulationTime[4]
UCHAR MediumRotationRateMsb
UCHAR MaximumTransferLength[4]
UCHAR UnmapGranularityAlignmentByte2
UCHAR OptimalUnmapGranularity[4]
UCHAR OptimalTransferLengthGranularity[2]
UCHAR MaximumUnmapLBACount[4]
UCHAR UnmapGranularityAlignmentByte3
UCHAR OptimalTransferLength[4]
UCHAR MaximumUnmapBlockDescriptorCount[4]
UCHAR DeviceTypeQualifier
UCHAR UnmapGranularityAlignmentByte1
UCHAR MaximumCompareAndWriteLength
UCHAR MaxPrefetchXDReadXDWriteTransferLength[4]
UCHAR UnmapGranularityAlignmentByte0
UCHAR UnmapGranularityAlignment[4]
UCHAR DeviceTypeQualifier
UCHAR DeviceTypeQualifier
UCHAR ProvisioningGroupDescr[0]
UCHAR DeviceTypeQualifier
UCHAR DeviceTypeQualifier
UCHAR DeviceTypeQualifier
UCHAR SupportedPageList[0]
UCHAR DeviceTypeQualifier
UCHAR ThirdPartyCopyDescriptors[ANYSIZE_ARRAY]
UCHAR DeviceTypeQualifier
UCHAR OptimalNumberOfOpenSequentialWritePreferredZone[4]
UCHAR MaxNumberOfOpenSequentialWriteRequiredZone[4]
UCHAR OptimalNumberOfNonSequentiallyWrittenSequentialWritePreferredZone[4]
UCHAR DescriptorLength[2]
UCHAR MaximumTokenTransferSize[8]
UCHAR MaximumInactivityTimer[4]
UCHAR MaximumRangeDescriptors[2]
UCHAR OptimalTransferCount[8]
UCHAR DefaultInactivityTimer[4]
#define RtlZeroMemory(Destination, Length)
struct _CDB::_CDB10 CDB10
struct _CDB::_READ_BUFFER_CAPACITY READ_BUFFER_CAPACITY
struct _CDB::_REPORT_KEY * PREPORT_KEY
struct _CDB::_LOCATE * PLOCATE
struct _CDB::_PERSISTENT_RESERVE_OUT PERSISTENT_RESERVE_OUT
struct _CDB::_READ_HEADER * PREAD_HEADER
struct _CDB::_MEDIA_REMOVAL MEDIA_REMOVAL
struct _CDB::_CDB6READWRITETAPE * PCDB6READWRITETAPE
struct _CDB::_PRINT * PPRINT
struct _CDB::_SYNCHRONIZE_CACHE10 * PSYNCHRONIZE_CACHE10
struct _CDB::_CDB12 * PCDB12
struct _CDB::_BLANK_MEDIA * PBLANK_MEDIA
struct _CDB::_INITIALIZE_ELEMENT_RANGE * PINITIALIZE_ELEMENT_RANGE
struct _CDB::_READ_TOC * PREAD_TOC
struct _CDB::_SET_READ_AHEAD * PSET_READ_AHEAD
struct _CDB::_PLAY_AUDIO_MSF * PPLAY_AUDIO_MSF
struct _CDB::_PERSISTENT_RESERVE_IN PERSISTENT_RESERVE_IN
struct _CDB::_SCAN_CD * PSCAN_CD
struct _CDB::_READ_HEADER READ_HEADER
struct _CDB::_SUBCHANNEL SUBCHANNEL
struct _CDB::_PLAY_CD PLAY_CD
struct _CDB::_SUBCHANNEL * PSUBCHANNEL
struct _CDB::_READ_FORMATTED_CAPACITIES * PREAD_FORMATTED_CAPACITIES
struct _CDB::_PAUSE_RESUME * PPAUSE_RESUME
struct _CDB::_REPORT_LUNS * PREPORT_LUNS
struct _CDB::_READ_TRACK_INFORMATION READ_TRACK_INFORMATION
struct _CDB::_READ_CAPACITY16 READ_CAPACITY16
struct _CDB::_READ_DISK_INFORMATION * PREAD_DISK_INFORMATION
struct _CDB::_MODE_SELECT MODE_SELECT
struct _CDB::_LOGSELECT LOGSELECT
struct _CDB::_INITIALIZE_ELEMENT_RANGE INITIALIZE_ELEMENT_RANGE
struct _CDB::_LOGSELECT * PLOGSELECT
struct _CDB::_CDB6VERIFY * PCDB6VERIFY
struct _CDB::_READ_ELEMENT_STATUS * PREAD_ELEMENT_STATUS
struct _CDB::_MECH_STATUS MECH_STATUS
struct _CDB::_SEND_KEY * PSEND_KEY
struct _CDB::_CDB10 * PCDB10
struct _CDB::_REPAIR_TRACK * PREPAIR_TRACK
struct _CDB::_CDB6INQUIRY3 CDB6INQUIRY3
struct _CDB::_POSITION_TO_ELEMENT * PPOSITION_TO_ELEMENT
struct _CDB::_WRITE_TAPE_MARKS WRITE_TAPE_MARKS
struct _CDB::_SEND_CUE_SHEET * PSEND_CUE_SHEET
struct _CDB::_CDB6GENERIC CDB6GENERIC
struct _CDB::_READ_DVD_STRUCTURE READ_DVD_STRUCTURE
struct _CDB::_RESERVE_TRACK_RZONE RESERVE_TRACK_RZONE
struct _CDB::_TOKEN_OPERATION TOKEN_OPERATION
struct _CDB::_CDB6VERIFY CDB6VERIFY
struct _CDB::_UNMAP UNMAP
struct _CDB::_GET_EVENT_STATUS_NOTIFICATION GET_EVENT_STATUS_NOTIFICATION
struct _CDB::_READ_BUFFER_CAPACITY * PREAD_BUFFER_CAPACITY
struct _CDB::_SEND_DVD_STRUCTURE SEND_DVD_STRUCTURE
struct _CDB::_SEEK_BLOCK * PSEEK_BLOCK
struct _CDB::_ERASE * PERASE
struct _CDB::_PARTITION PARTITION
struct _CDB::_MODE_SENSE10 MODE_SENSE10
struct _CDB::_LOCATE LOCATE
struct _CDB::_NEC_READ_CDDA NEC_READ_CDDA
struct _CDB::_LOGSENSE LOGSENSE
struct _CDB::_SEND_OPC_INFORMATION SEND_OPC_INFORMATION
struct _CDB::_READ_CD READ_CD
struct _CDB::_EXCHANGE_MEDIUM EXCHANGE_MEDIUM
struct _CDB::_READ_POSITION * PREAD_POSITION
struct _CDB::_SET_READ_AHEAD SET_READ_AHEAD
struct _CDB::_CDB16 * PCDB16
struct _CDB::_CDB12 CDB12
struct _CDB::_SEND_KEY SEND_KEY
struct _CDB::_ERASE ERASE
struct _CDB::_REQUEST_BLOCK_ADDRESS * PREQUEST_BLOCK_ADDRESS
struct _CDB::_LOGSENSE * PLOGSENSE
struct _CDB::_VERIFY16 VERIFY16
struct _CDB::_READ_DVD_STRUCTURE * PREAD_DVD_STRUCTURE
struct _CDB::_WRITE16 WRITE16
struct _CDB::_PLXTR_READ_CDDA PLXTR_READ_CDDA
struct _CDB::_PRINT PRINT
struct _CDB::_READ_CD * PREAD_CD
struct _CDB::_MECH_STATUS * PMECH_STATUS
struct _CDB::_CDB6READWRITE * PCDB6READWRITE
struct _CDB::_STOP_PLAY_SCAN STOP_PLAY_SCAN
struct _CDB::_LOAD_UNLOAD LOAD_UNLOAD
struct _CDB::_REQUEST_VOLUME_ELEMENT_ADDRESS REQUEST_VOLUME_ELEMENT_ADDRESS
struct _CDB::_READ16 READ16
struct _CDB::_CDB6INQUIRY CDB6INQUIRY
struct _CDB::_CDB6FORMAT * PCDB6FORMAT
struct _CDB::_READ_TRACK_INFORMATION * PREAD_TRACK_INFORMATION
struct _CDB::_NEC_READ_CDDA * PNEC_READ_CDDA
struct _CDB::_SEND_VOLUME_TAG SEND_VOLUME_TAG
struct _CDB::_RESERVE_TRACK_RZONE * PRESERVE_TRACK_RZONE
struct _CDB::_GET_CONFIGURATION GET_CONFIGURATION
struct _CDB::_MODE_SENSE * PMODE_SENSE
struct _CDB::_PERSISTENT_RESERVE_IN * PPERSISTENT_RESERVE_IN
struct _CDB::_GET_EVENT_STATUS_NOTIFICATION * PGET_EVENT_STATUS_NOTIFICATION
struct _CDB::_LOAD_UNLOAD * PLOAD_UNLOAD
struct _CDB::_CDB6GENERIC * PCDB6GENERIC
struct _CDB::_CDB6INQUIRY3 * PCDB6INQUIRY3
struct _CDB::_PARTITION * PPARTITION
struct _CDB::_MODE_SENSE10 * PMODE_SENSE10
struct _CDB::_GET_LBA_STATUS GET_LBA_STATUS
struct _CDB::_SET_CD_SPEED * PSET_CD_SPEED
struct _CDB::_SEND_OPC_INFORMATION * PSEND_OPC_INFORMATION
struct _CDB::_CDB6FORMAT CDB6FORMAT
struct _CDB::_READ_FORMATTED_CAPACITIES READ_FORMATTED_CAPACITIES
struct _CDB::_PLAY_CD * PPLAY_CD
struct _CDB::_READ_DISK_INFORMATION READ_DISK_INFORMATION
struct _CDB::_READ12 READ12
struct _CDB::_STOP_PLAY_SCAN * PSTOP_PLAY_SCAN
struct _CDB::_START_STOP START_STOP
struct _CDB::_START_STOP * PSTART_STOP
struct _CDB::_SEEK_BLOCK SEEK_BLOCK
struct _CDB::_SET_CD_SPEED SET_CD_SPEED
struct _CDB::_CDB6READWRITETAPE CDB6READWRITETAPE
struct _CDB::_SEND_CUE_SHEET SEND_CUE_SHEET
struct _CDB::_CLOSE_TRACK CLOSE_TRACK
struct _CDB::_REPORT_KEY REPORT_KEY
struct _CDB::_MODE_SELECT * PMODE_SELECT
struct _CDB::_INIT_ELEMENT_STATUS INIT_ELEMENT_STATUS
struct _CDB::_SEND_VOLUME_TAG * PSEND_VOLUME_TAG
struct _CDB::_READ_CD_MSF READ_CD_MSF
struct _CDB::_MOVE_MEDIUM * PMOVE_MEDIUM
struct _CDB::_SPACE_TAPE_MARKS SPACE_TAPE_MARKS
struct _CDB::_MODE_SELECT10 MODE_SELECT10
struct _CDB::_PAUSE_RESUME PAUSE_RESUME
struct _CDB::_MODE_SENSE MODE_SENSE
struct _CDB::_SYNCHRONIZE_CACHE16 SYNCHRONIZE_CACHE16
struct _CDB::_PLAY_AUDIO * PPLAY_AUDIO
struct _CDB::_PLAY_AUDIO PLAY_AUDIO
struct _CDB::_CLOSE_TRACK * PCLOSE_TRACK
struct _CDB::_CDB6INQUIRY * PCDB6INQUIRY
struct _CDB::_WRITE_TAPE_MARKS * PWRITE_TAPE_MARKS
struct _CDB::_WRITE12 WRITE12
struct _CDB::_SCAN_CD SCAN_CD
struct _CDB::_MODE_SELECT10 * PMODE_SELECT10
struct _CDB::_RECEIVE_TOKEN_INFORMATION RECEIVE_TOKEN_INFORMATION
struct _CDB::_READ_POSITION READ_POSITION
struct _CDB::_BLANK_MEDIA BLANK_MEDIA
struct _CDB::_PERSISTENT_RESERVE_OUT * PPERSISTENT_RESERVE_OUT
struct _CDB::_REQUEST_BLOCK_ADDRESS REQUEST_BLOCK_ADDRESS
struct _CDB::_REQUEST_VOLUME_ELEMENT_ADDRESS * PREQUEST_VOLUME_ELEMENT_ADDRESS
struct _CDB::_REPORT_LUNS REPORT_LUNS
struct _CDB::_CDB16 CDB16
struct _CDB::_MOVE_MEDIUM MOVE_MEDIUM
struct _CDB::_PLAY_AUDIO_MSF PLAY_AUDIO_MSF
struct _CDB::_GET_PERFORMANCE GET_PERFORMANCE
struct _CDB::_EXCHANGE_MEDIUM * PEXCHANGE_MEDIUM
struct _CDB::_SPACE_TAPE_MARKS * PSPACE_TAPE_MARKS
struct _CDB::_POSITION_TO_ELEMENT POSITION_TO_ELEMENT
struct _CDB::_SEEK * PSEEK
struct _CDB::_READ_CD_MSF * PREAD_CD_MSF
struct _CDB::_SEND_DVD_STRUCTURE * PSEND_DVD_STRUCTURE
struct _CDB::_READ_ELEMENT_STATUS READ_ELEMENT_STATUS
struct _CDB::_SYNCHRONIZE_CACHE10 SYNCHRONIZE_CACHE10
struct _CDB::_PLXTR_READ_CDDA * PPLXTR_READ_CDDA
struct _CDB::_CDB6READWRITE CDB6READWRITE
struct _CDB::_SET_STREAMING SET_STREAMING
struct _CDB::_READ_TOC READ_TOC
struct _CDB::_INIT_ELEMENT_STATUS * PINIT_ELEMENT_STATUS
struct _CDB::_MEDIA_REMOVAL * PMEDIA_REMOVAL
struct _CDB::_GET_CONFIGURATION * PGET_CONFIGURATION
struct _CDB::_REPAIR_TRACK REPAIR_TRACK
_ANONYMOUS_STRUCT struct _EIGHT_BYTE::@2222 DUMMYSTRUCTNAME
struct _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS::@810 Modify
struct _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS::@811 Synchronous
struct _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS::@812 Wide
FIXED_SENSE_DATA FixedData
DESCRIPTOR_SENSE_DATA DescriptorData
_ANONYMOUS_STRUCT struct _TWO_BYTE::@2224 DUMMYSTRUCTNAME
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
_Must_inspect_result_ _In_ WDFQUEUE _In_opt_ WDFREQUEST _In_opt_ WDFFILEOBJECT _Inout_opt_ PWDF_REQUEST_PARAMETERS Parameters
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
_Reserved_ PVOID Reserved