ReactOS 0.4.17-dev-1344-g1103f43
storport.h
Go to the documentation of this file.
1/*
2 * storport.h
3 *
4 * StorPort interface
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23#ifdef _NTSCSI_
24 #error STORPORT.H must be included instead of SCSI.H
25#endif
26
27#ifdef _NTSRB_
28 #error STORPORT.H must be included instead of SRB.H
29#endif
30
31#ifndef _NTSTORPORT_
32#define _NTSTORPORT_
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38//
39// Common definitions with SRB.H
40//
41
42/* NOTE: the current SCSI_MAXIMUM_TARGETS_PER_BUS is applicable
43 * only on scsiport miniports. For storport miniports, the max
44 * target supported is 255. */
45#if (NTDDI_VERSION >= NTDDI_WIN8)
46#define SCSI_MAXIMUM_BUSES_PER_ADAPTER 255
47#endif
48#define SCSI_MAXIMUM_TARGETS_PER_BUS 128
49#define SCSI_MAXIMUM_LUNS_PER_TARGET 255
50#define SCSI_MINIMUM_PHYSICAL_BREAKS 16
51#define SCSI_MAXIMUM_PHYSICAL_BREAKS 255
52
53/* These constants are for backward compatibility.
54 * They used to be the maximum supported. */
55#define SCSI_MAXIMUM_BUSES 8
56#define SCSI_MAXIMUM_TARGETS 8
57#define SCSI_MAXIMUM_LOGICAL_UNITS 8
58
59/* PORT_CONFIGURATION_INFORMATION.Dma64BitAddresses constants */
60#define SCSI_DMA64_MINIPORT_SUPPORTED 0x01
61#define SCSI_DMA64_SYSTEM_SUPPORTED 0x80
62#if (NTDDI_VERSION > NTDDI_WS03SP1)
63#define SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED 0x02
64#endif
65
66#define SP_UNINITIALIZED_VALUE ((ULONG) ~0)
67#define SP_UNTAGGED ((UCHAR) ~0)
68
69// End of common definitions with SRB.H
70
71
72#if defined(_STORPORT_)
73#define STORPORT_API
74#else
75#define STORPORT_API DECLSPEC_IMPORT
76#endif
77
78#define DIRECT_ACCESS_DEVICE 0x00
79#define SEQUENTIAL_ACCESS_DEVICE 0x01
80#define PRINTER_DEVICE 0x02
81#define PROCESSOR_DEVICE 0x03
82#define WRITE_ONCE_READ_MULTIPLE_DEVICE 0x04
83#define READ_ONLY_DIRECT_ACCESS_DEVICE 0x05
84#define SCANNER_DEVICE 0x06
85#define OPTICAL_DEVICE 0x07
86#define MEDIUM_CHANGER 0x08
87#define COMMUNICATION_DEVICE 0x09
88#define ARRAY_CONTROLLER_DEVICE 0x0C
89#define SCSI_ENCLOSURE_DEVICE 0x0D
90#define REDUCED_BLOCK_DEVICE 0x0E
91#define OPTICAL_CARD_READER_WRITER_DEVICE 0x0F
92#define BRIDGE_CONTROLLER_DEVICE 0x10
93#define OBJECT_BASED_STORAGE_DEVICE 0x11
94#define LOGICAL_UNIT_NOT_PRESENT_DEVICE 0x7F
95
96#define DEVICE_CONNECTED 0x00
97
98#define CDB6GENERIC_LENGTH 6
99#define CDB10GENERIC_LENGTH 10
100#define CDB12GENERIC_LENGTH 12
101
102#define INQUIRYDATABUFFERSIZE 36
103#define SENSE_BUFFER_SIZE 18
104#define MAX_SENSE_BUFFER_SIZE 255
105
106#define FILE_DEVICE_SCSI 0x0000001b
107#define IOCTL_SCSI_EXECUTE_IN ((FILE_DEVICE_SCSI << 16) + 0x0011)
108#define IOCTL_SCSI_EXECUTE_OUT ((FILE_DEVICE_SCSI << 16) + 0x0012)
109#define IOCTL_SCSI_EXECUTE_NONE ((FILE_DEVICE_SCSI << 16) + 0x0013)
110
111#define MODE_PAGE_VENDOR_SPECIFIC 0x00
112#define MODE_PAGE_ERROR_RECOVERY 0x01
113#define MODE_PAGE_DISCONNECT 0x02
114#define MODE_PAGE_FORMAT_DEVICE 0x03
115#define MODE_PAGE_MRW 0x03
116#define MODE_PAGE_RIGID_GEOMETRY 0x04
117#define MODE_PAGE_FLEXIBILE 0x05
118#define MODE_PAGE_WRITE_PARAMETERS 0x05
119#define MODE_PAGE_VERIFY_ERROR 0x07
120#define MODE_PAGE_CACHING 0x08
121#define MODE_PAGE_PERIPHERAL 0x09
122#define MODE_PAGE_CONTROL 0x0A
123#define MODE_PAGE_MEDIUM_TYPES 0x0B
124#define MODE_PAGE_NOTCH_PARTITION 0x0C
125#define MODE_PAGE_CD_AUDIO_CONTROL 0x0E
126#define MODE_PAGE_DATA_COMPRESS 0x0F
127#define MODE_PAGE_DEVICE_CONFIG 0x10
128#define MODE_PAGE_XOR_CONTROL 0x10
129#define MODE_PAGE_MEDIUM_PARTITION 0x11
130#define MODE_PAGE_ENCLOSURE_SERVICES_MANAGEMENT 0x14
131#define MODE_PAGE_EXTENDED 0x15
132#define MODE_PAGE_EXTENDED_DEVICE_SPECIFIC 0x16
133#define MODE_PAGE_CDVD_FEATURE_SET 0x18
134#define MODE_PAGE_PROTOCOL_SPECIFIC_LUN 0x18
135#define MODE_PAGE_PROTOCOL_SPECIFIC_PORT 0x19
136#define MODE_PAGE_POWER_CONDITION 0x1A
137#define MODE_PAGE_LUN_MAPPING 0x1B
138#define MODE_PAGE_FAULT_REPORTING 0x1C
139#define MODE_PAGE_CDVD_INACTIVITY 0x1D
140#define MODE_PAGE_ELEMENT_ADDRESS 0x1D
141#define MODE_PAGE_TRANSPORT_GEOMETRY 0x1E
142#define MODE_PAGE_DEVICE_CAPABILITIES 0x1F
143#define MODE_PAGE_CAPABILITIES 0x2A
144#define MODE_SENSE_RETURN_ALL 0x3F
145
146#define MODE_SENSE_CURRENT_VALUES 0x00
147#define MODE_SENSE_CHANGEABLE_VALUES 0x40
148#define MODE_SENSE_DEFAULT_VAULES 0x80
149#define MODE_SENSE_SAVED_VALUES 0xc0
150
151#define SCSIOP_TEST_UNIT_READY 0x00
152#define SCSIOP_REZERO_UNIT 0x01
153#define SCSIOP_REWIND 0x01
154#define SCSIOP_REQUEST_BLOCK_ADDR 0x02
155#define SCSIOP_REQUEST_SENSE 0x03
156#define SCSIOP_FORMAT_UNIT 0x04
157#define SCSIOP_READ_BLOCK_LIMITS 0x05
158#define SCSIOP_REASSIGN_BLOCKS 0x07
159#define SCSIOP_INIT_ELEMENT_STATUS 0x07
160#define SCSIOP_READ6 0x08
161#define SCSIOP_RECEIVE 0x08
162#define SCSIOP_WRITE6 0x0A
163#define SCSIOP_PRINT 0x0A
164#define SCSIOP_SEND 0x0A
165#define SCSIOP_SEEK6 0x0B
166#define SCSIOP_TRACK_SELECT 0x0B
167#define SCSIOP_SLEW_PRINT 0x0B
168#define SCSIOP_SET_CAPACITY 0x0B
169#define SCSIOP_SEEK_BLOCK 0x0C
170#define SCSIOP_PARTITION 0x0D
171#define SCSIOP_READ_REVERSE 0x0F
172#define SCSIOP_WRITE_FILEMARKS 0x10
173#define SCSIOP_FLUSH_BUFFER 0x10
174#define SCSIOP_SPACE 0x11
175#define SCSIOP_INQUIRY 0x12
176#define SCSIOP_VERIFY6 0x13
177#define SCSIOP_RECOVER_BUF_DATA 0x14
178#define SCSIOP_MODE_SELECT 0x15
179#define SCSIOP_RESERVE_UNIT 0x16
180#define SCSIOP_RELEASE_UNIT 0x17
181#define SCSIOP_COPY 0x18
182#define SCSIOP_ERASE 0x19
183#define SCSIOP_MODE_SENSE 0x1A
184#define SCSIOP_START_STOP_UNIT 0x1B
185#define SCSIOP_STOP_PRINT 0x1B
186#define SCSIOP_LOAD_UNLOAD 0x1B
187#define SCSIOP_RECEIVE_DIAGNOSTIC 0x1C
188#define SCSIOP_SEND_DIAGNOSTIC 0x1D
189#define SCSIOP_MEDIUM_REMOVAL 0x1E
190#define SCSIOP_READ_FORMATTED_CAPACITY 0x23
191#define SCSIOP_READ_CAPACITY 0x25
192#define SCSIOP_READ 0x28
193#define SCSIOP_WRITE 0x2A
194#define SCSIOP_SEEK 0x2B
195#define SCSIOP_LOCATE 0x2B
196#define SCSIOP_POSITION_TO_ELEMENT 0x2B
197#define SCSIOP_WRITE_VERIFY 0x2E
198#define SCSIOP_VERIFY 0x2F
199#define SCSIOP_SEARCH_DATA_HIGH 0x30
200#define SCSIOP_SEARCH_DATA_EQUAL 0x31
201#define SCSIOP_SEARCH_DATA_LOW 0x32
202#define SCSIOP_SET_LIMITS 0x33
203#define SCSIOP_READ_POSITION 0x34
204#define SCSIOP_SYNCHRONIZE_CACHE 0x35
205#define SCSIOP_COMPARE 0x39
206#define SCSIOP_COPY_COMPARE 0x3A
207#define SCSIOP_WRITE_DATA_BUFF 0x3B
208#define SCSIOP_READ_DATA_BUFF 0x3C
209#define SCSIOP_WRITE_LONG 0x3F
210#define SCSIOP_CHANGE_DEFINITION 0x40
211#define SCSIOP_WRITE_SAME 0x41
212#define SCSIOP_READ_SUB_CHANNEL 0x42
213#define SCSIOP_READ_TOC 0x43
214#define SCSIOP_READ_HEADER 0x44
215#define SCSIOP_REPORT_DENSITY_SUPPORT 0x44
216#define SCSIOP_PLAY_AUDIO 0x45
217#define SCSIOP_GET_CONFIGURATION 0x46
218#define SCSIOP_PLAY_AUDIO_MSF 0x47
219#define SCSIOP_PLAY_TRACK_INDEX 0x48
220#define SCSIOP_PLAY_TRACK_RELATIVE 0x49
221#define SCSIOP_GET_EVENT_STATUS 0x4A
222#define SCSIOP_PAUSE_RESUME 0x4B
223#define SCSIOP_LOG_SELECT 0x4C
224#define SCSIOP_LOG_SENSE 0x4D
225#define SCSIOP_STOP_PLAY_SCAN 0x4E
226#define SCSIOP_XDWRITE 0x50
227#define SCSIOP_XPWRITE 0x51
228#define SCSIOP_READ_DISK_INFORMATION 0x51
229#define SCSIOP_READ_DISC_INFORMATION 0x51
230#define SCSIOP_READ_TRACK_INFORMATION 0x52
231#define SCSIOP_XDWRITE_READ 0x53
232#define SCSIOP_RESERVE_TRACK_RZONE 0x53
233#define SCSIOP_SEND_OPC_INFORMATION 0x54
234#define SCSIOP_MODE_SELECT10 0x55
235#define SCSIOP_RESERVE_UNIT10 0x56
236#define SCSIOP_RESERVE_ELEMENT 0x56
237#define SCSIOP_RELEASE_UNIT10 0x57
238#define SCSIOP_RELEASE_ELEMENT 0x57
239#define SCSIOP_REPAIR_TRACK 0x58
240#define SCSIOP_MODE_SENSE10 0x5A
241#define SCSIOP_CLOSE_TRACK_SESSION 0x5B
242#define SCSIOP_READ_BUFFER_CAPACITY 0x5C
243#define SCSIOP_SEND_CUE_SHEET 0x5D
244#define SCSIOP_PERSISTENT_RESERVE_IN 0x5E
245#define SCSIOP_PERSISTENT_RESERVE_OUT 0x5F
246#define SCSIOP_XDWRITE_EXTENDED16 0x80
247#define SCSIOP_WRITE_FILEMARKS16 0x80
248#define SCSIOP_REBUILD16 0x81
249#define SCSIOP_READ_REVERSE16 0x81
250#define SCSIOP_REGENERATE16 0x82
251#define SCSIOP_EXTENDED_COPY 0x83
252#define SCSIOP_RECEIVE_COPY_RESULTS 0x84
253#define SCSIOP_ATA_PASSTHROUGH16 0x85
254#define SCSIOP_ACCESS_CONTROL_IN 0x86
255#define SCSIOP_ACCESS_CONTROL_OUT 0x87
256#define SCSIOP_READ16 0x88
257#define SCSIOP_WRITE16 0x8A
258#define SCSIOP_READ_ATTRIBUTES 0x8C
259#define SCSIOP_WRITE_ATTRIBUTES 0x8D
260#define SCSIOP_WRITE_VERIFY16 0x8E
261#define SCSIOP_VERIFY16 0x8F
262#define SCSIOP_PREFETCH16 0x90
263#define SCSIOP_SYNCHRONIZE_CACHE16 0x91
264#define SCSIOP_SPACE16 0x91
265#define SCSIOP_LOCK_UNLOCK_CACHE16 0x92
266#define SCSIOP_LOCATE16 0x92
267#define SCSIOP_WRITE_SAME16 0x93
268#define SCSIOP_ERASE16 0x93
269#define SCSIOP_READ_CAPACITY16 0x9E
270#define SCSIOP_SERVICE_ACTION_IN16 0x9E
271#define SCSIOP_SERVICE_ACTION_OUT16 0x9F
272#define SCSIOP_REPORT_LUNS 0xA0
273#define SCSIOP_BLANK 0xA1
274#define SCSIOP_ATA_PASSTHROUGH12 0xA1
275#define SCSIOP_SEND_EVENT 0xA2
276#define SCSIOP_SEND_KEY 0xA3
277#define SCSIOP_MAINTENANCE_IN 0xA3
278#define SCSIOP_REPORT_KEY 0xA4
279#define SCSIOP_MAINTENANCE_OUT 0xA4
280#define SCSIOP_MOVE_MEDIUM 0xA5
281#define SCSIOP_LOAD_UNLOAD_SLOT 0xA6
282#define SCSIOP_EXCHANGE_MEDIUM 0xA6
283#define SCSIOP_SET_READ_AHEAD 0xA7
284#define SCSIOP_MOVE_MEDIUM_ATTACHED 0xA7
285#define SCSIOP_READ12 0xA8
286#define SCSIOP_GET_MESSAGE 0xA8
287#define SCSIOP_SERVICE_ACTION_OUT12 0xA9
288#define SCSIOP_WRITE12 0xAA
289#define SCSIOP_SEND_MESSAGE 0xAB
290#define SCSIOP_SERVICE_ACTION_IN12 0xAB
291#define SCSIOP_GET_PERFORMANCE 0xAC
292#define SCSIOP_READ_DVD_STRUCTURE 0xAD
293#define SCSIOP_WRITE_VERIFY12 0xAE
294#define SCSIOP_VERIFY12 0xAF
295#define SCSIOP_SEARCH_DATA_HIGH12 0xB0
296#define SCSIOP_SEARCH_DATA_EQUAL12 0xB1
297#define SCSIOP_SEARCH_DATA_LOW12 0xB2
298#define SCSIOP_SET_LIMITS12 0xB3
299#define SCSIOP_READ_ELEMENT_STATUS_ATTACHED 0xB4
300#define SCSIOP_REQUEST_VOL_ELEMENT 0xB5
301#define SCSIOP_SEND_VOLUME_TAG 0xB6
302#define SCSIOP_SET_STREAMING 0xB6
303#define SCSIOP_READ_DEFECT_DATA 0xB7
304#define SCSIOP_READ_ELEMENT_STATUS 0xB8
305#define SCSIOP_READ_CD_MSF 0xB9
306#define SCSIOP_SCAN_CD 0xBA
307#define SCSIOP_REDUNDANCY_GROUP_IN 0xBA
308#define SCSIOP_SET_CD_SPEED 0xBB
309#define SCSIOP_REDUNDANCY_GROUP_OUT 0xBB
310#define SCSIOP_PLAY_CD 0xBC
311#define SCSIOP_SPARE_IN 0xBC
312#define SCSIOP_MECHANISM_STATUS 0xBD
313#define SCSIOP_SPARE_OUT 0xBD
314#define SCSIOP_READ_CD 0xBE
315#define SCSIOP_VOLUME_SET_IN 0xBE
316#define SCSIOP_SEND_DVD_STRUCTURE 0xBF
317#define SCSIOP_VOLUME_SET_OUT 0xBF
318#define SCSIOP_INIT_ELEMENT_RANGE 0xE7
319
320#define SCSIOP_UNMAP 0x42
321
322#define SCSIOP_SANITIZE 0x48
323
324#define SCSIOP_OPERATION32 0x7F
325
326#define SCSIOP_POPULATE_TOKEN 0x83
327#define SCSIOP_WRITE_USING_TOKEN 0x83
328
329#define SCSIOP_RECEIVE_ROD_TOKEN_INFORMATION 0x84
330
331#define SCSIOP_COMPARE_AND_WRITE 0x89
332
333#define SCSIOP_ZBC_OUT 0x94
334#define SCSIOP_ZBC_IN 0x95
335#define SCSIOP_READ_DATA_BUFF16 0x9B
336
337#define SCSIOP_GET_LBA_STATUS 0x9E
338#define SCSIOP_GET_PHYSICAL_ELEMENT_STATUS 0x9E
339#define SCSIOP_REMOVE_ELEMENT_AND_TRUNCATE 0x9E
340
341#define SCSIOP_SECURITY_PROTOCOL_IN 0xA2
342
343#define SCSIOP_SECURITY_PROTOCOL_OUT 0xB5
344
345#define SERVICE_ACTION_OVERWRITE 0x01
346#define SERVICE_ACTION_BLOCK_ERASE 0x02
347#define SERVICE_ACTION_CRYPTO_ERASE 0x03
348#define SERVICE_ACTION_EXIT_FAILURE 0x1f
349
350// SCSIOP_OPERATION32 (0x7F)
351
352#define SERVICE_ACTION_XDWRITE 0x0004
353#define SERVICE_ACTION_XPWRITE 0x0006
354#define SERVICE_ACTION_XDWRITEREAD 0x0007
355#define SERVICE_ACTION_WRITE 0x000B
356#define SERVICE_ACTION_WRITE_VERIFY 0x000C
357#define SERVICE_ACTION_WRITE_SAME 0x000D
358#define SERVICE_ACTION_ORWRITE 0x000E
359
360// SCSIOP_POPULATE_TOKEN, SCSIOP_WRITE_USING_TOKEN (0x83)
361
362#define SERVICE_ACTION_POPULATE_TOKEN 0x10
363#define SERVICE_ACTION_WRITE_USING_TOKEN 0x11
364
365// SCSIOP_RECEIVE_ROD_TOKEN_INFORMATION (0x84)
366
367#define SERVICE_ACTION_RECEIVE_TOKEN_INFORMATION 0x07
368
369// SCSIOP_ZBC_OUT (0x94)
370
371#define SERVICE_ACTION_CLOSE_ZONE 0x01
372#define SERVICE_ACTION_FINISH_ZONE 0x02
373#define SERVICE_ACTION_OPEN_ZONE 0x03
374#define SERVICE_ACTION_RESET_WRITE_POINTER 0x04
375
376// SCSIOP_ZBC_IN (0x95)
377
378#define SERVICE_ACTION_REPORT_ZONES 0x00
379
380#define REPORT_ZONES_OPTION_LIST_ALL_ZONES 0x00
381#define REPORT_ZONES_OPTION_LIST_EMPTY_ZONES 0x01
382#define REPORT_ZONES_OPTION_LIST_IMPLICITLY_OPENED_ZONES 0x02
383#define REPORT_ZONES_OPTION_LIST_EXPLICITLY_OPENED_ZONES 0x03
384#define REPORT_ZONES_OPTION_LIST_CLOSED_ZONES 0x04
385#define REPORT_ZONES_OPTION_LIST_FULL_ZONES 0x05
386#define REPORT_ZONES_OPTION_LIST_READ_ONLY_ZONES 0x06
387#define REPORT_ZONES_OPTION_LIST_OFFLINE_ZONES 0x07
388#define REPORT_ZONES_OPTION_LIST_RWP_ZONES 0x10
389#define REPORT_ZONES_OPTION_LIST_NON_SEQUENTIAL_WRITE_RESOURCES_ACTIVE_ZONES 0x11
390#define REPORT_ZONES_OPTION_LIST_NOT_WRITE_POINTER_ZONES 0x3F
391
392// SCSIOP_SERVICE_ACTION_IN16 (0x9E)
393
394#define SERVICE_ACTION_READ_CAPACITY16 0x10
395#define SERVICE_ACTION_GET_LBA_STATUS 0x12
396#define SERVICE_ACTION_GET_PHYSICAL_ELEMENT_STATUS 0x17
397#define SERVICE_ACTION_REMOVE_ELEMENT_AND_TRUNCATE 0x18
398
399// SCSIOP_MAINTENANCE_IN (0xA3)
400
401#define SERVICE_ACTION_REPORT_TIMESTAMP 0x0F
402
403// SCSIOP_MAINTENANCE_OUT (0xA4)
404
405#define SERVICE_ACTION_SET_TIMESTAMP 0x0F
406
407#define CDB_RETURN_ON_COMPLETION 0
408#define CDB_RETURN_IMMEDIATE 1
409
410#define CDB_FORCE_MEDIA_ACCESS 0x08
411
412#define SCSIOP_DENON_EJECT_DISC 0xE6
413#define SCSIOP_DENON_STOP_AUDIO 0xE7
414#define SCSIOP_DENON_PLAY_AUDIO 0xE8
415#define SCSIOP_DENON_READ_TOC 0xE9
416#define SCSIOP_DENON_READ_SUBCODE 0xEB
417
418#define SCSISTAT_GOOD 0x00
419#define SCSISTAT_CHECK_CONDITION 0x02
420#define SCSISTAT_CONDITION_MET 0x04
421#define SCSISTAT_BUSY 0x08
422#define SCSISTAT_INTERMEDIATE 0x10
423#define SCSISTAT_INTERMEDIATE_COND_MET 0x14
424#define SCSISTAT_RESERVATION_CONFLICT 0x18
425#define SCSISTAT_COMMAND_TERMINATED 0x22
426#define SCSISTAT_QUEUE_FULL 0x28
427
428#define SETBITON 1
429#define SETBITOFF 0
430
431#define SP_RETURN_NOT_FOUND 0
432#define SP_RETURN_FOUND 1
433#define SP_RETURN_ERROR 2
434#define SP_RETURN_BAD_CONFIG 3
435
436/* SCSI_REQUEST_BLOCK.Function constants */
437#define SRB_FUNCTION_EXECUTE_SCSI 0x00
438#define SRB_FUNCTION_CLAIM_DEVICE 0x01
439#define SRB_FUNCTION_IO_CONTROL 0x02
440#define SRB_FUNCTION_RECEIVE_EVENT 0x03
441#define SRB_FUNCTION_RELEASE_QUEUE 0x04
442#define SRB_FUNCTION_ATTACH_DEVICE 0x05
443#define SRB_FUNCTION_RELEASE_DEVICE 0x06
444#define SRB_FUNCTION_SHUTDOWN 0x07
445#define SRB_FUNCTION_FLUSH 0x08
446#define SRB_FUNCTION_ABORT_COMMAND 0x10
447#define SRB_FUNCTION_RELEASE_RECOVERY 0x11
448#define SRB_FUNCTION_RESET_BUS 0x12
449#define SRB_FUNCTION_RESET_DEVICE 0x13
450#define SRB_FUNCTION_TERMINATE_IO 0x14
451#define SRB_FUNCTION_FLUSH_QUEUE 0x15
452#define SRB_FUNCTION_REMOVE_DEVICE 0x16
453#define SRB_FUNCTION_WMI 0x17
454#define SRB_FUNCTION_LOCK_QUEUE 0x18
455#define SRB_FUNCTION_UNLOCK_QUEUE 0x19
456#define SRB_FUNCTION_RESET_LOGICAL_UNIT 0x20
457#define SRB_FUNCTION_SET_LINK_TIMEOUT 0x21
458#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED 0x22
459#define SRB_FUNCTION_LINK_TIMEOUT_COMPLETE 0x23
460#define SRB_FUNCTION_POWER 0x24
461#define SRB_FUNCTION_PNP 0x25
462#define SRB_FUNCTION_DUMP_POINTERS 0x26
463#define SRB_FUNCTION_FREE_DUMP_POINTERS 0x27
464
465#if (NTDDI_VERSION >= NTDDI_WIN8)
466#define SRB_FUNCTION_PROTOCOL_COMMAND 0x09
467#define SRB_FUNCTION_QUIESCE_DEVICE 0x1A
468#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK 0x28
469#define SRB_FUNCTION_GET_DUMP_INFO 0x2A
470#define SRB_FUNCTION_FREE_DUMP_INFO 0x2B
471#endif
472
473#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
474#define SRB_FUNCTION_EXECUTE_NVME 0x0A
475#define SRB_FUNCTION_NVMEOF_OPERATION 0x2C
476#define SRB_FUNCTION_MINIPORT_PASSTHROUGH_REQUEST 0x2D
477#endif
478
479/* SCSI_REQUEST_BLOCK.SrbStatus constants */
480#define SRB_STATUS_PENDING 0x00
481#define SRB_STATUS_SUCCESS 0x01
482#define SRB_STATUS_ABORTED 0x02
483#define SRB_STATUS_ABORT_FAILED 0x03
484#define SRB_STATUS_ERROR 0x04
485#define SRB_STATUS_BUSY 0x05
486#define SRB_STATUS_INVALID_REQUEST 0x06
487#define SRB_STATUS_INVALID_PATH_ID 0x07
488#define SRB_STATUS_NO_DEVICE 0x08
489#define SRB_STATUS_TIMEOUT 0x09
490#define SRB_STATUS_SELECTION_TIMEOUT 0x0A
491#define SRB_STATUS_COMMAND_TIMEOUT 0x0B
492#define SRB_STATUS_MESSAGE_REJECTED 0x0D
493#define SRB_STATUS_BUS_RESET 0x0E
494#define SRB_STATUS_PARITY_ERROR 0x0F
495#define SRB_STATUS_REQUEST_SENSE_FAILED 0x10
496#define SRB_STATUS_NO_HBA 0x11
497#define SRB_STATUS_DATA_OVERRUN 0x12
498#define SRB_STATUS_UNEXPECTED_BUS_FREE 0x13
499#define SRB_STATUS_PHASE_SEQUENCE_FAILURE 0x14
500#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH 0x15
501#define SRB_STATUS_REQUEST_FLUSHED 0x16
502#define SRB_STATUS_ACCESS_DENIED 0x17
503#define SRB_STATUS_OPERATION_IN_PROGRESS 0x18
504#define SRB_STATUS_INVALID_LUN 0x20
505#define SRB_STATUS_INVALID_TARGET_ID 0x21
506#define SRB_STATUS_BAD_FUNCTION 0x22
507#define SRB_STATUS_ERROR_RECOVERY 0x23
508#define SRB_STATUS_NOT_POWERED 0x24
509#define SRB_STATUS_LINK_DOWN 0x25
510#define SRB_STATUS_INSUFFICIENT_RESOURCES 0x26
511#define SRB_STATUS_THROTTLED_REQUEST 0x27
512#define SRB_STATUS_INVALID_PARAMETER 0x28
513#define SRB_STATUS_INTERNAL_ERROR 0x30
514#define SRB_STATUS_QUEUE_FROZEN 0x40
515#define SRB_STATUS_AUTOSENSE_VALID 0x80
516#define SRB_STATUS(Status) (Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
517
518/* SCSI_REQUEST_BLOCK.SrbFlags constants */
519#define SRB_FLAGS_QUEUE_ACTION_ENABLE 0x00000002
520#define SRB_FLAGS_DISABLE_DISCONNECT 0x00000004
521#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER 0x00000008
522
523#define SRB_FLAGS_BYPASS_FROZEN_QUEUE 0x00000010
524#define SRB_FLAGS_DISABLE_AUTOSENSE 0x00000020
525#define SRB_FLAGS_DATA_IN 0x00000040
526#define SRB_FLAGS_DATA_OUT 0x00000080
527#define SRB_FLAGS_NO_DATA_TRANSFER 0x00000000
528#define SRB_FLAGS_UNSPECIFIED_DIRECTION (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)
529
530#define SRB_FLAGS_NO_QUEUE_FREEZE 0x00000100
531#define SRB_FLAGS_ADAPTER_CACHE_ENABLE 0x00000200
532#define SRB_FLAGS_FREE_SENSE_BUFFER 0x00000400
533#define SRB_FLAGS_D3_PROCESSING 0x00000800
534#define SRB_FLAGS_SEQUENTIAL_REQUIRED 0x00001000
535
536#define SRB_FLAGS_IS_ACTIVE 0x00010000
537#define SRB_FLAGS_ALLOCATED_FROM_ZONE 0x00020000
538#define SRB_FLAGS_SGLIST_FROM_POOL 0x00040000
539#define SRB_FLAGS_BYPASS_LOCKED_QUEUE 0x00080000
540
541#define SRB_FLAGS_NO_KEEP_AWAKE 0x00100000
542#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE 0x00200000
543
544#define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT 0x00400000
545#define SRB_FLAGS_DONT_START_NEXT_PACKET 0x00800000
546
547#define SRB_FLAGS_PORT_DRIVER_RESERVED 0x0F000000
548#define SRB_FLAGS_CLASS_DRIVER_RESERVED 0xF0000000
549
550#define SRB_SIMPLE_TAG_REQUEST 0x20
551#define SRB_HEAD_OF_QUEUE_TAG_REQUEST 0x21
552#define SRB_ORDERED_QUEUE_TAG_REQUEST 0x22
553
554#define SRB_WMI_FLAGS_ADAPTER_REQUEST 0x01
555#define SRB_POWER_FLAGS_ADAPTER_REQUEST 0x01
556#define SRB_PNP_FLAGS_ADAPTER_REQUEST 0x01
557#define SRB_IOCTL_FLAGS_ADAPTER_REQUEST 0x01
558#define SRB_PROTOCOL_FLAGS_ADAPTER_REQUEST 0x01
559
560#define STOR_MAP_NO_BUFFERS (0)
561#define STOR_MAP_ALL_BUFFERS (1)
562#define STOR_MAP_NON_READ_WRITE_BUFFERS (2)
563#define STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE (3)
564
565/* StorPortExtendedFunction and the inline wrappers around it return these */
566#define STOR_STATUS_SUCCESS (0x00000000L)
567#define STOR_STATUS_UNSUCCESSFUL (0xC1000001L)
568#define STOR_STATUS_NOT_IMPLEMENTED (0xC1000002L)
569#define STOR_STATUS_INSUFFICIENT_RESOURCES (0xC1000003L)
570#define STOR_STATUS_BUFFER_TOO_SMALL (0xC1000004L)
571#define STOR_STATUS_ACCESS_DENIED (0xC1000005L)
572#define STOR_STATUS_INVALID_PARAMETER (0xC1000006L)
573#define STOR_STATUS_INVALID_DEVICE_REQUEST (0xC1000007L)
574#define STOR_STATUS_INVALID_IRQL (0xC1000008L)
575#define STOR_STATUS_INVALID_DEVICE_STATE (0xC1000009L)
576#define STOR_STATUS_INVALID_BUFFER_SIZE (0xC100000AL)
577#define STOR_STATUS_UNSUPPORTED_VERSION (0xC100000BL)
578#define STOR_STATUS_BUSY (0xC100000CL)
579#define STOR_STATUS_THROTTLED_REQUEST (0xC100000DL)
580#define STOR_STATUS_TIMEOUT (0xC100000EL)
581#define STOR_STATUS_INVALID_DATA (0xC100000FL)
582#define STOR_STATUS_RESET_REQUIRED (0xC1000010L)
583#define STOR_STATUS_NOT_SUPPORTED (0xC1000011L)
584
585#define VPD_SUPPORTED_PAGES 0x00
586#define VPD_SERIAL_NUMBER 0x80
587#define VPD_DEVICE_IDENTIFIERS 0x83
588#define VPD_MEDIA_SERIAL_NUMBER 0x84
589#define VPD_SOFTWARE_INTERFACE_IDENTIFIERS 0x84
590#define VPD_NETWORK_MANAGEMENT_ADDRESSES 0x85
591#define VPD_EXTENDED_INQUIRY_DATA 0x86
592#define VPD_MODE_PAGE_POLICY 0x87
593#define VPD_SCSI_PORTS 0x88
594
595#define SCSI_SENSE_NO_SENSE 0x00
596#define SCSI_SENSE_RECOVERED_ERROR 0x01
597#define SCSI_SENSE_NOT_READY 0x02
598#define SCSI_SENSE_MEDIUM_ERROR 0x03
599#define SCSI_SENSE_HARDWARE_ERROR 0x04
600#define SCSI_SENSE_ILLEGAL_REQUEST 0x05
601#define SCSI_SENSE_UNIT_ATTENTION 0x06
602#define SCSI_SENSE_DATA_PROTECT 0x07
603#define SCSI_SENSE_BLANK_CHECK 0x08
604#define SCSI_SENSE_UNIQUE 0x09
605#define SCSI_SENSE_COPY_ABORTED 0x0A
606#define SCSI_SENSE_ABORTED_COMMAND 0x0B
607#define SCSI_SENSE_EQUAL 0x0C
608#define SCSI_SENSE_VOL_OVERFLOW 0x0D
609#define SCSI_SENSE_MISCOMPARE 0x0E
610#define SCSI_SENSE_RESERVED 0x0F
611
612#define SECURITY_PROTOCOL_IEEE1667 0xEE
613#define TCG_SECURITY_PROTOCOL_ID_0 0x00
614#define TCG_SECURITY_PROTOCOL_ID_1 0x01
615#define TCG_SECURITY_PROTOCOL_ID_2 0x02
616#define MODE_SENSE_CURRENT_VALUES_PAGE_CONTROL 0
617#define MODE_SENSE_CHANGEABLE_VALUES_PAGE_CONTROL 1
618#define MODE_SENSE_DEFAULT_VALUES_PAGE_CONTROL 2
619#define MODE_SENSE_SAVED_VALUES_PAGE_CONTROL 3
620#define MODE_SUBPAGE_COMMAND_DURATION_LIMIT_A_MODE 0x03
621#define MODE_SUBPAGE_COMMAND_DURATION_LIMIT_B_MODE 0x04
622#define MODE_SUBPAGE_COMMAND_DURATION_LIMIT_T2A_MODE 0x07
623#define MODE_SUBPAGE_COMMAND_DURATION_LIMIT_T2B_MODE 0x08
624#define SERVICE_ACTION_REPORT_SUPPORTED_OPERATION_CODES 0x0C
625#define SCSISTAT_TASK_ABORTED 0x40
626#define HOT_PLUGGABLE_NO_INFORMATION_PROVIDED 0x0
627#define HOT_PLUGGABLE_REMOVE_AS_SINGLE_OBJECT 0x1
628#define HOT_PLUGGABLE_NOT_REMOVE_FROM_SCSI_DOMAIN 0x2
629#define HOT_PLUGGABLE_RESERVED 0x3
630#define HOT_PLUGGABLE_FIELD_SHIFT 0x4
631#define HOST_MANAGED_ZONED_BLOCK_DEVICE 0x14
632#define UNKNOWN_OR_NO_DEVICE 0x1F
633#define LOG_PAGE_CODE_ENVIRONMENTAL_REPORTING 0x0D
634#define LOG_PAGE_CODE_UTILIZATION 0x0E
635#define LOG_PAGE_CODE_PERFORMANCE_AND_STATISTICS 0x19
636#define LOG_SUBPAGE_CODE_WRITE_ERROR_COUNTERS 0x00
637#define LOG_SUBPAGE_CODE_READ_ERROR_COUNTERS 0x00
638#define LOG_SUBPAGE_CODE_LOGICAL_BLOCK_PROVISIONING 0x00
639#define LOG_SUBPAGE_CODE_TEMPERATURE 0x00
640#define LOG_SUBPAGE_CODE_ENVIRONMENTAL_REPORTING 0x01
641#define LOG_SUBPAGE_CODE_STARTSTOP_CYCLE_COUNTERS 0x00
642#define LOG_SUBPAGE_CODE_UTILIZATION 0x01
643#define LOG_SUBPAGE_CODE_SELFTEST_RESULTS 0x00
644#define LOG_SUBPAGE_CODE_SOLID_STATE_MEDIA 0x00
645#define LOG_SUBPAGE_CODE_BACKGROUND_SCAN_RESULTS 0x00
646#define LOG_SUBPAGE_CODE_INFORMATIONAL_EXCEPTIONS 0x00
647#define LOG_SUBPAGE_CODE_COMMAND_DURATION_LIMIT_STATISTICS 0x21
648#define LOG_SUBPAGE_CODE_SUPPORTED_SUBPAGES 0xFF
649#define VER_DESCRIPTOR_SPC4_NOVERSION 0x0460
650#define VER_DESCRIPTOR_SPC4_T10_1731D_R16 0x0461
651#define VER_DESCRIPTOR_SPC4_T10_1731D_R18 0x0462
652#define VER_DESCRIPTOR_SPC4_T10_1731D_R23 0x0463
653#define VER_DESCRIPTOR_SBC3 0x04C0
654#define VER_DESCRIPTOR_1667_NOVERSION 0xFFC0
655#define VER_DESCRIPTOR_1667_2006 0xFFC1
656#define VER_DESCRIPTOR_1667_2009 0xFFC2
657#define RESERVATION_ACTION_REPORT_CAPABILITIES 0x02
658#define RESERVATION_ACTION_READ_FULL_STATUS 0x03
659#define RESERVATION_ACTION_REGISTER_AND_MOVE 0x07
660#define RESERVATION_ACTION_REPLACE_LOST_RESERVATION 0x08
661#define RESERVATION_TYPE_WRITE_EXCLUSIVE_ALL_REGISTRANTS 0x07
662#define RESERVATION_TYPE_EXCLUSIVE_ALL_REGISTRANTS 0x08
663#define REPORT_SUPPORTED_OPERATION_CODES_REPORTING_OPTIONS_ALL 0x0
664#define REPORT_SUPPORTED_OPERATION_CODES_REPORTING_OPTIONS_OP 0x1
665#define REPORT_SUPPORTED_OPERATION_CODES_REPORTING_OPTIONS_OP_SA 0x2
666#define REPORT_SUPPORTED_OPERATION_CODES_REPORTING_OPTIONS_OP_SA_OVERWRITE 0x3
667#define REPORT_SUPPORTED_OPERATION_CODES_SUPPORT_NOT_AVAILABLE 0x0
668#define REPORT_SUPPORTED_OPERATION_CODES_SUPPORT_NONE 0x1
669#define REPORT_SUPPORTED_OPERATION_CODES_SUPPORT_SUPPORT_STANDARD 0x3
670#define REPORT_SUPPORTED_OPERATION_CODES_SUPPORT_SUPPORT_VENDOR 0x5
671#define SCSI_WRITE_BUFFER_MODE_DOWNLOAD_MICROCODE_WITH_OFFSETS_SAVE_DEFER_ACTIVATE 0x0E
672#define SCSI_WRITE_BUFFER_MODE_ACTIVATE_DEFERRED_MICROCODE 0x0F
673#define SCSI_WRITE_BUFFER_MODE_0D_MODE_SPECIFIC_VSE_ACT 0x01
674#define SCSI_WRITE_BUFFER_MODE_0D_MODE_SPECIFIC_HR_ACT 0x02
675#define SCSI_WRITE_BUFFER_MODE_0D_MODE_SPECIFIC_PO_ACT 0x04
676#define SCSI_SENSE_DESCRIPTOR_TYPE_FORWARDED_SENSE_DATA 0x0C
677#define SCSI_ADSENSE_CRC_OR_ECC_ERROR 0x10
678#define SCSI_ADSENSE_COMMAND_SEQUENCE_ERROR 0x2C
679#define SCSI_ADSENSE_MEDIUM_FORMAT_CORRUPTED 0x31
680#define SCSI_SENSEQ_LOGICAL_BLOCK_GUARD_CHECK_FAILED 0x01
681#define SCSI_SENSEQ_LOGICAL_BLOCK_TAG_CHECK_FAILED 0x02
682#define SCSI_SENSEQ_LOGICAL_BLOCK_REF_TAG_CHECK_FAILED 0x03
683#define SCSI_SENSEQ_ERROR_TOO_LONG_TO_CORRECT 0x02
684#define SCSI_SENSEQ_INVALID_LU_ID 0x09
685#define SCSI_SENSEQ_PREVIOUS_RESERVATION_CONFLICT 0x09
686#define SCSI_SENSEQ_FORMAT_COMMAND_FAILED 0x01
687#define ZONES_TYPE_AND_LENGTH_MAY_DIFFERENT 0x0
688#define ZONES_TYPE_SAME_LENGTH_SAME 0x1
689#define ZONES_TYPE_SAME_LAST_ZONE_LENGTH_DIFFERENT 0x2
690#define ZONES_TYPE_MAY_DIFFERENT_LENGTH_SAME 0x3
691#define COMMAND_DURATION_LIMIT_T2_UNIT_NONE 0
692#define COMMAND_DURATION_LIMIT_T2_UNIT_500NS 0x06
693#define COMMAND_DURATION_LIMIT_T2_UNIT_1US 0x08
694#define COMMAND_DURATION_LIMIT_T2_UNIT_10MS 0x0A
695#define COMMAND_DURATION_LIMIT_T2_UNIT_500MS 0x0E
696#define DURATION_LIMIT_T2_DESCRIPTOR_COUNT 7
697#define COMMAND_DURATION_LIMIT_T2_POLICY_DO_NOTHING 0
698#define COMMAND_DURATION_LIMIT_T2_POLICY_CONTINUE_WITH_NEXT 0x01
699#define COMMAND_DURATION_LIMIT_T2_POLICY_CONTINUE 0x02
700#define COMMAND_DURATION_LIMIT_T2_POLICY_COMPLETE_DATA_UNAVAILABLE 0x0D
701#define COMMAND_DURATION_LIMIT_T2_POLICY_ABORT_TIMEOUT_PARTIAL_TRANSFER 0x0E
702#define COMMAND_DURATION_LIMIT_T2_POLICY_AOBRT_TIMEOUT 0x0F
703#define GET_PHYSICAL_ELEMENT_STATUS_REPORT_TYPE_PHYSICAL_ELEMENT 0x0
704#define GET_PHYSICAL_ELEMENT_STATUS_REPORT_TYPE_STORAGE_ELEMENT 0x1
705#define GET_PHYSICAL_ELEMENT_STATUS_ALL 0x0
706#define GET_PHYSICAL_ELEMENT_STATUS_FILTER_NEED_ATTENTION 0x1
707#define READ_BUFFER_MODE_ERROR_HISTORY 0x1C
708#define MODE_SPECIFIC_CREATE_VENDOR_SPECIFIC_DATA 0x0
709#define MODE_SPECIFIC_CREATE_CURRENT_INTERNAL_STATUS_DATA 0x1
710#define BUFFER_FORMAT_VENDOR_SPECIFIC 0x0
711#define BUFFER_FORMAT_CURRENT_INTERNAL_STATUS_DATA 0x1
712#define BUFFER_FORMAT_SAVED_INTERNAL_STATUS_DATA 0x2
713#define BUFFER_SOURCE_INDICATED_IN_EHS_SOURCE_FIELD 0x0
714#define BUFFER_SOURCE_UNKNOWN 0x1
715#define BUFFER_SOURCE_CREATED_BY_DEVICE_SERVER 0x2
716#define BUFFER_SOURCE_CREATED_DUE_TO_CURRENT_COMMAND 0x3
717#define BUFFER_SOURCE_CREATED_DUE_TO_PREVIOUS_COMMAND 0x4
718#define STATUS_DATA_SET_SIZE_INCREMENT_IN_BYTES 0x200
719
720#define NOTIFICATION_OPERATIONAL_CHANGE_CLASS_MASK 0x02
721#define NOTIFICATION_POWER_MANAGEMENT_CLASS_MASK 0x04
722#define NOTIFICATION_EXTERNAL_REQUEST_CLASS_MASK 0x08
723#define NOTIFICATION_MEDIA_STATUS_CLASS_MASK 0x10
724#define NOTIFICATION_MULTI_HOST_CLASS_MASK 0x20
725#define NOTIFICATION_DEVICE_BUSY_CLASS_MASK 0x40
726
727
728#define NOTIFICATION_NO_CLASS_EVENTS 0x0
729#define NOTIFICATION_OPERATIONAL_CHANGE_CLASS_EVENTS 0x1
730#define NOTIFICATION_POWER_MANAGEMENT_CLASS_EVENTS 0x2
731#define NOTIFICATION_EXTERNAL_REQUEST_CLASS_EVENTS 0x3
732#define NOTIFICATION_MEDIA_STATUS_CLASS_EVENTS 0x4
733#define NOTIFICATION_MULTI_HOST_CLASS_EVENTS 0x5
734#define NOTIFICATION_DEVICE_BUSY_CLASS_EVENTS 0x6
735
736#define NOTIFICATION_OPERATIONAL_EVENT_NO_CHANGE 0x0
737#define NOTIFICATION_OPERATIONAL_EVENT_CHANGE_REQUESTED 0x1
738#define NOTIFICATION_OPERATIONAL_EVENT_CHANGE_OCCURRED 0x2
739
740#define NOTIFICATION_OPERATIONAL_STATUS_AVAILABLE 0x0
741#define NOTIFICATION_OPERATIONAL_STATUS_TEMPORARY_BUSY 0x1
742#define NOTIFICATION_OPERATIONAL_STATUS_EXTENDED_BUSY 0x2
743
744#define NOTIFICATION_OPERATIONAL_OPCODE_NONE 0x0
745#define NOTIFICATION_OPERATIONAL_OPCODE_FEATURE_CHANGE 0x1
746#define NOTIFICATION_OPERATIONAL_OPCODE_FEATURE_ADDED 0x2
747#define NOTIFICATION_OPERATIONAL_OPCODE_UNIT_RESET 0x3
748#define NOTIFICATION_OPERATIONAL_OPCODE_FIRMWARE_CHANGED 0x4
749#define NOTIFICATION_OPERATIONAL_OPCODE_INQUIRY_CHANGED 0x5
750
751#define NOTIFICATION_POWER_EVENT_NO_CHANGE 0x0
752#define NOTIFICATION_POWER_EVENT_CHANGE_SUCCEEDED 0x1
753#define NOTIFICATION_POWER_EVENT_CHANGE_FAILED 0x2
754
755#define NOTIFICATION_POWER_STATUS_ACTIVE 0x1
756#define NOTIFICATION_POWER_STATUS_IDLE 0x2
757#define NOTIFICATION_POWER_STATUS_STANDBY 0x3
758#define NOTIFICATION_POWER_STATUS_SLEEP 0x4
759
760#define NOTIFICATION_MEDIA_EVENT_NO_EVENT 0x0
761#define NOTIFICATION_EXTERNAL_EVENT_NO_CHANGE 0x0
762#define NOTIFICATION_EXTERNAL_EVENT_BUTTON_DOWN 0x1
763#define NOTIFICATION_EXTERNAL_EVENT_BUTTON_UP 0x2
764#define NOTIFICATION_EXTERNAL_EVENT_EXTERNAL 0x3
765
766#define NOTIFICATION_EXTERNAL_STATUS_READY 0x0
767#define NOTIFICATION_EXTERNAL_STATUS_PREVENT 0x1
768
769#define NOTIFICATION_EXTERNAL_REQUEST_NONE 0x0000
770#define NOTIFICATION_EXTERNAL_REQUEST_QUEUE_OVERRUN 0x0001
771#define NOTIFICATION_EXTERNAL_REQUEST_PLAY 0x0101
772#define NOTIFICATION_EXTERNAL_REQUEST_REWIND_BACK 0x0102
773#define NOTIFICATION_EXTERNAL_REQUEST_FAST_FORWARD 0x0103
774#define NOTIFICATION_EXTERNAL_REQUEST_PAUSE 0x0104
775#define NOTIFICATION_EXTERNAL_REQUEST_STOP 0x0106
776#define NOTIFICATION_EXTERNAL_REQUEST_ASCII_LOW 0x0200
777#define NOTIFICATION_EXTERNAL_REQUEST_ASCII_HIGH 0x02ff
778
779#define NOTIFICATION_MEDIA_EVENT_NO_CHANGE 0x0
780#define NOTIFICATION_MEDIA_EVENT_EJECT_REQUEST 0x1
781#define NOTIFICATION_MEDIA_EVENT_NEW_MEDIA 0x2
782#define NOTIFICATION_MEDIA_EVENT_MEDIA_REMOVAL 0x3
783#define NOTIFICATION_MEDIA_EVENT_MEDIA_CHANGE 0x4
784
785#define NOTIFICATION_BUSY_EVENT_NO_EVENT 0x0
786#define NOTIFICATION_MULTI_HOST_EVENT_NO_CHANGE 0x0
787#define NOTIFICATION_MULTI_HOST_EVENT_CONTROL_REQUEST 0x1
788#define NOTIFICATION_MULTI_HOST_EVENT_CONTROL_GRANT 0x2
789#define NOTIFICATION_MULTI_HOST_EVENT_CONTROL_RELEASE 0x3
790
791#define NOTIFICATION_MULTI_HOST_STATUS_READY 0x0
792#define NOTIFICATION_MULTI_HOST_STATUS_PREVENT 0x1
793
794#define NOTIFICATION_MULTI_HOST_PRIORITY_NO_REQUESTS 0x0
795#define NOTIFICATION_MULTI_HOST_PRIORITY_LOW 0x1
796#define NOTIFICATION_MULTI_HOST_PRIORITY_MEDIUM 0x2
797#define NOTIFICATION_MULTI_HOST_PRIORITY_HIGH 0x3
798
799#define NOTIFICATION_BUSY_EVENT_NO_EVENT 0x0
800#define NOTIFICATION_BUSY_EVENT_NO_CHANGE 0x0
801#define NOTIFICATION_BUSY_EVENT_BUSY 0x1
802#define NOTIFICATION_BUSY_EVENT_LO_CHANGE 0x2
803
804#define NOTIFICATION_BUSY_STATUS_NO_EVENT 0x0
805#define NOTIFICATION_BUSY_STATUS_POWER 0x1
806#define NOTIFICATION_BUSY_STATUS_IMMEDIATE 0x2
807#define NOTIFICATION_BUSY_STATUS_DEFERRED 0x3
808
809#define DVD_FORMAT_LEAD_IN 0x00
810#define DVD_FORMAT_COPYRIGHT 0x01
811#define DVD_FORMAT_DISK_KEY 0x02
812#define DVD_FORMAT_BCA 0x03
813#define DVD_FORMAT_MANUFACTURING 0x04
814
815#define DVD_REPORT_AGID 0x00
816#define DVD_CHALLENGE_KEY 0x01
817#define DVD_KEY_1 0x02
818#define DVD_KEY_2 0x03
819#define DVD_TITLE_KEY 0x04
820#define DVD_REPORT_ASF 0x05
821#define DVD_INVALIDATE_AGID 0x3F
822
823#define BLANK_FULL 0x0
824#define BLANK_MINIMAL 0x1
825#define BLANK_TRACK 0x2
826#define BLANK_UNRESERVE_TRACK 0x3
827#define BLANK_TAIL 0x4
828#define BLANK_UNCLOSE_SESSION 0x5
829#define BLANK_SESSION 0x6
830
831#define CD_EXPECTED_SECTOR_ANY 0x0
832#define CD_EXPECTED_SECTOR_CDDA 0x1
833#define CD_EXPECTED_SECTOR_MODE1 0x2
834#define CD_EXPECTED_SECTOR_MODE2 0x3
835#define CD_EXPECTED_SECTOR_MODE2_FORM1 0x4
836#define CD_EXPECTED_SECTOR_MODE2_FORM2 0x5
837
838#define DISK_STATUS_EMPTY 0x00
839#define DISK_STATUS_INCOMPLETE 0x01
840#define DISK_STATUS_COMPLETE 0x02
841#define DISK_STATUS_OTHERS 0x03
842
843#define LAST_SESSION_EMPTY 0x00
844#define LAST_SESSION_INCOMPLETE 0x01
845#define LAST_SESSION_RESERVED_DAMAGED 0x02
846#define LAST_SESSION_COMPLETE 0x03
847
848#define DISK_TYPE_CDDA 0x00
849#define DISK_TYPE_CDI 0x10
850#define DISK_TYPE_XA 0x20
851#define DISK_TYPE_UNDEFINED 0xFF
852
853#define DISC_BGFORMAT_STATE_NONE 0x0
854#define DISC_BGFORMAT_STATE_INCOMPLETE 0x1
855#define DISC_BGFORMAT_STATE_RUNNING 0x2
856#define DISC_BGFORMAT_STATE_COMPLETE 0x3
857
858#define DATA_BLOCK_MODE0 0x0
859#define DATA_BLOCK_MODE1 0x1
860#define DATA_BLOCK_MODE2 0x2
861
862/* READ_TOC formats */
863#define READ_TOC_FORMAT_TOC 0x00
864#define READ_TOC_FORMAT_SESSION 0x01
865#define READ_TOC_FORMAT_FULL_TOC 0x02
866#define READ_TOC_FORMAT_PMA 0x03
867#define READ_TOC_FORMAT_ATIP 0x04
868
869#define SCSIMESS_ABORT 0x06
870#define SCSIMESS_ABORT_WITH_TAG 0x0D
871#define SCSIMESS_BUS_DEVICE_RESET 0X0C
872#define SCSIMESS_CLEAR_QUEUE 0X0E
873#define SCSIMESS_COMMAND_COMPLETE 0X00
874#define SCSIMESS_DISCONNECT 0X04
875#define SCSIMESS_EXTENDED_MESSAGE 0X01
876#define SCSIMESS_IDENTIFY 0X80
877#define SCSIMESS_IDENTIFY_WITH_DISCON 0XC0
878#define SCSIMESS_IGNORE_WIDE_RESIDUE 0X23
879#define SCSIMESS_INITIATE_RECOVERY 0X0F
880#define SCSIMESS_INIT_DETECTED_ERROR 0X05
881#define SCSIMESS_LINK_CMD_COMP 0X0A
882#define SCSIMESS_LINK_CMD_COMP_W_FLAG 0X0B
883#define SCSIMESS_MESS_PARITY_ERROR 0X09
884#define SCSIMESS_MESSAGE_REJECT 0X07
885#define SCSIMESS_NO_OPERATION 0X08
886#define SCSIMESS_HEAD_OF_QUEUE_TAG 0X21
887#define SCSIMESS_ORDERED_QUEUE_TAG 0X22
888#define SCSIMESS_SIMPLE_QUEUE_TAG 0X20
889#define SCSIMESS_RELEASE_RECOVERY 0X10
890#define SCSIMESS_RESTORE_POINTERS 0X03
891#define SCSIMESS_SAVE_DATA_POINTER 0X02
892#define SCSIMESS_TERMINATE_IO_PROCESS 0X11
893
894#define SCSIMESS_MODIFY_DATA_POINTER 0X00
895#define SCSIMESS_SYNCHRONOUS_DATA_REQ 0X01
896#define SCSIMESS_WIDE_DATA_REQUEST 0X03
897
898#define SCSIMESS_MODIFY_DATA_LENGTH 5
899#define SCSIMESS_SYNCH_DATA_LENGTH 3
900#define SCSIMESS_WIDE_DATA_LENGTH 2
901
902#define CDB_INQUIRY_EVPD 0x01
903
904#define LUN0_FORMAT_SAVING_DEFECT_LIST 0
905#define USE_DEFAULTMSB 0
906#define USE_DEFAULTLSB 0
907
908#define START_UNIT_CODE 0x01
909#define STOP_UNIT_CODE 0x00
910
911#define DEVICE_QUALIFIER_ACTIVE 0x00
912#define DEVICE_QUALIFIER_NOT_ACTIVE 0x01
913#define DEVICE_QUALIFIER_NOT_SUPPORTED 0x03
914
915#define RESERVATION_ACTION_READ_KEYS 0x00
916#define RESERVATION_ACTION_READ_RESERVATIONS 0x01
917
918#define RESERVATION_ACTION_REGISTER 0x00
919#define RESERVATION_ACTION_RESERVE 0x01
920#define RESERVATION_ACTION_RELEASE 0x02
921#define RESERVATION_ACTION_CLEAR 0x03
922#define RESERVATION_ACTION_PREEMPT 0x04
923#define RESERVATION_ACTION_PREEMPT_ABORT 0x05
924#define RESERVATION_ACTION_REGISTER_IGNORE_EXISTING 0x06
925
926#define RESERVATION_SCOPE_LU 0x00
927#define RESERVATION_SCOPE_ELEMENT 0x02
928
929#define RESERVATION_TYPE_WRITE_EXCLUSIVE 0x01
930#define RESERVATION_TYPE_EXCLUSIVE 0x03
931#define RESERVATION_TYPE_WRITE_EXCLUSIVE_REGISTRANTS 0x05
932#define RESERVATION_TYPE_EXCLUSIVE_REGISTRANTS 0x06
933
934#define SENSE_BUFFER_SIZE_EX sizeof(SENSE_DATA_EX)
935
936#define MAX_ADDITIONAL_SENSE_BYTES (MAX_SENSE_BUFFER_SIZE - SENSE_BUFFER_SIZE)
937#define MAX_ADDITIONAL_SENSE_BYTES_EX (MAX_SENSE_BUFFER_SIZE - SENSE_BUFFER_SIZE_EX)
938
939#define SCSI_SENSE_ERRORCODE_FIXED_CURRENT 0x70
940#define SCSI_SENSE_ERRORCODE_FIXED_DEFERRED 0x71
941#define SCSI_SENSE_ERRORCODE_DESCRIPTOR_CURRENT 0x72
942#define SCSI_SENSE_ERRORCODE_DESCRIPTOR_DEFERRED 0x73
943
944// Sense Descriptor Types
945
946#define SCSI_SENSE_DESCRIPTOR_TYPE_INFORMATION 0x00
947#define SCSI_SENSE_DESCRIPTOR_TYPE_COMMAND_SPECIFIC 0x01
948#define SCSI_SENSE_DESCRIPTOR_TYPE_SENSE_KEY_SPECIFIC 0x02
949#define SCSI_SENSE_DESCRIPTOR_TYPE_FIELD_REPLACEABLE_UNIT 0x03
950#define SCSI_SENSE_DESCRIPTOR_TYPE_STREAM_COMMAND 0x04
951#define SCSI_SENSE_DESCRIPTOR_TYPE_BLOCK_COMMAND 0x05
952#define SCSI_SENSE_DESCRIPTOR_TYPE_OSD_OBJECT_IDENTIFICATION 0x06
953#define SCSI_SENSE_DESCRIPTOR_TYPE_OSD_RESPONSE_INTEGRITY_CHECK 0x07
954#define SCSI_SENSE_DESCRIPTOR_TYPE_OSD_ATTRIBUTE_IDENTIFICATION 0x08
955#define SCSI_SENSE_DESCRIPTOR_TYPE_ATA_STATUS_RETURN 0x09
956#define SCSI_SENSE_DESCRIPTOR_TYPE_PROGRESS_INDICATION 0x0A
957#define SCSI_SENSE_DESCRIPTOR_TYPE_USER_DATA_SEGMENT_REFERRAL 0x0B
958
959/* Additional tape bit */
960#define SCSI_ILLEGAL_LENGTH 0x20
961#define SCSI_EOM 0x40
962#define SCSI_FILE_MARK 0x80
963
964/* Additional Sense codes */
965#define SCSI_ADSENSE_NO_SENSE 0x00
966#define SCSI_ADSENSE_NO_SEEK_COMPLETE 0x02
967#define SCSI_ADSENSE_WRITE 0x03
968#define SCSI_ADSENSE_LUN_NOT_READY 0x04
969#define SCSI_ADSENSE_LUN_COMMUNICATION 0x08
970#define SCSI_ADSENSE_SERVO_ERROR 0x09
971#define SCSI_ADSENSE_WARNING 0x0B
972#define SCSI_ADSENSE_WRITE_ERROR 0x0C
973#define SCSI_ADSENSE_COPY_TARGET_DEVICE_ERROR 0x0D
974#define SCSI_ADSENSE_UNRECOVERED_ERROR 0x11
975#define SCSI_ADSENSE_TRACK_ERROR 0x14
976#define SCSI_ADSENSE_SEEK_ERROR 0x15
977#define SCSI_ADSENSE_REC_DATA_NOECC 0x17
978#define SCSI_ADSENSE_REC_DATA_ECC 0x18
979#define SCSI_ADSENSE_DEFECT_LIST_ERROR 0x19
980#define SCSI_ADSENSE_PARAMETER_LIST_LENGTH 0x1A
981#define SCSI_ADSENSE_MISCOMPARE_DURING_VERIFY_OPERATION 0x1D
982#define SCSI_ADSENSE_ILLEGAL_COMMAND 0x20
983#define SCSI_ADSENSE_ACCESS_DENIED 0x20
984#define SCSI_ADSENSE_ILLEGAL_BLOCK 0x21
985#define SCSI_ADSENSE_INVALID_TOKEN 0x23
986#define SCSI_ADSENSE_INVALID_CDB 0x24
987#define SCSI_ADSENSE_INVALID_LUN 0x25
988#define SCSI_ADSENSE_INVALID_FIELD_PARAMETER_LIST 0x26
989#define SCSI_ADSENSE_WRITE_PROTECT 0x27
990#define SCSI_ADSENSE_MEDIUM_CHANGED 0x28
991#define SCSI_ADSENSE_BUS_RESET 0x29
992#define SCSI_ADSENSE_PARAMETERS_CHANGED 0x2A
993#define SCSI_ADSENSE_INSUFFICIENT_TIME_FOR_OPERATION 0x2E
994#define SCSI_ADSENSE_INVALID_MEDIA 0x30
995#define SCSI_ADSENSE_DEFECT_LIST 0x32
996#define SCSI_ADSENSE_LB_PROVISIONING 0x38
997#define SCSI_ADSENSE_NO_MEDIA_IN_DEVICE 0x3a
998#define SCSI_ADSENSE_POSITION_ERROR 0x3b
999#define SCSI_ADSENSE_LOGICAL_UNIT_ERROR 0x3e
1000#define SCSI_ADSENSE_OPERATING_CONDITIONS_CHANGED 0x3f
1001#define SCSI_ADSENSE_DATA_PATH_FAILURE 0x41
1002#define SCSI_ADSENSE_POWER_ON_SELF_TEST_FAILURE 0x42
1003#define SCSI_ADSENSE_INTERNAL_TARGET_FAILURE 0x44
1004#define SCSI_ADSENSE_DATA_TRANSFER_ERROR 0x4b
1005#define SCSI_ADSENSE_LUN_FAILED_SELF_CONFIGURATION 0x4c
1006#define SCSI_ADSENSE_RESOURCE_FAILURE 0x55
1007#define SCSI_ADSENSE_OPERATOR_REQUEST 0x5a
1008#define SCSI_ADSENSE_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x5d
1009#define SCSI_ADSENSE_ILLEGAL_MODE_FOR_THIS_TRACK 0x64
1010#define SCSI_ADSENSE_COPY_PROTECTION_FAILURE 0x6f
1011#define SCSI_ADSENSE_POWER_CALIBRATION_ERROR 0x73
1012#define SCSI_ADSENSE_VENDOR_UNIQUE 0x80
1013#define SCSI_ADSENSE_MUSIC_AREA 0xA0
1014#define SCSI_ADSENSE_DATA_AREA 0xA1
1015#define SCSI_ADSENSE_VOLUME_OVERFLOW 0xA7
1016
1017#define SCSI_ADWRITE_PROTECT SCSI_ADSENSE_WRITE_PROTECT
1018#define SCSI_FAILURE_PREDICTION_THRESHOLD_EXCEEDED SCSI_ADSENSE_FAILURE_PREDICTION_THRESHOLD_EXCEEDED
1019
1020// ADSENSE additional qualifiers
1021
1022// SCSI_ADSENSE_NO_SENSE (0x00)
1023
1024#define SCSI_SENSEQ_FILEMARK_DETECTED 0x01
1025#define SCSI_SENSEQ_END_OF_MEDIA_DETECTED 0x02
1026#define SCSI_SENSEQ_SETMARK_DETECTED 0x03
1027#define SCSI_SENSEQ_BEGINNING_OF_MEDIA_DETECTED 0x04
1028#define SCSI_SENSEQ_OPERATION_IS_IN_PROGRESS 0x16
1029
1030// SCSI_ADSENSE_WRITE (0x03)
1031
1032#define SCSI_SENSEQ_PERIPHERAL_DEVICE_WRITE_FAULT 0x00
1033#define SCSI_SENSEQ_NO_WRITE_CURRENT 0x01
1034#define SCSI_SENSEQ_EXCESSIVE_WRITE_ERRORS 0x02
1035
1036// SCSI_ADSENSE_LUN_NOT_READY (0x04)
1037
1038#define SCSI_SENSEQ_CAUSE_NOT_REPORTABLE 0x00
1039#define SCSI_SENSEQ_BECOMING_READY 0x01
1040#define SCSI_SENSEQ_INIT_COMMAND_REQUIRED 0x02
1041#define SCSI_SENSEQ_MANUAL_INTERVENTION_REQUIRED 0x03
1042#define SCSI_SENSEQ_FORMAT_IN_PROGRESS 0x04
1043#define SCSI_SENSEQ_REBUILD_IN_PROGRESS 0x05
1044#define SCSI_SENSEQ_RECALCULATION_IN_PROGRESS 0x06
1045#define SCSI_SENSEQ_OPERATION_IN_PROGRESS 0x07
1046#define SCSI_SENSEQ_LONG_WRITE_IN_PROGRESS 0x08
1047#define SCSI_SENSEQ_SPACE_ALLOC_IN_PROGRESS 0x14
1048
1049// SCSI_ADSENSE_LUN_COMMUNICATION (0x08)
1050
1051#define SCSI_SENSEQ_COMM_FAILURE 0x00
1052#define SCSI_SENSEQ_COMM_TIMEOUT 0x01
1053#define SCSI_SENSEQ_COMM_PARITY_ERROR 0x02
1054#define SCSI_SESNEQ_COMM_CRC_ERROR 0x03
1055#define SCSI_SENSEQ_UNREACHABLE_TARGET 0x04
1056
1057// SCSI_ADSENSE_SERVO_ERROR (0x09)
1058
1059#define SCSI_SENSEQ_TRACK_FOLLOWING_ERROR 0x00
1060#define SCSI_SENSEQ_TRACKING_SERVO_FAILURE 0x01
1061#define SCSI_SENSEQ_FOCUS_SERVO_FAILURE 0x02
1062#define SCSI_SENSEQ_SPINDLE_SERVO_FAILURE 0x03
1063#define SCSI_SENSEQ_HEAD_SELECT_FAULT 0x04
1064
1065// SCSI_ADSENSE_WARNING (0x0B)
1066
1067#define SCSI_SENSEQ_POWER_LOSS_EXPECTED 0x08
1068
1069// SCSI_ADSENSE_WRITE_ERROR (0x0C)
1070
1071#define SCSI_SENSEQ_LOSS_OF_STREAMING 0x09
1072#define SCSI_SENSEQ_PADDING_BLOCKS_ADDED 0x0A
1073
1074// SCSI_ADSENSE_COPY_TARGET_DEVICE_ERROR (0x0D)
1075
1076#define SCSI_SENSEQ_NOT_REACHABLE 0x02
1077#define SCSI_SENSEQ_DATA_UNDERRUN 0x04
1078
1079// SCSI_ADSENSE_UNRECOVERED_ERROR (0x11)
1080
1081#define SCSI_SENSEQ_UNRECOVERED_READ_ERROR 0x00
1082
1083// SCSI_ADSENSE_SEEK_ERROR (0x15)
1084
1085#define SCSI_SENSEQ_RANDOM_POSITIONING_ERROR 0x00
1086#define SCSI_SENSEQ_MECHANICAL_POSITIONING_ERROR 0x01
1087#define SCSI_SENSEQ_POSITIONING_ERROR_DETECTED_BY_READ_OF_MEDIUM 0x02
1088
1089// SCSI_ADSENSE_DEFECT_LIST_ERROR (0x19)
1090
1091#define SCSI_SENSEQ_DEFECT_LIST_ERROR 0x00
1092#define SCSI_SENSEQ_DEFECT_LIST_NOT_AVAILABLE 0x01
1093#define SCSI_SENSEQ_DEFECT_LIST_ERROR_IN_PRIMARY_LIST 0x02
1094#define SCSI_SENSEQ_DEFECT_LIST_ERROR_IN_GROWN_LIST 0x03
1095
1096// SCSI_ADSENSE_ACCESS_DENIED (0x20)
1097
1098#define SCSI_SENSEQ_NO_ACCESS_RIGHTS 0x02
1099
1100// SCSI_ADSENSE_ILLEGAL_BLOCK (0x21)
1101
1102#define SCSI_SENSEQ_LOGICAL_ADDRESS_OUT_OF_RANGE 0x00
1103#define SCSI_SENSEQ_ILLEGAL_ELEMENT_ADDR 0x01
1104#define SCSI_SENSEQ_INVALID_WRITE_ADDRESS 0x02
1105#define SCSI_SENSEQ_INVALID_WRITE_CROSSING_LAYER_JUMP 0x03
1106#define SCSI_SENSEQ_UNALIGNED_WRITE 0x04
1107#define SCSI_SENSEQ_WRITE_BOUNDARY_VIOLATION 0x05
1108#define SCSI_SENSEQ_READ_INVALID_DATA 0x06
1109#define SCSI_SENSEQ_READ_BOUNDARY_VIOLATION 0x07
1110#define SCSI_SENSEQ_MISALIGNED_WRITE 0x08
1111
1112// SCSI_ADSENSE_INVALID_FIELD_PARAMETER_LIST (0x26)
1113
1114#define SCSI_SENSEQ_INVALID_RELEASE_OF_PERSISTENT_RESERVATION 0x04
1115#define SCSI_SENSEQ_TOO_MANY_SEGMENT_DESCRIPTORS 0x08
1116
1117// SCSI_ADSENSE_WRITE_PROTECT (0x27)
1118
1119#define SCSI_SENSEQ_SPACE_ALLOC_FAILED_WRITE_PROTECT 0x07
1120
1121// SCSI_ADSENSE_PARAMETERS_CHANGED (0x2A)
1122
1123#define SCSI_SENSEQ_CAPACITY_DATA_CHANGED 0x09
1124
1125// SCSI_ADSENSE_POSITION_ERROR (0x3b)
1126
1127#define SCSI_SENSEQ_DESTINATION_FULL 0x0d
1128#define SCSI_SENSEQ_SOURCE_EMPTY 0x0e
1129
1130// SCSI_ADSENSE_INVALID_MEDIA (0x30)
1131
1132#define SCSI_SENSEQ_INCOMPATIBLE_MEDIA_INSTALLED 0x00
1133#define SCSI_SENSEQ_UNKNOWN_FORMAT 0x01
1134#define SCSI_SENSEQ_INCOMPATIBLE_FORMAT 0x02
1135#define SCSI_SENSEQ_CLEANING_CARTRIDGE_INSTALLED 0x03
1136
1137// SCSI_ADSENSE_DEFECT_LIST (0x32)
1138
1139#define SCSI_SENSEQ_NO_DEFECT_SPARE_LOCATION_AVAILABLE 0x00
1140#define SCSI_SENSEQ_DEFECT_LIST_UPDATE_FAILURE 0x01
1141
1142// SCSI_ADSENSE_LB_PROVISIONING (0x38)
1143
1144#define SCSI_SENSEQ_SOFT_THRESHOLD_REACHED 0x07
1145
1146// SCSI_ADSENSE_LOGICAL_UNIT_ERROR (0x3e)
1147
1148#define SCSI_SENSEQ_LOGICAL_UNIT_HAS_NOT_SELF_CONFIGURED_YET 0x00
1149#define SCSI_SENSEQ_LOGICAL_UNIT_FAILURE 0x01
1150#define SCSI_SENSEQ_TIMEOUT_ON_LOGICAL_UNIT 0x02
1151#define SCSI_SENSEQ_LOGICAL_UNIT_FAILED_SELF_TEST 0x03
1152#define SCSI_SENSEQ_LOGICAL_UNIT_FAILED_TO_UPDATE_SELF_TEST_LOG 0x04
1153
1154// SCSI_ADSENSE_OPERATING_CONDITIONS_CHANGED (0x3f)
1155
1156#define SCSI_SENSEQ_TARGET_OPERATING_CONDITIONS_CHANGED 0x00
1157#define SCSI_SENSEQ_MICROCODE_CHANGED 0x01
1158#define SCSI_SENSEQ_OPERATING_DEFINITION_CHANGED 0x02
1159#define SCSI_SENSEQ_INQUIRY_DATA_CHANGED 0x03
1160#define SCSI_SENSEQ_COMPONENT_DEVICE_ATTACHED 0x04
1161#define SCSI_SENSEQ_DEVICE_IDENTIFIER_CHANGED 0x05
1162#define SCSI_SENSEQ_REDUNDANCY_GROUP_MODIFIED 0x06
1163#define SCSI_SENSEQ_REDUNDANCY_GROUP_DELETED 0x07
1164#define SCSI_SENSEQ_SPARE_MODIFIED 0x08
1165#define SCSI_SENSEQ_SPARE_DELETED 0x09
1166#define SCSI_SENSEQ_VOLUME_SET_MODIFIED 0x0A
1167#define SCSI_SENSEQ_VOLUME_SET_DELETED 0x0B
1168#define SCSI_SENSEQ_VOLUME_SET_DEASSIGNED 0x0C
1169#define SCSI_SENSEQ_VOLUME_SET_REASSIGNED 0x0D
1170#define SCSI_SENSEQ_REPORTED_LUNS_DATA_CHANGED 0x0E
1171#define SCSI_SENSEQ_ECHO_BUFFER_OVERWRITTEN 0x0F
1172#define SCSI_SENSEQ_MEDIUM_LOADABLE 0x10
1173#define SCSI_SENSEQ_MEDIUM_AUXILIARY_MEMORY_ACCESSIBLE 0x11
1174
1175// SCSI_ADSENSE_INTERNAL_TARGET_FAILURE (0x44)
1176
1177#define SCSI_SENSEQ_INTERNAL_TARGET_FAILURE 0x00
1178#define SCSI_SENSEQ_PRESISTENT_RESERVATION_INFORMATION_LOST 0x01
1179#define SCSI_SENSEQ_ATA_DEVICE_FAILED_SET_FEATURES 0x71
1180
1181// SCSI_ADSENSE_DATA_TRANSFER_ERROR (0x4b)
1182
1183#define SCSI_SENSEQ_INITIATOR_RESPONSE_TIMEOUT 0x06
1184
1185// SCSI_ADSENSE_RESOURCE_FAILURE (0x55)
1186
1187#define SCSI_SENSEQ_SYSTEM_RESOURCE_FAILURE 0x00
1188#define SCSI_SENSEQ_SYSTEM_BUFFER_FULL 0x01
1189#define SCSI_SENSEQ_INSUFFICIENT_RESERVATION_RESOURCES 0x02
1190#define SCSI_SENSEQ_INSUFFICIENT_RESOURCES 0x03
1191
1192// SCSI_ADSENSE_OPERATOR_REQUEST (0x5a)
1193
1194#define SCSI_SENSEQ_STATE_CHANGE_INPUT 0x00
1195#define SCSI_SENSEQ_MEDIUM_REMOVAL 0x01
1196#define SCSI_SENSEQ_WRITE_PROTECT_ENABLE 0x02
1197#define SCSI_SENSEQ_WRITE_PROTECT_DISABLE 0x03
1198
1199// SCSI_ADSENSE_FAILURE_PREDICTION_THRESHOLD_EXCEEDED (0x5d)
1200
1201#define SCSI_SENSEQ_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x00
1202#define SCSI_SENSEQ_MEDIA_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x01
1203#define SCSI_SENSEQ_LUN_FAILURE_PREDICTION_THRESHOLD_EXCEEDED 0x02
1204#define SCSI_SENSEQ_SPARE_AREA_EXHAUSTION_PREDICTION_THRESHOLD_EXCEEDED 0x03
1205#define SCSI_SENSEQ_GENERAL_HARD_DRIVE_FAILURE 0x10
1206#define SCSI_SENSEQ_DRIVE_ERROR_RATE_TOO_HIGH 0x11
1207#define SCSI_SENSEQ_DATA_ERROR_RATE_TOO_HIGH 0x12
1208#define SCSI_SENSEQ_SEEK_ERROR_RATE_TOO_HIGH 0x13
1209#define SCSI_SENSEQ_TOO_MANY_BLOCK_REASSIGNS 0x14
1210#define SCSI_SENSEQ_ACCESS_TIMES_TOO_HIGH 0x15
1211#define SCSI_SENSEQ_START_UNIT_TIMES_TOO_HIGH 0x16
1212#define SCSI_SENSEQ_CHANNEL_PARAMETRICS 0x17
1213#define SCSI_SENSEQ_CONTROLLER_DETECTED 0x18
1214#define SCSI_SENSEQ_THROUGHPUT_PERFORMANCE 0x19
1215#define SCSI_SENSEQ_SEEK_TIME_PERFORMANCE 0x1A
1216#define SCSI_SENSEQ_SPIN_UP_RETRY_COUNT 0x1B
1217#define SCSI_SENSEQ_DRIVE_CALIBRATION_RETRY_COUNT 0x1C
1218#define SCSI_SENSEQ_DATA_CHANNEL_DATA_ERROR_RATE_TOO_HIGH 0x32
1219#define SCSI_SENSEQ_SERVO_DATA_ERROR_RATE_TOO_HIGH 0x42
1220#define SCSI_SENSEQ_SERVER_SEEK_ERROR_RATE_TOO_HIGH 0x43
1221#define SCSI_SENSEQ_FAILURE_PREDICTION_THRESHOLD_EXCEEDED_FALSE 0xFF
1222
1223// SCSI_ADSENSE_COPY_PROTECTION_FAILURE (0x6f)
1224
1225#define SCSI_SENSEQ_AUTHENTICATION_FAILURE 0x00
1226#define SCSI_SENSEQ_KEY_NOT_PRESENT 0x01
1227#define SCSI_SENSEQ_KEY_NOT_ESTABLISHED 0x02
1228#define SCSI_SENSEQ_READ_OF_SCRAMBLED_SECTOR_WITHOUT_AUTHENTICATION 0x03
1229#define SCSI_SENSEQ_MEDIA_CODE_MISMATCHED_TO_LOGICAL_UNIT 0x04
1230#define SCSI_SENSEQ_LOGICAL_UNIT_RESET_COUNT_ERROR 0x05
1231
1232// SCSI_ADSENSE_POWER_CALIBRATION_ERROR (0x73)
1233
1234#define SCSI_SENSEQ_POWER_CALIBRATION_AREA_ALMOST_FULL 0x01
1235#define SCSI_SENSEQ_POWER_CALIBRATION_AREA_FULL 0x02
1236#define SCSI_SENSEQ_POWER_CALIBRATION_AREA_ERROR 0x03
1237#define SCSI_SENSEQ_PMA_RMA_UPDATE_FAILURE 0x04
1238#define SCSI_SENSEQ_PMA_RMA_IS_FULL 0x05
1239#define SCSI_SENSEQ_PMA_RMA_ALMOST_FULL 0x06
1240
1241/* SMART support in ATAPI */
1242#define IOCTL_SCSI_MINIPORT_SMART_VERSION ((FILE_DEVICE_SCSI << 16) + 0x0500)
1243#define IOCTL_SCSI_MINIPORT_IDENTIFY ((FILE_DEVICE_SCSI << 16) + 0x0501)
1244#define IOCTL_SCSI_MINIPORT_READ_SMART_ATTRIBS ((FILE_DEVICE_SCSI << 16) + 0x0502)
1245#define IOCTL_SCSI_MINIPORT_READ_SMART_THRESHOLDS ((FILE_DEVICE_SCSI << 16) + 0x0503)
1246#define IOCTL_SCSI_MINIPORT_ENABLE_SMART ((FILE_DEVICE_SCSI << 16) + 0x0504)
1247#define IOCTL_SCSI_MINIPORT_DISABLE_SMART ((FILE_DEVICE_SCSI << 16) + 0x0505)
1248#define IOCTL_SCSI_MINIPORT_RETURN_STATUS ((FILE_DEVICE_SCSI << 16) + 0x0506)
1249#define IOCTL_SCSI_MINIPORT_ENABLE_DISABLE_AUTOSAVE ((FILE_DEVICE_SCSI << 16) + 0x0507)
1250#define IOCTL_SCSI_MINIPORT_SAVE_ATTRIBUTE_VALUES ((FILE_DEVICE_SCSI << 16) + 0x0508)
1251#define IOCTL_SCSI_MINIPORT_EXECUTE_OFFLINE_DIAGS ((FILE_DEVICE_SCSI << 16) + 0x0509)
1252#define IOCTL_SCSI_MINIPORT_ENABLE_DISABLE_AUTO_OFFLINE ((FILE_DEVICE_SCSI << 16) + 0x050a)
1253#define IOCTL_SCSI_MINIPORT_READ_SMART_LOG ((FILE_DEVICE_SCSI << 16) + 0x050b)
1254#define IOCTL_SCSI_MINIPORT_WRITE_SMART_LOG ((FILE_DEVICE_SCSI << 16) + 0x050c)
1255
1256/* CLUSTER support */
1257#define IOCTL_SCSI_MINIPORT_NOT_QUORUM_CAPABLE ((FILE_DEVICE_SCSI << 16) + 0x0520)
1258#define IOCTL_SCSI_MINIPORT_NOT_CLUSTER_CAPABLE ((FILE_DEVICE_SCSI << 16) + 0x0521)
1259
1260#define MODE_FD_SINGLE_SIDE 0x01
1261#define MODE_FD_DOUBLE_SIDE 0x02
1262#define MODE_FD_MAXIMUM_TYPE 0x1E
1263#define MODE_DSP_FUA_SUPPORTED 0x10
1264#define MODE_DSP_WRITE_PROTECT 0x80
1265
1266#define CDDA_CHANNEL_MUTED 0x0
1267#define CDDA_CHANNEL_ZERO 0x1
1268#define CDDA_CHANNEL_ONE 0x2
1269#define CDDA_CHANNEL_TWO 0x4
1270#define CDDA_CHANNEL_THREE 0x8
1271
1272#define CDVD_LMT_CADDY 0
1273#define CDVD_LMT_TRAY 1
1274#define CDVD_LMT_POPUP 2
1275#define CDVD_LMT_RESERVED1 3
1276#define CDVD_LMT_CHANGER_INDIVIDUAL 4
1277#define CDVD_LMT_CHANGER_CARTRIDGE 5
1278#define CDVD_LMT_RESERVED2 6
1279#define CDVD_LMT_RESERVED3 7
1280
1281#define LOADING_MECHANISM_CADDY 0x00
1282#define LOADING_MECHANISM_TRAY 0x01
1283#define LOADING_MECHANISM_POPUP 0x02
1284#define LOADING_MECHANISM_INDIVIDUAL_CHANGER 0x04
1285#define LOADING_MECHANISM_CARTRIDGE_CHANGER 0x05
1286
1287#define MODE_BLOCK_DESC_LENGTH 8
1288#define MODE_HEADER_LENGTH 4
1289#define MODE_HEADER_LENGTH10 8
1290
1291/* CDROM audio control */
1292#define CDB_AUDIO_PAUSE 0x00
1293#define CDB_AUDIO_RESUME 0x01
1294#define CDB_DEVICE_START 0x11
1295#define CDB_DEVICE_STOP 0x10
1296#define CDB_EJECT_MEDIA 0x10
1297#define CDB_LOAD_MEDIA 0x01
1298#define CDB_SUBCHANNEL_HEADER 0x00
1299#define CDB_SUBCHANNEL_BLOCK 0x01
1300
1301#define CDROM_AUDIO_CONTROL_PAGE 0x0E
1302#define MODE_SELECT_IMMEDIATE 0x04
1303#define MODE_SELECT_PFBIT 0x10
1304
1305#define CDB_USE_MSF 0x01
1306
1307/* Multisession CDROMs */
1308#define GET_LAST_SESSION 0x01
1309#define GET_SESSION_DATA 0x02
1310
1311#define VPD_MAX_BUFFER_SIZE 0xff
1312
1313#define VPD_ATA_INFORMATION 0x89
1314
1315#define VPD_THIRD_PARTY_COPY 0x8F
1316#define VPD_BLOCK_LIMITS 0xB0
1317#define VPD_BLOCK_DEVICE_CHARACTERISTICS 0xB1
1318#define VPD_LOGICAL_BLOCK_PROVISIONING 0xB2
1319#define VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS 0xB6
1320
1321#define BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR_TYPE_WINDOWS 0x00
1322
1323#define ZONED_CAPABILITIES_NOT_REPORTED 0x0
1324#define ZONED_CAPABILITIES_HOST_AWARE 0x1
1325#define ZONED_CAPABILITIES_DEVICE_MANAGED 0x2
1326
1327#define PROVISIONING_TYPE_UNKNOWN 0x0
1328#define PROVISIONING_TYPE_RESOURCE 0x1
1329#define PROVISIONING_TYPE_THIN 0x2
1330
1331#define RC_BASIS_LAST_LBA_NOT_SEQUENTIAL_WRITE_REQUIRED_ZONES 0x0
1332#define RC_BASIS_LAST_LBA_ON_LOGICAL_UNIT 0x1
1333
1334#define LBA_STATUS_MAPPED 0x0
1335#define LBA_STATUS_DEALLOCATED 0x1
1336#define LBA_STATUS_ANCHORED 0x2
1337
1338#define LOG_PAGE_CODE_SUPPORTED_LOG_PAGES 0x00
1339#define LOG_PAGE_CODE_WRITE_ERROR_COUNTERS 0x02
1340#define LOG_PAGE_CODE_READ_ERROR_COUNTERS 0x03
1341#define LOG_PAGE_CODE_LOGICAL_BLOCK_PROVISIONING 0x0C
1342#define LOG_PAGE_CODE_TEMPERATURE 0x0D
1343#define LOG_PAGE_CODE_STARTSTOP_CYCLE_COUNTERS 0x0E
1344#define LOG_PAGE_CODE_SELFTEST_RESULTS 0x10
1345#define LOG_PAGE_CODE_SOLID_STATE_MEDIA 0x11
1346#define LOG_PAGE_CODE_BACKGROUND_SCAN_RESULTS 0x15
1347#define LOG_PAGE_CODE_INFORMATIONAL_EXCEPTIONS 0x2F
1348
1349#define LOG_PAGE_LBP_PARAMETER_CODE_AVAILABLE 0x1
1350#define LOG_PAGE_LBP_PARAMETER_CODE_USED 0x2
1351
1352#define LOG_PAGE_LBP_RESOURCE_SCOPE_NOT_REPORTED 0x0
1353#define LOG_PAGE_LBP_RESOURCE_SCOPE_DEDICATED_TO_LUN 0x1
1354#define LOG_PAGE_LBP_RESOURCE_SCOPE_NOT_DEDICATED_TO_LUN 0x2
1355
1356#define REVERSE_SHORT(Short) { \
1357 UCHAR _val; \
1358 PTWO_BYTE _val2 = (PTWO_BYTE)(Short); \
1359 _val = _val2->Byte0; \
1360 _val2->Byte0 = _val2->Byte1; \
1361 _val2->Byte1 = _val; \
1362}
1363
1364#define REVERSE_LONG(Long) { \
1365 UCHAR _val; \
1366 PFOUR_BYTE _val2 = (PFOUR_BYTE)(Long); \
1367 _val = _val2->Byte3; \
1368 _val2->Byte3 = _val2->Byte0; \
1369 _val2->Byte0 = _val; \
1370 _val = _val2->Byte2; \
1371 _val2->Byte2 = _val2->Byte1; \
1372 _val2->Byte1 = _val; \
1373}
1374
1375#define WHICH_BIT(Data, Bit) { \
1376 UCHAR _val; \
1377 for (_val = 0; _val < 32; _val++) { \
1378 if (((Data) >> _val) == 1) { \
1379 break; \
1380 } \
1381 } \
1382 ASSERT(_val != 32); \
1383 (Bit) = _val; \
1384}
1385
1386#define BLOCK_DEVICE_TOKEN_SIZE 512
1387
1388#define ScsiGetSenseErrorCode(SenseInfoBuffer) (((PUCHAR)(SenseInfoBuffer))[0] & 0x7f)
1389
1390#define ScsiGetSenseDescriptorLength(DescriptorBuffer) \
1391 (sizeof(SCSI_SENSE_DESCRIPTOR_HEADER) + ((PSCSI_SENSE_DESCRIPTOR_HEADER)(DescriptorBuffer))->AdditionalLength)
1392
1393#define IsFixedSenseDataFormat(SenseInfoBuffer) \
1394 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_CURRENT || \
1395 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_DEFERRED)
1396
1397#define IsDescriptorSenseDataFormat(SenseInfoBuffer) \
1398 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_CURRENT || \
1399 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_DEFERRED)
1400
1401#define IsSenseDataCurrentError(SenseInfoBuffer) \
1402 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_CURRENT || \
1403 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_CURRENT)
1404
1405#define IsSenseDataDeferredError(SenseInfoBuffer) \
1406 ((ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_FIXED_DEFERRED || \
1407 (ScsiGetSenseErrorCode(SenseInfoBuffer)) == SCSI_SENSE_ERRORCODE_DESCRIPTOR_DEFERRED)
1408
1409#define IsSenseDataFormatValueValid(SenseInfoBuffer) \
1410 (IsFixedSenseDataFormat(SenseInfoBuffer) || IsDescriptorSenseDataFormat(SenseInfoBuffer))
1411
1412#define SCSI_SENSE_OPTIONS_NONE ((SCSI_SENSE_OPTIONS)0x00000000)
1413#define SCSI_SENSE_OPTIONS_FIXED_FORMAT_IF_UNKNOWN_FORMAT_INDICATED ((SCSI_SENSE_OPTIONS)0x00000001)
1414
1416{
1420
1422{
1426 Dma64Bit
1428
1429typedef enum _STOR_SPINLOCK
1430{
1438
1440{
1445
1446#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
1447
1448/*
1449 * An NVMe miniport gets these instead of the SCSI adapter and unit control
1450 * codes. The adapter list deliberately mirrors SCSI_ADAPTER_CONTROL_TYPE.
1451 */
1453{
1486
1488{
1494
1496{
1510
1512{
1517
1518#endif /* (NTDDI_VERSION >= NTDDI_WIN11_GE) */
1519
1521{
1555
1557{
1563
1564#if (NTDDI_VERSION >= NTDDI_WIN8)
1565
1567{
1588
1590{
1595
1596#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
1597
1599{
1632
1634{
1642
1644{
1654
1656{
1663 StorSurpriseRemoval = 0x17
1665
1666typedef enum _VPD_CODE_SET
1667{
1671 VpdCodeSetUTF8 = 3
1673
1675{
1682
1684{
1695
1697{
1715#if (NTDDI_VERSION >= NTDDI_WIN7)
1725#endif
1726#if (NTDDI_VERSION >= NTDDI_WIN8)
1817#endif
1819
1821{
1827
1828typedef enum _GETSGSTATUS
1829{
1833
1834typedef struct _SCSI_REQUEST_BLOCK
1835{
1836 USHORT Length;
1840 UCHAR PathId;
1842 UCHAR Lun;
1855 union
1856 {
1860 };
1861#if defined(_WIN64)
1863#endif
1864 UCHAR Cdb[16];
1866
1867#define SCSI_REQUEST_BLOCK_SIZE sizeof(SCSI_REQUEST_BLOCK)
1868
1869typedef struct _SCSI_WMI_REQUEST_BLOCK
1870{
1871 USHORT Length;
1875 UCHAR PathId;
1877 UCHAR Lun;
1880 UCHAR Reserved2[2];
1890#if (NTDDI_VERSION >= NTDDI_WS03SP1) && defined(_WIN64)
1891 ULONG Reserved6;
1892#endif
1893 UCHAR Reserved5[16];
1895
1896typedef struct _SCSI_POWER_REQUEST_BLOCK
1897{
1898 USHORT Length;
1902 UCHAR PathId;
1904 UCHAR Lun;
1915#if defined(_WIN64)
1917#endif
1918 UCHAR Reserved5[16];
1920
1921typedef struct _STOR_DEVICE_CAPABILITIES
1922{
1924 ULONG DeviceD1:1;
1925 ULONG DeviceD2:1;
1928 ULONG Removable:1;
1929 ULONG DockDevice:1;
1930 ULONG UniqueID:1;
1935
1936typedef struct _SCSI_PNP_REQUEST_BLOCK
1937{
1938 USHORT Length;
1942 UCHAR PathId;
1944 UCHAR Lun;
1955#if defined(_WIN64)
1957#endif
1958 UCHAR Reserved4[16];
1960
1961#if (NTDDI_VERSION >= NTDDI_WIN8)
1962
1964{
1984
1985/*
1986 * The variable length members of an extended SRB carry pointers, so on 64 bit
1987 * targets everything ahead of them has to keep those pointers naturally aligned.
1988 */
1989#if defined(_WIN64)
1990#define SRB_ALIGN DECLSPEC_ALIGN(8)
1991#define STOR_ADDRESS_ALIGN DECLSPEC_ALIGN(8)
1992#define POINTER_ALIGN DECLSPEC_ALIGN(8)
1993#else
1994#define SRB_ALIGN
1995#define STOR_ADDRESS_ALIGN
1996#define POINTER_ALIGN
1997#endif
1998
1999#define STOR_ADDRESS_TYPE_UNKNOWN 0x0
2000#define STOR_ADDRESS_TYPE_BTL8 0x1
2001#define STOR_ADDRESS_TYPE_MAX 0xffff
2002
2003typedef struct STOR_ADDRESS_ALIGN _STOR_ADDRESS
2004{
2005 USHORT Type;
2006 USHORT Port;
2007 ULONG AddressLength;
2008 _Field_size_bytes_(AddressLength) UCHAR AddressData[ANYSIZE_ARRAY];
2010
2011#define STOR_ADDR_BTL8_ADDRESS_LENGTH 4
2012
2014{
2016 USHORT Type;
2017 USHORT Port;
2019 ULONG AddressLength;
2020 UCHAR Path;
2021 UCHAR Target;
2022 UCHAR Lun;
2025
2026typedef enum _SRBEXDATATYPE
2027{
2042 SrbExDataTypeReserved = 0xffffffff
2044
2045/* Every extended data block opens with these two members */
2046typedef struct SRB_ALIGN _SRBEX_DATA
2047{
2049 ULONG Length;
2052
2053#define SRBEX_DATA_BIDIRECTIONAL_LENGTH ((2 * sizeof(ULONG)) + sizeof(PVOID))
2054
2056{
2060 ULONG Length;
2061 ULONG DataInTransferLength;
2063 _Field_size_bytes_full_(DataInTransferLength)
2064 PVOID POINTER_ALIGN DataInBuffer;
2066
2067#define SRBEX_DATA_SCSI_CDB16_LENGTH ((20 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
2068
2069typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB16
2070{
2074 ULONG Length;
2075 UCHAR ScsiStatus;
2077 UCHAR CdbLength;
2084
2085#define SRBEX_DATA_SCSI_CDB32_LENGTH ((36 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
2086
2087typedef struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB32
2088{
2092 ULONG Length;
2093 UCHAR ScsiStatus;
2095 UCHAR CdbLength;
2102
2103#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN ((4 * sizeof(UCHAR)) + (3 * sizeof(ULONG)) + sizeof(PVOID))
2104#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX 0xffffffffUL
2105
2107{
2111 ULONG Length;
2112 UCHAR ScsiStatus;
2114 UCHAR Reserved[2];
2115 ULONG CdbLength;
2116 ULONG Reserved1[2];
2122
2123#define SRBEX_DATA_WMI_LENGTH ((4 * sizeof(UCHAR)) + sizeof(ULONG) + sizeof(PVOID))
2124
2125typedef struct SRB_ALIGN _SRBEX_DATA_WMI
2126{
2130 ULONG Length;
2131 UCHAR WMISubFunction;
2132 UCHAR WMIFlags;
2133 UCHAR Reserved[2];
2135 PVOID POINTER_ALIGN DataPath;
2137
2138#define SRBEX_DATA_POWER_LENGTH ((4 * sizeof(UCHAR)) + sizeof(STOR_DEVICE_POWER_STATE) + sizeof(STOR_POWER_ACTION))
2139
2140typedef struct SRB_ALIGN _SRBEX_DATA_POWER
2141{
2145 ULONG Length;
2146 UCHAR SrbPowerFlags;
2147 UCHAR Reserved[3];
2149 STOR_POWER_ACTION PowerAction;
2151
2152#define SRBEX_DATA_PNP_LENGTH ((4 * sizeof(UCHAR)) + sizeof(STOR_PNP_ACTION) + (2 * sizeof(ULONG)))
2153
2154typedef struct SRB_ALIGN _SRBEX_DATA_PNP
2155{
2159 ULONG Length;
2160 UCHAR PnPSubFunction;
2161 UCHAR Reserved[3];
2162 STOR_PNP_ACTION PnPAction;
2163 ULONG SrbPnPFlags;
2166
2167#define SRBEX_DATA_IO_INFO_LENGTH ((5 * sizeof(ULONG)) + (4 * sizeof(UCHAR)))
2168
2169/* SRBEX_DATA_IO_INFO.Flags */
2170#define REQUEST_INFO_NO_CACHE_FLAG 0x00000001
2171#define REQUEST_INFO_PAGING_IO_FLAG 0x00000002
2172#define REQUEST_INFO_SEQUENTIAL_IO_FLAG 0x00000004
2173#define REQUEST_INFO_TEMPORARY_FLAG 0x00000008
2174#define REQUEST_INFO_WRITE_THROUGH_FLAG 0x00000010
2175#define REQUEST_INFO_HYBRID_WRITE_THROUGH_FLAG 0x00000020
2176#define REQUEST_INFO_NO_FILE_OBJECT_FLAG 0x00000040
2177#define REQUEST_INFO_VOLSNAP_IO_FLAG 0x00000080
2178#define REQUEST_INFO_STREAM_FLAG 0x00000100
2179#define REQUEST_INFO_CRYPTO_FLAG 0x00000200
2180#define REQUEST_INFO_VALID_CACHEPRIORITY_FLAG 0x80000000
2181
2182typedef struct SRB_ALIGN _SRBEX_DATA_IO_INFO
2183{
2187 ULONG Length;
2188 ULONG Flags;
2189 ULONG Key;
2190 ULONG RWLength;
2191 BOOLEAN IsWriteRequest;
2192 UCHAR CachePriority;
2193#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
2196#else
2197 UCHAR Reserved[2];
2198#endif
2199 ULONG Reserved1[2];
2201
2202/* ASCII "SRBX" */
2203#define SRB_SIGNATURE 0x53524258
2204#define STORAGE_REQUEST_BLOCK_VERSION_1 0x1
2205
2206/*
2207 * The leading four bytes mean the same thing in every SRB format, so a
2208 * receiver can recognize an extended SRB before committing to a layout.
2209 */
2211{
2212 USHORT Length;
2215 UCHAR SrbStatus;
2217
2218typedef _Struct_size_bytes_(SrbLength) struct SRB_ALIGN _STORAGE_REQUEST_BLOCK
2219{
2220 USHORT Length;
2223 UCHAR SrbStatus;
2224 UCHAR ReservedUchar[4];
2228 ULONG Version;
2229 ULONG SrbLength;
2230 ULONG SrbFunction;
2231 ULONG SrbFlags;
2232 ULONG ReservedUlong;
2233 ULONG RequestTag;
2234 USHORT RequestPriority;
2235 USHORT RequestAttribute;
2236 ULONG TimeOutValue;
2237#if (NTDDI_VERSION >= NTDDI_WIN10_CU)
2238 union
2239 {
2240 ULONG SystemStatus;
2241 ULONG RequestTagHigh4Bytes;
2243#else
2244 ULONG SystemStatus;
2245#endif
2246 ULONG ZeroGuard1;
2247 _Field_range_(sizeof(STORAGE_REQUEST_BLOCK), SrbLength - sizeof(STOR_ADDRESS))
2248 ULONG AddressOffset;
2249 ULONG NumSrbExData;
2250 ULONG DataTransferLength;
2251 _Field_size_bytes_full_(DataTransferLength)
2252 PVOID POINTER_ALIGN DataBuffer;
2253 PVOID POINTER_ALIGN ZeroGuard2;
2255 PVOID POINTER_ALIGN ClassContext;
2257 PVOID POINTER_ALIGN MiniportContext;
2258 struct _STORAGE_REQUEST_BLOCK POINTER_ALIGN *NextSrb;
2259 _At_buffer_(SrbExDataOffset, _Iter_, NumSrbExData, _Field_range_(0, SrbLength - sizeof(SRBEX_DATA)))
2260 _Field_size_(NumSrbExData)
2261 ULONG SrbExDataOffset[ANYSIZE_ARRAY];
2263
2264/* PORT_CONFIGURATION_INFORMATION.SrbType */
2265#define SRB_TYPE_SCSI_REQUEST_BLOCK 0
2266#define SRB_TYPE_STORAGE_REQUEST_BLOCK 1
2267#define SRB_TYPE_NVME_REQUEST_BLOCK 2
2268
2269/* PORT_CONFIGURATION_INFORMATION.AddressType */
2270#define STORAGE_ADDRESS_TYPE_BTL8 0
2271
2272/* HW_INITIALIZATION_DATA.SrbTypeFlags */
2273#define SRB_TYPE_FLAG_SCSI_REQUEST_BLOCK 0x1
2274#define SRB_TYPE_FLAG_STORAGE_REQUEST_BLOCK 0x2
2275
2276/* HW_INITIALIZATION_DATA.AddressTypeFlags */
2277#define ADDRESS_TYPE_FLAG_BTL8 0x1
2278
2279/* HW_INITIALIZATION_DATA.FeatureSupport */
2280#define STOR_FEATURE_VIRTUAL_MINIPORT 0x00000001
2281#define STOR_FEATURE_ATA_PASS_THROUGH 0x00000002
2282#define STOR_FEATURE_FULL_PNP_DEVICE_CAPABILITIES 0x00000004
2283#define STOR_FEATURE_DUMP_POINTERS 0x00000008
2284#define STOR_FEATURE_DEVICE_NAME_NO_SUFFIX 0x00000010
2285#define STOR_FEATURE_DUMP_RESUME_CAPABLE 0x00000020
2286#define STOR_FEATURE_DEVICE_DESCRIPTOR_FROM_ATA_INFO_VPD 0x00000040
2287#define STOR_FEATURE_EXTRA_IO_INFORMATION 0x00000080
2288#define STOR_FEATURE_ADAPTER_CONTROL_PRE_FINDADAPTER 0x00000100
2289#define STOR_FEATURE_ADAPTER_NOT_REQUIRE_IO_PORT 0x00000200
2290#define STOR_FEATURE_DUMP_16_BYTE_ALIGNMENT 0x00000400
2291#define STOR_FEATURE_SET_ADAPTER_INTERFACE_TYPE 0x00000800
2292#define STOR_FEATURE_DUMP_INFO 0x00001000
2293#define STOR_FEATURE_DMA_ALLOCATION_NO_BOUNDARY 0x00002000
2294#define STOR_FEATURE_REPORT_INTERNAL_DATA 0x00008000
2295#define STOR_FEATURE_EARLY_DUMP 0x00010000
2296
2297#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
2298
2299#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
2300
2301/*
2302 * StorMQ addresses a controller directly rather than by bus, target and LUN.
2303 * Controller is the controller extension the miniport already knows.
2304 */
2305#define STOR_ADDRESS_TYPE_NVME 0x2
2306#define STOR_ADDR_NVME_ADDRESS_LENGTH 16
2307
2309{
2311 USHORT Type;
2314 ULONG AddressLength;
2319
2320#define SRBEX_DATA_MINIPORT_PASSTHROUGH_LENGTH (4 * sizeof(ULONG))
2321
2322/* SRB_FUNCTION_MINIPORT_PASSTHROUGH_REQUEST */
2324{
2328 ULONG Length;
2334
2335#define SRBEX_DATA_NVME_COMMAND_LENGTH \
2336 ((4 * sizeof(ULONGLONG)) + (14 * sizeof(ULONG)) + (5 * sizeof(USHORT)) + (2 * sizeof(UCHAR)))
2337
2338/* SRBEX_DATA_NVME_COMMAND.CommandType */
2339typedef enum
2340{
2345
2346/* SRBEX_DATA_NVME_COMMAND.CommandFlags */
2347typedef enum
2348{
2355
2356/* SRBEX_DATA_NVME_COMMAND.ResponseFlags */
2357typedef enum
2358{
2361
2362/*
2363 * SRB_FUNCTION_EXECUTE_NVME. The command members mirror the NVMe common
2364 * command format, so the three views of the same 64 bytes let a caller fill
2365 * in an NVM, admin or fabrics command without reshaping the block.
2366 */
2368{
2372 ULONG Length;
2373 union
2374 {
2377 };
2378 union
2379 {
2380 struct
2381 {
2386 union
2387 {
2388 struct
2389 {
2392 };
2393 ULONGLONG CommandSGL1[2];
2394 };
2401 };
2402 struct
2403 {
2409 UCHAR Specific[24];
2410 } FabricsCommand;
2411 struct
2412 {
2418 UCHAR TypeSpecific[60];
2420 };
2425 union
2426 {
2427 struct
2428 {
2437 } CommandStatus;
2438 /* 0xFFFFFFFF leaves the queue choice to the miniport */
2441 union
2442 {
2443 struct
2444 {
2447 };
2448 UCHAR Specific[8];
2449 };
2453
2454#define STOR_NVMEOF_OPERATION_V1 0x0001
2455#define SRBEX_DATA_NVMEOF_OPERATION_LENGTH ((2 * sizeof(USHORT)) + (2 * sizeof(ULONG)))
2456
2457/* SRB_FUNCTION_NVMEOF_OPERATION. Any payload travels in the data buffer. */
2459{
2463 ULONG Length;
2470
2471#endif /* (NTDDI_VERSION >= NTDDI_WIN11_GE) */
2472
2473#include <pshpack1.h>
2474typedef union _CDB
2475{
2476 struct _CDB6GENERIC
2477 {
2479 UCHAR Immediate:1;
2483 UCHAR Link:1;
2484 UCHAR Flag:1;
2485 UCHAR Reserved:4;
2488 struct _CDB6READWRITE
2489 {
2496 UCHAR Control;
2498 struct _CDB6INQUIRY
2499 {
2501 UCHAR Reserved1:5;
2506 UCHAR Control;
2508 struct _CDB6INQUIRY3
2509 {
2513 UCHAR Reserved1:6;
2517 UCHAR Control;
2519 struct _CDB6VERIFY
2520 {
2522 UCHAR Fixed:1;
2524 UCHAR Immediate:1;
2525 UCHAR Reserved:2;
2528 UCHAR Control;
2530 struct _CDB6FORMAT
2531 {
2540 struct _CDB10
2541 {
2544 UCHAR Reserved1:2;
2555 UCHAR Control;
2556 } CDB10, *PCDB10;
2557 struct _CDB12
2558 {
2561 UCHAR Reserved1:2;
2568 UCHAR Control;
2569 } CDB12, *PCDB12;
2570 struct _CDB16
2571 {
2573 UCHAR Reserved1:3;
2576 UCHAR Protection:3;
2580 UCHAR Control;
2581 } CDB16, *PCDB16;
2582 struct _PAUSE_RESUME
2583 {
2585 UCHAR Reserved1:5;
2587 UCHAR Reserved2[6];
2588 UCHAR Action;
2589 UCHAR Control;
2591 struct _READ_TOC
2592 {
2594 UCHAR Reserved0:1;
2595 UCHAR Msf:1;
2596 UCHAR Reserved1:3;
2598 UCHAR Format2:4;
2599 UCHAR Reserved2:4;
2600 UCHAR Reserved3[3];
2603 UCHAR Control:6;
2604 UCHAR Format:2;
2605 } READ_TOC, *PREAD_TOC;
2606 struct _READ_DISK_INFORMATION
2607 {
2609 UCHAR Reserved1:5;
2610 UCHAR Lun:3;
2611 UCHAR Reserved2[5];
2613 UCHAR Control;
2615 struct _READ_TRACK_INFORMATION
2616 {
2618 UCHAR Track:1;
2619 UCHAR Reserved1:3;
2620 UCHAR Reserved2:1;
2621 UCHAR Lun:3;
2625 UCHAR Control;
2627 struct _RESERVE_TRACK_RZONE
2628 {
2630 UCHAR Reserved1[4];
2632 UCHAR Control;
2634 struct _SEND_OPC_INFORMATION
2635 {
2637 UCHAR DoOpc:1;
2638 UCHAR Reserved1:7;
2639 UCHAR Exclude0:1;
2640 UCHAR Exclude1:1;
2641 UCHAR Reserved2:6;
2642 UCHAR Reserved3[4];
2646 struct _REPAIR_TRACK
2647 {
2649 UCHAR Immediate:1;
2650 UCHAR Reserved1:7;
2651 UCHAR Reserved2[2];
2652 UCHAR TrackNumber[2];
2653 UCHAR Reserved3[3];
2654 UCHAR Control;
2656 struct _CLOSE_TRACK
2657 {
2659 UCHAR Immediate:1;
2660 UCHAR Reserved1:7;
2661 UCHAR Track:1;
2662 UCHAR Session:1;
2663 UCHAR Reserved2:6;
2665 UCHAR TrackNumber[2];
2666 UCHAR Reserved4[3];
2667 UCHAR Control;
2669 struct _READ_BUFFER_CAPACITY
2670 {
2672 UCHAR BlockInfo:1;
2673 UCHAR Reserved1:7;
2674 UCHAR Reserved2[5];
2676 UCHAR Control;
2678 struct _SEND_CUE_SHEET
2679 {
2681 UCHAR Reserved[5];
2683 UCHAR Control;
2685 struct _READ_HEADER
2686 {
2688 UCHAR Reserved1:1;
2689 UCHAR Msf:1;
2690 UCHAR Reserved2:3;
2691 UCHAR Lun:3;
2695 UCHAR Control;
2697 struct _PLAY_AUDIO
2698 {
2700 UCHAR Reserved1:5;
2704 UCHAR PlayLength[2];
2705 UCHAR Control;
2707 struct _PLAY_AUDIO_MSF
2708 {
2710 UCHAR Reserved1:5;
2716 UCHAR EndingM;
2717 UCHAR EndingS;
2718 UCHAR EndingF;
2719 UCHAR Control;
2721 struct _BLANK_MEDIA
2722 {
2724 UCHAR BlankType:3;
2725 UCHAR Reserved1:1;
2726 UCHAR Immediate:1;
2727 UCHAR Reserved2:3;
2729 UCHAR Reserved3[5];
2730 UCHAR Control;
2732 struct _PLAY_CD
2733 {
2735 UCHAR Reserved1:1;
2736 UCHAR CMSF:1;
2738 UCHAR Lun:3;
2739 _ANONYMOUS_UNION union
2740 {
2741 struct _LBA
2742 {
2743 UCHAR StartingBlockAddress[4];
2744 UCHAR PlayLength[4];
2746 struct _MSF
2747 {
2749 UCHAR StartingM;
2750 UCHAR StartingS;
2751 UCHAR StartingF;
2752 UCHAR EndingM;
2753 UCHAR EndingS;
2754 UCHAR EndingF;
2758 UCHAR Audio:1;
2759 UCHAR Composite:1;
2760 UCHAR Port1:1;
2761 UCHAR Port2:1;
2762 UCHAR Reserved2:3;
2763 UCHAR Speed:1;
2764 UCHAR Control;
2765 } PLAY_CD, *PPLAY_CD;
2766 struct _SCAN_CD
2767 {
2770 UCHAR Reserved1:3;
2771 UCHAR Direct:1;
2772 UCHAR Lun:3;
2774 UCHAR Reserved2[3];
2775 UCHAR Reserved3:6;
2776 UCHAR Type:2;
2778 UCHAR Control;
2779 } SCAN_CD, *PSCAN_CD;
2780 struct _STOP_PLAY_SCAN
2781 {
2783 UCHAR Reserved1:5;
2784 UCHAR Lun:3;
2785 UCHAR Reserved2[7];
2786 UCHAR Control;
2788 struct _SUBCHANNEL
2789 {
2791 UCHAR Reserved0:1;
2792 UCHAR Msf:1;
2793 UCHAR Reserved1:3;
2795 UCHAR Reserved2:6;
2796 UCHAR SubQ:1;
2797 UCHAR Reserved3:1;
2798 UCHAR Format;
2799 UCHAR Reserved4[2];
2802 UCHAR Control;
2804 struct _READ_CD
2805 {
2808 UCHAR Reserved0:1;
2810 UCHAR Lun:3;
2811 UCHAR StartingLBA[4];
2813 UCHAR Reserved2:1;
2814 UCHAR ErrorFlags:2;
2815 UCHAR IncludeEDC:1;
2817 UCHAR HeaderCode:2;
2820 UCHAR Reserved3:5;
2821 UCHAR Control;
2822 } READ_CD, *PREAD_CD;
2823 struct _READ_CD_MSF
2824 {
2827 UCHAR Reserved1:1;
2829 UCHAR Lun:3;
2834 UCHAR EndingM;
2835 UCHAR EndingS;
2836 UCHAR EndingF;
2838 UCHAR Reserved4:1;
2839 UCHAR ErrorFlags:2;
2840 UCHAR IncludeEDC:1;
2842 UCHAR HeaderCode:2;
2845 UCHAR Reserved5:5;
2846 UCHAR Control;
2848 struct _PLXTR_READ_CDDA
2849 {
2851 UCHAR Reserved0:5;
2861 UCHAR SubCode;
2862 UCHAR Control;
2864 struct _NEC_READ_CDDA
2865 {
2875 UCHAR Control;
2877 struct _MODE_SENSE
2878 {
2880 UCHAR Reserved1:3;
2881 UCHAR Dbd:1;
2882 UCHAR Reserved2:1;
2884 UCHAR PageCode:6;
2885 UCHAR Pc:2;
2888 UCHAR Control;
2890 struct _MODE_SENSE10
2891 {
2893 UCHAR Reserved1:3;
2894 UCHAR Dbd:1;
2895 UCHAR Reserved2:1;
2897 UCHAR PageCode:6;
2898 UCHAR Pc:2;
2899 UCHAR Reserved3[4];
2901 UCHAR Control;
2903 struct _MODE_SELECT
2904 {
2906 UCHAR SPBit:1;
2907 UCHAR Reserved1:3;
2908 UCHAR PFBit:1;
2910 UCHAR Reserved2[2];
2912 UCHAR Control;
2914 struct _MODE_SELECT10
2915 {
2917 UCHAR SPBit:1;
2918 UCHAR Reserved1:3;
2919 UCHAR PFBit:1;
2921 UCHAR Reserved2[5];
2923 UCHAR Control;
2925 struct _LOCATE
2926 {
2928 UCHAR Immediate:1;
2929 UCHAR CPBit:1;
2930 UCHAR BTBit:1;
2931 UCHAR Reserved1:2;
2937 UCHAR Control;
2938 } LOCATE, *PLOCATE;
2939 struct _LOGSENSE
2940 {
2942 UCHAR SPBit:1;
2943 UCHAR PPCBit:1;
2944 UCHAR Reserved1:3;
2946 UCHAR PageCode:6;
2947 UCHAR PCBit:2;
2952 UCHAR Control;
2953 } LOGSENSE, *PLOGSENSE;
2954 struct _LOGSELECT
2955 {
2957 UCHAR SPBit:1;
2958 UCHAR PCRBit:1;
2959 UCHAR Reserved1:3;
2961 UCHAR Reserved:6;
2962 UCHAR PCBit:2;
2963 UCHAR Reserved2[4];
2965 UCHAR Control;
2967 struct _PRINT
2968 {
2970 UCHAR Reserved:5;
2973 UCHAR Control;
2974 } PRINT, *PPRINT;
2975 struct _SEEK
2976 {
2978 UCHAR Reserved1:5;
2981 UCHAR Reserved2[3];
2982 UCHAR Control;
2983 } SEEK, *PSEEK;
2984 struct _ERASE
2985 {
2987 UCHAR Long:1;
2988 UCHAR Immediate:1;
2989 UCHAR Reserved1:3;
2991 UCHAR Reserved2[3];
2992 UCHAR Control;
2993 } ERASE, *PERASE;
2994 struct _START_STOP
2995 {
2997 UCHAR Immediate:1;
2998 UCHAR Reserved1:4;
3000 UCHAR Reserved2[2];
3001 UCHAR Start:1;
3002 UCHAR LoadEject:1;
3003 UCHAR Reserved3:6;
3004 UCHAR Control;
3006 struct _MEDIA_REMOVAL
3007 {
3009 UCHAR Reserved1:5;
3011 UCHAR Reserved2[2];
3012 UCHAR Prevent:1;
3013 UCHAR Persistant:1;
3014 UCHAR Reserved3:6;
3015 UCHAR Control;
3017 struct _SEEK_BLOCK
3018 {
3020 UCHAR Immediate:1;
3021 UCHAR Reserved1:7;
3023 UCHAR Link:1;
3024 UCHAR Flag:1;
3025 UCHAR Reserved2:4;
3028 struct _REQUEST_BLOCK_ADDRESS
3029 {
3031 UCHAR Reserved1[3];
3033 UCHAR Link:1;
3034 UCHAR Flag:1;
3035 UCHAR Reserved2:4;
3038 struct _PARTITION
3039 {
3041 UCHAR Immediate:1;
3042 UCHAR Sel:1;
3044 UCHAR Reserved1[3];
3045 UCHAR Control;
3047 struct _WRITE_TAPE_MARKS
3048 {
3050 UCHAR Immediate:1;
3052 UCHAR Reserved:3;
3055 UCHAR Control;
3057 struct _SPACE_TAPE_MARKS
3058 {
3060 UCHAR Code:3;
3061 UCHAR Reserved:2;
3066 union
3067 {
3068 UCHAR value;
3069 struct
3070 {
3071 UCHAR Link:1;
3072 UCHAR Flag:1;
3073 UCHAR Reserved:4;
3078 struct _READ_POSITION
3079 {
3081 UCHAR BlockType:1;
3082 UCHAR Reserved1:4;
3083 UCHAR Lun:3;
3084 UCHAR Reserved2[7];
3085 UCHAR Control;
3087 struct _CDB6READWRITETAPE
3088 {
3091 UCHAR Reserved:3;
3095 UCHAR Link:1;
3096 UCHAR Flag:1;
3097 UCHAR Reserved1:4;
3100 struct _INIT_ELEMENT_STATUS
3101 {
3103 UCHAR Reserved1:5;
3105 UCHAR Reserved2[3];
3106 UCHAR Reserved3:7;
3107 UCHAR NoBarCode:1;
3109 struct _INITIALIZE_ELEMENT_RANGE
3110 {
3112 UCHAR Range:1;
3113 UCHAR Reserved1:4;
3116 UCHAR Reserved2[2];
3119 UCHAR Reserved4:7;
3120 UCHAR NoBarCode:1;
3122 struct _POSITION_TO_ELEMENT
3123 {
3125 UCHAR Reserved1:5;
3129 UCHAR Reserved2[2];
3130 UCHAR Flip:1;
3131 UCHAR Reserved3:7;
3132 UCHAR Control;
3134 struct _MOVE_MEDIUM
3135 {
3137 UCHAR Reserved1:5;
3142 UCHAR Reserved2[2];
3143 UCHAR Flip:1;
3144 UCHAR Reserved3:7;
3145 UCHAR Control;
3147 struct _EXCHANGE_MEDIUM
3148 {
3150 UCHAR Reserved1:5;
3156 UCHAR Flip1:1;
3157 UCHAR Flip2:1;
3158 UCHAR Reserved3:6;
3159 UCHAR Control;
3161 struct _READ_ELEMENT_STATUS
3162 {
3165 UCHAR VolTag:1;
3172 UCHAR Control;
3174 struct _SEND_VOLUME_TAG
3175 {
3178 UCHAR Reserved1:1;
3182 UCHAR ActionCode:5;
3183 UCHAR Reserved3:3;
3184 UCHAR Reserved4[2];
3187 UCHAR Control;
3189 struct _REQUEST_VOLUME_ELEMENT_ADDRESS
3190 {
3193 UCHAR VolTag:1;
3200 UCHAR Control;
3202 struct _LOAD_UNLOAD
3203 {
3205 UCHAR Immediate:1;
3206 UCHAR Reserved1:4;
3207 UCHAR Lun:3;
3208 UCHAR Reserved2[2];
3209 UCHAR Start:1;
3210 UCHAR LoadEject:1;
3211 UCHAR Reserved3:6;
3212 UCHAR Reserved4[3];
3213 UCHAR Slot;
3214 UCHAR Reserved5[3];
3216 struct _MECH_STATUS
3217 {
3219 UCHAR Reserved:5;
3220 UCHAR Lun:3;
3221 UCHAR Reserved1[6];
3223 UCHAR Reserved2[1];
3224 UCHAR Control;
3226 struct _SYNCHRONIZE_CACHE10
3227 {
3229 UCHAR RelAddr:1;
3230 UCHAR Immediate:1;
3231 UCHAR Reserved:3;
3232 UCHAR Lun:3;
3235 UCHAR BlockCount[2];
3236 UCHAR Control;
3238 struct _GET_EVENT_STATUS_NOTIFICATION
3239 {
3241 UCHAR Immediate:1;
3242 UCHAR Reserved:4;
3243 UCHAR Lun:3;
3244 UCHAR Reserved2[2];
3246 UCHAR Reserved3[2];
3248 UCHAR Control;
3250 struct _GET_PERFORMANCE
3251 {
3253 UCHAR Except:2;
3254 UCHAR Write:1;
3255 UCHAR Tolerance:2;
3256 UCHAR Reserved0:3;
3257 UCHAR StartingLBA[4];
3258 UCHAR Reserved1[2];
3260 UCHAR Type;
3261 UCHAR Control;
3263 struct _READ_DVD_STRUCTURE
3264 {
3266 UCHAR Reserved1:5;
3267 UCHAR Lun:3;
3270 UCHAR Format;
3272 UCHAR Reserved3:6;
3273 UCHAR AGID:2;
3274 UCHAR Control;
3276 struct _SET_STREAMING
3277 {
3279 UCHAR Reserved[8];
3281 UCHAR Control;
3282 } SET_STREAMING;
3283 struct _SEND_DVD_STRUCTURE
3284 {
3286 UCHAR Reserved1:5;
3287 UCHAR Lun:3;
3288 UCHAR Reserved2[5];
3289 UCHAR Format;
3292 UCHAR Control;
3294 struct _SEND_KEY
3295 {
3297 UCHAR Reserved1:5;
3298 UCHAR Lun:3;
3299 UCHAR Reserved2[6];
3301 UCHAR KeyFormat:6;
3302 UCHAR AGID:2;
3303 UCHAR Control;
3304 } SEND_KEY, *PSEND_KEY;
3305 struct _REPORT_KEY
3306 {
3308 UCHAR Reserved1:5;
3309 UCHAR Lun:3;
3311 UCHAR Reserved2[2];
3313 UCHAR KeyFormat:6;
3314 UCHAR AGID:2;
3315 UCHAR Control;
3317 struct _SET_READ_AHEAD
3318 {
3320 UCHAR Reserved1:5;
3321 UCHAR Lun:3;
3322 UCHAR TriggerLBA[4];
3325 UCHAR Control;
3327 struct _READ_FORMATTED_CAPACITIES
3328 {
3330 UCHAR Reserved1:5;
3331 UCHAR Lun:3;
3332 UCHAR Reserved2[5];
3334 UCHAR Control;
3336 struct _REPORT_LUNS
3337 {
3339 UCHAR Reserved1[5];
3341 UCHAR Reserved2[1];
3342 UCHAR Control;
3344 struct _PERSISTENT_RESERVE_IN
3345 {
3348 UCHAR Reserved1:3;
3349 UCHAR Reserved2[5];
3351 UCHAR Control;
3353 struct _PERSISTENT_RESERVE_OUT
3354 {
3357 UCHAR Reserved1:3;
3358 UCHAR Type:4;
3359 UCHAR Scope:4;
3360 UCHAR Reserved2[4];
3362 UCHAR Control;
3364 struct _GET_CONFIGURATION
3365 {
3368 UCHAR Reserved1:7;
3370 UCHAR Reserved2[3];
3372 UCHAR Control;
3374 struct _SET_CD_SPEED
3375 {
3377 _ANONYMOUS_UNION union
3378 {
3380 _ANONYMOUS_STRUCT struct
3381 {
3383 UCHAR Reserved3:6;
3386 UCHAR ReadSpeed[2];
3387 UCHAR WriteSpeed[2];
3388 UCHAR Reserved2[5];
3389 UCHAR Control;
3391 struct _READ12
3392 {
3395 UCHAR Reserved1:2;
3401 UCHAR Reserved2:7;
3402 UCHAR Streaming:1;
3403 UCHAR Control;
3404 } READ12;
3405 struct _WRITE12
3406 {
3409 UCHAR Reserved1:1;
3410 UCHAR EBP:1;
3416 UCHAR Reserved2:7;
3417 UCHAR Streaming:1;
3418 UCHAR Control;
3419 } WRITE12;
3420 struct _READ16
3421 {
3423 UCHAR Reserved1:3;
3429 UCHAR Reserved2:7;
3430 UCHAR Streaming:1;
3431 UCHAR Control;
3432 } READ16;
3433 struct _WRITE16
3434 {
3436 UCHAR Reserved1:3;
3442 UCHAR Reserved2:7;
3443 UCHAR Streaming:1;
3444 UCHAR Control;
3445 } WRITE16;
3446 struct _VERIFY16
3447 {
3449 UCHAR Reserved1:1;
3450 UCHAR ByteCheck:1;
3452 UCHAR Reserved2: 1;
3457 UCHAR Reserved3:7;
3458 UCHAR Streaming:1;
3459 UCHAR Control;
3460 } VERIFY16;
3461 struct _SYNCHRONIZE_CACHE16
3462 {
3464 UCHAR Reserved1:1;
3465 UCHAR Immediate:1;
3466 UCHAR Reserved2:6;
3468 UCHAR BlockCount[4];
3470 UCHAR Control;
3472 struct _READ_CAPACITY16
3473 {
3476 UCHAR Reserved1:3;
3479 UCHAR PMI:1;
3480 UCHAR Reserved2:7;
3481 UCHAR Control;
3483 ULONG AsUlong[4];
3484 UCHAR AsByte[16];
3486
3487typedef union _EIGHT_BYTE
3488{
3489 struct
3490 {
3491 UCHAR Byte0;
3492 UCHAR Byte1;
3493 UCHAR Byte2;
3494 UCHAR Byte3;
3495 UCHAR Byte4;
3496 UCHAR Byte5;
3497 UCHAR Byte6;
3498 UCHAR Byte7;
3499 };
3502
3503typedef union _FOUR_BYTE
3504{
3505 struct
3506 {
3507 UCHAR Byte0;
3508 UCHAR Byte1;
3509 UCHAR Byte2;
3510 UCHAR Byte3;
3511 };
3512 ULONG AsULong;
3514
3515typedef union _TWO_BYTE
3516{
3517 struct
3518 {
3519 UCHAR Byte0;
3520 UCHAR Byte1;
3521 };
3524#include <poppack.h>
3525
3526#if (NTDDI_VERSION < NTDDI_WINXP)
3527typedef struct _INQUIRYDATA
3528{
3529 UCHAR DeviceType:5;
3535 UCHAR HiSupport:1;
3536 UCHAR NormACA:1;
3537 UCHAR ReservedBit:1;
3538 UCHAR AERC:1;
3540 UCHAR Reserved[2];
3541 UCHAR SoftReset:1;
3543 UCHAR Reserved2:1;
3546 UCHAR Wide16Bit:1;
3547 UCHAR Wide32Bit:1;
3549 UCHAR VendorId[8];
3550 UCHAR ProductId[16];
3553 UCHAR Reserved3[40];
3555#else
3556#include <pshpack1.h>
3557typedef struct _INQUIRYDATA
3558{
3559 UCHAR DeviceType:5;
3563 union
3564 {
3566 struct
3567 {
3570 UCHAR ISOVersion:2;
3571 };
3572 };
3574 UCHAR HiSupport:1;
3575 UCHAR NormACA:1;
3577 UCHAR AERC:1;
3580 UCHAR Addr16:1;
3581 UCHAR Addr32:1;
3582 UCHAR AckReqQ:1;
3584 UCHAR MultiPort:1;
3588 UCHAR SoftReset:1;
3593 UCHAR Wide16Bit:1;
3594 UCHAR Wide32Bit:1;
3596 UCHAR VendorId[8];
3597 UCHAR ProductId[16];
3600 UCHAR Reserved3[40];
3602#include <poppack.h>
3603#endif
3604
3605typedef struct _VPD_MEDIA_SERIAL_NUMBER_PAGE
3606{
3607 UCHAR DeviceType:5;
3614
3615typedef struct _VPD_SERIAL_NUMBER_PAGE
3616{
3617 UCHAR DeviceType:5;
3624
3625typedef struct _VPD_IDENTIFICATION_DESCRIPTOR
3626{
3627 UCHAR CodeSet:4;
3628 UCHAR Reserved:4;
3631 UCHAR Reserved2:2;
3634 UCHAR Identifier[0];
3636
3637typedef struct _VPD_IDENTIFICATION_PAGE
3638{
3639 UCHAR DeviceType:5;
3644 UCHAR Descriptors[0];
3646
3647typedef struct _VPD_SUPPORTED_PAGES_PAGE
3648{
3649 UCHAR DeviceType:5;
3656
3657typedef struct _READ_CAPACITY_DATA
3658{
3662
3663typedef struct _READ_CAPACITY_DATA_EX
3664{
3668
3669typedef struct _MODE_PARAMETER_HEADER
3670{
3676
3677typedef struct _MODE_PARAMETER_HEADER10
3678{
3682 UCHAR Reserved[2];
3685
3686typedef struct _MODE_PARAMETER_BLOCK
3687{
3691 UCHAR BlockLength[3];
3693
3694typedef struct _LUN_LIST
3695{
3697 UCHAR Reserved[4];
3698#if !defined(__midl)
3699 UCHAR Lun[0][8];
3700#endif
3702
3703typedef struct _SENSE_DATA
3704{
3705 UCHAR ErrorCode:7;
3706 UCHAR Valid:1;
3708 UCHAR SenseKey:4;
3709 UCHAR Reserved:1;
3711 UCHAR EndOfMedia:1;
3712 UCHAR FileMark:1;
3713 UCHAR Information[4];
3721
3723
3725
3727{
3730 UCHAR Reserved:4;
3731 UCHAR NEA:1;
3735
3737{
3739 UCHAR Reserved1:4;
3741 UCHAR Reserved2:3;
3743 UCHAR Operation[2];
3745
3746typedef struct _NOTIFICATION_POWER_STATUS
3747{
3748 UCHAR PowerEvent:4;
3749 UCHAR Reserved:4;
3751 UCHAR Reserved2[2];
3753
3754typedef struct _NOTIFICATION_EXTERNAL_STATUS
3755{
3757 UCHAR Reserved1:4;
3759 UCHAR Reserved2:3;
3761 UCHAR Request[2];
3763
3764typedef struct _NOTIFICATION_MEDIA_STATUS
3765{
3766 UCHAR MediaEvent:4;
3767 UCHAR Reserved:4;
3768 _ANONYMOUS_UNION union
3769 {
3772 _ANONYMOUS_STRUCT struct
3773 {
3776 UCHAR ReservedX:6;
3780 UCHAR EndSlot;
3782
3784{
3786 UCHAR Reserved1:4;
3788 UCHAR Reserved2:3;
3790 UCHAR Priority[2];
3792
3793typedef struct _NOTIFICATION_BUSY_STATUS
3794{
3796 UCHAR Reserved:4;
3798 UCHAR Time[2];
3800
3801typedef struct _READ_DVD_STRUCTURES_HEADER
3802{
3803 UCHAR Length[2];
3804 UCHAR Reserved[2];
3805 UCHAR Data[0];
3807
3808typedef struct _CDVD_KEY_HEADER
3809{
3810 UCHAR DataLength[2];
3811 UCHAR Reserved[2];
3812 UCHAR Data[0];
3814
3815typedef struct _CDVD_REPORT_AGID_DATA
3816{
3817 UCHAR Reserved1[3];
3818 UCHAR Reserved2:6;
3819 UCHAR AGID:2;
3821
3822typedef struct _CDVD_CHALLENGE_KEY_DATA
3823{
3825 UCHAR Reserved[2];
3827
3828typedef struct _CDVD_KEY_DATA
3829{
3830 UCHAR Key[5];
3831 UCHAR Reserved[3];
3833
3834typedef struct _CDVD_REPORT_ASF_DATA
3835{
3836 UCHAR Reserved1[3];
3837 UCHAR Success:1;
3838 UCHAR Reserved2:7;
3840
3841typedef struct _CDVD_TITLE_KEY_HEADER
3842{
3843 UCHAR DataLength[2];
3844 UCHAR Reserved1[1];
3845 UCHAR Reserved2:3;
3846 UCHAR CGMS:2;
3847 UCHAR CP_SEC:1;
3848 UCHAR CPM:1;
3849 UCHAR Zero:1;
3852
3853typedef struct _FORMAT_DESCRIPTOR
3854{
3857 UCHAR FormatType:6;
3858 UCHAR BlockLength[3];
3860
3861typedef struct _FORMAT_LIST_HEADER
3862{
3865 UCHAR Immediate:1;
3866 UCHAR TryOut:1;
3867 UCHAR IP:1;
3868 UCHAR STPF:1;
3869 UCHAR DCRT:1;
3870 UCHAR DPRY:1;
3871 UCHAR FOV:1;
3875
3876typedef struct _FORMATTED_CAPACITY_DESCRIPTOR
3877{
3879 UCHAR Maximum:1;
3880 UCHAR Valid:1;
3881 UCHAR FormatType:6;
3882 UCHAR BlockLength[3];
3884
3885typedef struct _FORMATTED_CAPACITY_LIST
3886{
3887 UCHAR Reserved[3];
3891
3892typedef struct _OPC_TABLE_ENTRY
3893{
3894 UCHAR Speed[2];
3895 UCHAR OPCValue[6];
3897
3898typedef struct _DISC_INFORMATION
3899{
3900 UCHAR Length[2];
3901 UCHAR DiscStatus:2;
3903 UCHAR Erasable:1;
3904 UCHAR Reserved1:3;
3909 UCHAR MrwStatus:2;
3911 UCHAR Reserved2:2;
3912 UCHAR URU:1;
3913 UCHAR DBC_V:1;
3914 UCHAR DID_V:1;
3922 UCHAR DiskBarCode[8];
3927
3928typedef struct _DISK_INFORMATION
3929{
3930 UCHAR Length[2];
3931 UCHAR DiskStatus:2;
3933 UCHAR Erasable:1;
3934 UCHAR Reserved1:3;
3939 UCHAR Reserved2:5;
3940 UCHAR GEN:1;
3941 UCHAR DBC_V:1;
3942 UCHAR DID_V:1;
3944 UCHAR Reserved3[3];
3948 UCHAR DiskBarCode[8];
3953
3954typedef struct _DATA_BLOCK_HEADER
3955{
3957 UCHAR Reserved[4];
3958 _ANONYMOUS_UNION union
3959 {
3961 struct
3962 {
3964 UCHAR M;
3965 UCHAR S;
3966 UCHAR F;
3970
3971typedef struct _TRACK_INFORMATION
3972{
3973 UCHAR Length[2];
3977 UCHAR TrackMode:4;
3978 UCHAR Copy:1;
3979 UCHAR Damage:1;
3980 UCHAR Reserved2:2;
3981 UCHAR DataMode:4;
3982 UCHAR FP:1;
3983 UCHAR Packet:1;
3984 UCHAR Blank:1;
3985 UCHAR RT:1;
3986 UCHAR NWA_V:1;
3987 UCHAR Reserved3:7;
3990 UCHAR FreeBlocks[4];
3993
3994typedef struct _TRACK_INFORMATION2
3995{
3996 UCHAR Length[2];
4000 UCHAR TrackMode:4;
4001 UCHAR Copy:1;
4002 UCHAR Damage:1;
4003 UCHAR Reserved5:2;
4004 UCHAR DataMode:4;
4006 UCHAR Packet:1;
4007 UCHAR Blank:1;
4009 UCHAR NWA_V:1;
4010 UCHAR LRA_V:1;
4011 UCHAR Reserved6:6;
4014 UCHAR FreeBlocks[4];
4016 UCHAR TrackSize[4];
4020 UCHAR Reserved7[2];
4022
4023typedef struct _TRACK_INFORMATION3
4024{
4025 UCHAR Length[2];
4029 UCHAR TrackMode:4;
4030 UCHAR Copy:1;
4031 UCHAR Damage:1;
4032 UCHAR Reserved5:2;
4033 UCHAR DataMode:4;
4035 UCHAR Packet:1;
4036 UCHAR Blank:1;
4038 UCHAR NWA_V:1;
4039 UCHAR LRA_V:1;
4040 UCHAR Reserved6:6;
4043 UCHAR FreeBlocks[4];
4045 UCHAR TrackSize[4];
4049 UCHAR Reserved7[2];
4052
4053typedef struct _PERFORMANCE_DESCRIPTOR
4054{
4056 UCHAR Exact:1;
4059 UCHAR Reserved1:3;
4060 UCHAR Reserved[3];
4061 UCHAR StartLba[4];
4062 UCHAR EndLba[4];
4063 UCHAR ReadSize[4];
4064 UCHAR ReadTime[4];
4065 UCHAR WriteSize[4];
4066 UCHAR WriteTime[4];
4068
4069typedef struct _SCSI_EXTENDED_MESSAGE
4070{
4074 union _EXTENDED_ARGUMENTS
4075 {
4076 struct
4077 {
4078 UCHAR Modifier[4];
4080 struct
4081 {
4085 struct{
4086 UCHAR Width;
4090
4091typedef struct _VPD_ATA_INFORMATION_PAGE
4092{
4093 UCHAR DeviceType:5;
4096 UCHAR PageLength[2];
4097 UCHAR Reserved0[4];
4098 UCHAR VendorId[8];
4099 UCHAR ProductId[16];
4103 UCHAR Reserved1[3];
4106
4107typedef struct _VPD_THIRD_PARTY_COPY_PAGE
4108{
4109 UCHAR DeviceType:5;
4112 UCHAR PageLength[2];
4113#if !defined(__midl)
4115#endif
4117
4119{
4129
4130typedef struct _VPD_BLOCK_LIMITS_PAGE
4131{
4132 UCHAR DeviceType:5;
4135 UCHAR PageLength[2];
4136 union
4137 {
4138 struct
4139 {
4149 union
4150 {
4151 struct
4152 {
4154 UCHAR UGAValid:1;
4158 };
4160 };
4161 UCHAR Reserved1[28];
4162 };
4163#if !defined(__midl)
4164 UCHAR Descriptors[0];
4165#endif
4166 };
4168
4170{
4171 UCHAR DeviceType:5;
4180 UCHAR WACEREQ:2;
4181 UCHAR WABEREQ:2;
4182 UCHAR VBULS:1;
4183 UCHAR FUAB:1;
4184 UCHAR BOCS:1;
4185 UCHAR Reserved1:1;
4186 UCHAR ZONED:2;
4187 UCHAR Reserved2:2;
4188 UCHAR Reserved3[3];
4190 UCHAR Reserved4[48];
4192
4194{
4195 UCHAR DeviceType:5;
4198 UCHAR PageLength[2];
4200 UCHAR DP:1;
4201 UCHAR ANC_SUP:1;
4202 UCHAR LBPRZ:1;
4203 UCHAR Reserved0:2;
4204 UCHAR LBPWS10:1;
4205 UCHAR LBPWS:1;
4206 UCHAR LBPU:1;
4208 UCHAR Reserved1:5;
4210#if !defined(__midl)
4212#endif
4214
4216{
4217 UCHAR DeviceType:5;
4220 UCHAR PageLength[2];
4221 UCHAR URSWRZ:1;
4222 UCHAR Reserved1:7;
4223 UCHAR Reserved2[3];
4227 UCHAR Reserved3[44];
4229
4230typedef struct _PRI_REGISTRATION_LIST
4231{
4232 UCHAR Generation[4];
4236
4237typedef struct _PRI_RESERVATION_DESCRIPTOR
4238{
4242 UCHAR Type:4;
4243 UCHAR Scope:4;
4244 UCHAR Obsolete[2];
4246
4247typedef struct _PRI_RESERVATION_LIST
4248{
4249 UCHAR Generation[4];
4253
4254typedef struct _PRO_PARAMETER_LIST
4255{
4260 UCHAR Reserved1:7;
4262 UCHAR Obsolete[2];
4264
4265typedef struct _SCSI_SENSE_DESCRIPTOR_HEADER
4266{
4270
4272{
4274 UCHAR Valid:1;
4275 UCHAR Reserved1:7;
4277 UCHAR Information[8];
4279
4281{
4284 UCHAR Reserved2:5;
4286 UCHAR Reserved3:2;
4288
4290{
4292 UCHAR Extend:1;
4293 UCHAR Reserved1:7;
4294 UCHAR Error;
4303 UCHAR Device;
4304 UCHAR Status;
4306
4308
4309typedef struct _DESCRIPTOR_SENSE_DATA
4310{
4311 UCHAR ErrorCode:7;
4312 UCHAR Reserved1:1;
4313 UCHAR SenseKey:4;
4314 UCHAR Reserved2:4;
4317 UCHAR Reserved3[3];
4321
4322typedef union _SENSE_DATA_EX
4323{
4327
4328typedef struct _READ_CAPACITY16_DATA
4329{
4334 UCHAR RcBasis:2;
4335 UCHAR Reserved:2;
4339 UCHAR LBPRZ:1;
4340 UCHAR LBPME:1;
4342 UCHAR Reserved3[16];
4344
4345typedef struct _LBA_STATUS_DESCRIPTOR
4346{
4350 UCHAR Reserved1:4;
4351 UCHAR Reserved2[3];
4353
4354typedef struct _LBA_STATUS_LIST_HEADER
4355{
4360
4361typedef struct _READ_BLOCK_LIMITS
4362{
4367
4368typedef struct _READ_BUFFER_CAPACITY_DATA
4369{
4370 UCHAR DataLength[2];
4373 UCHAR Reserved4:7;
4377
4378typedef struct _MODE_DISCONNECT_PAGE
4379{
4380 UCHAR PageCode:6;
4381 UCHAR Reserved:1;
4391 UCHAR Reserved2[3];
4393
4394typedef struct _MODE_CACHING_PAGE
4395{
4396 UCHAR PageCode:6;
4397 UCHAR Reserved:1;
4403 UCHAR Reserved2:5;
4411
4413{
4414 UCHAR PageCode:6;
4415 UCHAR Reserved:1;
4418 UCHAR WriteType:4;
4419 UCHAR TestWrite:1;
4422 UCHAR Reserved2:1;
4423 UCHAR TrackMode:4;
4424 UCHAR Copy:1;
4428 UCHAR Reserved3:4;
4432 UCHAR Reserved5:2;
4435 UCHAR PacketSize[4];
4438 UCHAR ISRC[16];
4441
4442typedef struct _MODE_MRW_PAGE
4443{
4444 UCHAR PageCode:6;
4445 UCHAR Reserved:1;
4449 UCHAR LbaSpace:1;
4450 UCHAR Reserved2:7;
4451 UCHAR Reserved3[4];
4453
4454typedef struct _MODE_FLEXIBLE_DISK_PAGE
4455{
4456 UCHAR PageCode:6;
4457 UCHAR Reserved:1;
4467 UCHAR StepRate[2];
4472 UCHAR Reserved2:5;
4477 UCHAR Reserved3:4;
4481 UCHAR Pin2Usage:4;
4482 UCHAR Pin34Usage:4;
4483 UCHAR Pin1Usage:4;
4484 UCHAR Pin4Usage:4;
4486 UCHAR Reserved4[2];
4488
4489typedef struct _MODE_FORMAT_PAGE
4490{
4491 UCHAR PageCode:6;
4492 UCHAR Reserved:1;
4501 UCHAR Interleave[2];
4504 UCHAR Reserved2:4;
4509 UCHAR Reserved3[3];
4511
4512typedef struct _MODE_RIGID_GEOMETRY_PAGE
4513{
4514 UCHAR PageCode:6;
4515 UCHAR Reserved:1;
4525 UCHAR Reserved2:6;
4529 UCHAR Reserved4[2];
4531
4532typedef struct _MODE_READ_WRITE_RECOVERY_PAGE
4533{
4534 UCHAR PageCode:6;
4535 UCHAR Reserved1:1;
4536 UCHAR PSBit:1;
4538 UCHAR DCRBit:1;
4539 UCHAR DTEBit:1;
4540 UCHAR PERBit:1;
4541 UCHAR EERBit:1;
4542 UCHAR RCBit:1;
4543 UCHAR TBBit:1;
4544 UCHAR ARRE:1;
4545 UCHAR AWRE:1;
4547 UCHAR Reserved4[4];
4549 UCHAR Reserved5[3];
4551
4552typedef struct _MODE_READ_RECOVERY_PAGE
4553{
4554 UCHAR PageCode:6;
4555 UCHAR Reserved1:1;
4556 UCHAR PSBit:1;
4558 UCHAR DCRBit:1;
4559 UCHAR DTEBit:1;
4560 UCHAR PERBit:1;
4561 UCHAR Reserved2:1;
4562 UCHAR RCBit:1;
4563 UCHAR TBBit:1;
4564 UCHAR Reserved3:2;
4566 UCHAR Reserved4[4];
4568
4569typedef struct _MODE_INFO_EXCEPTIONS
4570{
4571 UCHAR PageCode:6;
4572 UCHAR Reserved1:1;
4573 UCHAR PSBit:1;
4575 _ANONYMOUS_UNION union
4576 {
4577 UCHAR Flags;
4578 _ANONYMOUS_STRUCT struct
4579 {
4580 UCHAR LogErr:1;
4581 UCHAR Reserved2:1;
4582 UCHAR Test:1;
4583 UCHAR Dexcpt:1;
4584 UCHAR Reserved3:3;
4585 UCHAR Perf:1;
4589 UCHAR Reserved4:4;
4591 UCHAR ReportCount[4];
4593
4594typedef struct _POWER_CONDITION_PAGE
4595{
4596 UCHAR PageCode:6;
4597 UCHAR Reserved:1;
4598 UCHAR PSBit:1;
4601 UCHAR Standby:1;
4602 UCHAR Idle:1;
4603 UCHAR Reserved3:6;
4604 UCHAR IdleTimer[4];
4607
4608typedef struct _CDDA_OUTPUT_PORT
4609{
4611 UCHAR Reserved:4;
4612 UCHAR Volume;
4614
4615typedef struct _CDAUDIO_CONTROL_PAGE
4616{
4617 UCHAR PageCode:6;
4618 UCHAR Reserved:1;
4619 UCHAR PSBit:1;
4621 UCHAR Reserved2:1;
4623 UCHAR Immediate:1;
4624 UCHAR Reserved3:5;
4625 UCHAR Reserved4[3];
4626 UCHAR Obsolete[2];
4629
4630typedef struct _CDVD_FEATURE_SET_PAGE
4631{
4632 UCHAR PageCode:6;
4633 UCHAR Reserved:1;
4634 UCHAR PSBit:1;
4636 UCHAR CDAudio[2];
4638 UCHAR PacketSMART[2];
4645 UCHAR KeyExchange[2];
4646 UCHAR Reserved2[2];
4648
4649typedef struct _CDVD_INACTIVITY_TIMEOUT_PAGE
4650{
4651 UCHAR PageCode:6;
4652 UCHAR Reserved:1;
4653 UCHAR PSBit:1;
4655 UCHAR Reserved2[2];
4656 UCHAR SWPP:1;
4657 UCHAR DISP:1;
4658 UCHAR Reserved3:6;
4663
4664typedef struct _CDVD_CAPABILITIES_PAGE
4665{
4666 UCHAR PageCode:6;
4667 UCHAR Reserved:1;
4668 UCHAR PSBit:1;
4670 UCHAR CDRRead:1;
4671 UCHAR CDERead:1;
4672 UCHAR Method2:1;
4673 UCHAR DVDROMRead:1;
4674 UCHAR DVDRRead:1;
4675 UCHAR DVDRAMRead:1;
4676 UCHAR Reserved2:2;
4677 UCHAR CDRWrite:1;
4678 UCHAR CDEWrite:1;
4679 UCHAR TestWrite:1;
4680 UCHAR Reserved3:1;
4681 UCHAR DVDRWrite:1;
4683 UCHAR Reserved4:2;
4684 UCHAR AudioPlay:1;
4685 UCHAR Composite:1;
4688 UCHAR Mode2Form1:1;
4689 UCHAR Mode2Form2:1;
4692 UCHAR CDDA:1;
4696 UCHAR C2Pointers:1;
4697 UCHAR ISRC:1;
4698 UCHAR UPC:1;
4700 UCHAR Lock:1;
4701 UCHAR LockState:1;
4703 UCHAR Eject:1;
4704 UCHAR Reserved6:1;
4712 UCHAR Reserved7:2;
4713 _ANONYMOUS_UNION union
4714 {
4719 UCHAR BufferSize[2];
4720 _ANONYMOUS_UNION union
4721 {
4726 UCHAR Reserved8:1;
4727 UCHAR BCK:1;
4728 UCHAR RCK:1;
4729 UCHAR LSBF:1;
4730 UCHAR Length:2;
4731 UCHAR Reserved9:2;
4732 _ANONYMOUS_UNION union
4733 {
4737 _ANONYMOUS_UNION union
4738 {
4742 _ANONYMOUS_UNION union
4743 {
4745 UCHAR Reserved10[2];
4748
4749typedef struct _MODE_PARM_READ_WRITE
4750{
4754
4755typedef struct _PORT_OUTPUT
4756{
4758 UCHAR Volume;
4760
4761typedef struct _AUDIO_OUTPUT
4762{
4766 UCHAR Reserved[2];
4771
4773{
4776 UCHAR Fault:1;
4777 UCHAR Reserved:5;
4783
4784typedef struct _SLOT_TABLE_INFORMATION
4785{
4787 UCHAR Reserved:6;
4789 UCHAR Reserved2[3];
4791
4792typedef struct _MECHANICAL_STATUS
4793{
4797
4798typedef struct _TAPE_POSITION_DATA
4799{
4800 UCHAR Reserved1:2;
4802 UCHAR Reserved2:3;
4807 UCHAR FirstBlock[4];
4808 UCHAR LastBlock[4];
4813
4814
4815/* ZONE_DESCRIPTIOR.ZoneType */
4816#define ZONE_TYPE_CONVENTIONAL 0x1
4817#define ZONE_TYPE_SEQUENTIAL_WRITE_REQUIRED 0x2
4818#define ZONE_TYPE_SEQUENTIAL_WRITE_PREFERRED 0x3
4819
4820/* ZONE_DESCRIPTIOR.ZoneCondition */
4821#define ZONE_CONDITION_NOT_WRITE_POINTER 0x0
4822#define ZONE_CONDITION_EMPTY 0x1
4823#define ZONE_CONDITION_IMPLICITLY_OPENED 0x2
4824#define ZONE_CONDITION_EXPLICITLY_OPENED 0x3
4825#define ZONE_CONDITION_CLOSED 0x4
4826#define ZONE_CONDITION_READ_ONLY 0xD
4827#define ZONE_CONDITION_FULL 0xE
4828#define ZONE_CONDITION_OFFLINE 0xF
4829
4830/* PHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR.PhysicalElementType */
4831#define PHYSICAL_ELEMENT_TYPE_STORAGE_ELEMENT 0x01
4832
4833/* PHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR.PhysicalElementHealth */
4834#define PHYSICAL_ELEMENT_HEALTH_NOT_REPORTED 0x00
4835#define PHYSICAL_ELEMENT_HEALTH_MANUFACTURER_SPECIFICATION_LIMIT 0x64
4836#define PHYSICAL_ELEMENT_HEALTH_RESERVED_LOWER_BOUNDARY 0xD0
4837#define PHYSICAL_ELEMENT_HEALTH_RESERVED_UPPER_BOUNDARY 0xFC
4838#define PHYSICAL_ELEMENT_HEALTH_DEPOPULATION_COMPLETED_WITH_ERROR 0xFD
4839#define PHYSICAL_ELEMENT_HEALTH_DEPOPULATION_IN_PROGRESS 0xFE
4840#define PHYSICAL_ELEMENT_HEALTH_DEPOPULATION_COMPLETED_SUCCESS 0xFF
4841
4842/* READ BUFFER buffer ids that address the error history */
4843#define BUFFER_ID_RETURN_ERROR_HISTORY_DIRECTORY 0x0
4844#define BUFFER_ID_RETURN_ERROR_HISTORY_DIRECTORY_CREATE_NEW_ERROR_HISTORY_SNAPSHOT 0x1
4845#define BUFFER_ID_RETURN_ERROR_HISTORY_DIRECTORY_ESTABLISH_NEW_NEXUS 0x2
4846#define BUFFER_ID_RETURN_ERROR_HISTORY_DIRECTORY_ESTABLISH_NEW_NEXUS_AND_SNAPSHOT 0x3
4847#define BUFFER_ID_RETURN_ERROR_HISTORY_MINIMUM_THRESHOLD 0x10
4848#define BUFFER_ID_RETURN_ERROR_HISTORY_MAXIMUM_THRESHOLD 0xEF
4849#define BUFFER_ID_CLEAR_ERROR_HISTORY_NEXUS 0xFE
4850#define BUFFER_ID_CLEAR_ERROR_HISTORY_AND_RELEASE_ANY_SNAPSHOT 0xFF
4851
4852/* ERROR_HISTORY_DIRECTORY.ErrorHistorySource */
4853#define ERROR_HISTORY_SOURCE_CREATED_BY_DEVICE_SERVER 0x0
4854#define ERROR_HISTORY_SOURCE_CREATED_DUE_TO_CURRENT_READ_BUFFER_COMMAND 0x1
4855#define ERROR_HISTORY_SOURCE_CREATED_DUE_TO_PREVIOUS_READ_BUFFER_COMMAND 0x2
4856#define ERROR_HISTORY_SOURCE_INDICATED_IN_BUFFER_SOURCE_FIELD 0x3
4857
4858/* ERROR_HISTORY_DIRECTORY.ErrorHistoryRetrieved */
4859#define ERROR_HISTORY_RETRIEVED_NO_INFORMATION 0x0
4860#define ERROR_HISTORY_RETRIEVED_BUFFER_ID_FE_OR_FF 0x1
4861#define ERROR_HISTORY_RETRIEVED_NOT_BUFFER_ID_FE_OR_FF 0x2
4862#define ERROR_HISTORY_RETRIEVED_RESERVED 0x3
4863typedef struct _ZONE_DESCRIPTIOR
4864{
4877
4879{
4886#if !defined(__midl)
4888#endif
4890
4892{
4901
4903{
4910
4912{
4920
4922{
4933
4935{
4948
4950{
4963
4965{
4970
4972{
4978#if !defined(__midl)
4980#endif
4982
4983typedef struct
4984{
4985 UCHAR ParameterDataLength[2];
4989 UCHAR Timestamp[6];
4992
4993typedef struct
4994{
4996 UCHAR Timestamp[6];
4999
5001{
5008
5010{
5039
5041{
5058
5060{
5071
5073{
5084
5086{
5137
5138typedef struct
5139{
5140 UCHAR ReservationKey[8];
5148 UCHAR RelativeTargetPortIdentifier[2];
5149 UCHAR AdditionalDescriptorLength[4];
5151
5152typedef struct
5153{
5155 UCHAR TransportID[ANYSIZE_ARRAY];
5157
5158typedef struct
5159{
5160 UCHAR Generation[4];
5161 UCHAR AdditionalLength[4];
5163
5164typedef struct
5165{
5166 UCHAR Generation[4];
5167 UCHAR AdditionalLength[4];
5170
5171typedef struct
5172{
5197
5198typedef struct
5199{
5200 UCHAR DescriptorLength[2];
5203 UCHAR NominalCommandProcessingTimeoutInSec[4];
5204 UCHAR RecommendedCommandTimeoutInSec[4];
5206
5207typedef struct
5208{
5215 UCHAR CdbSize[2];
5216 UCHAR CdbUsageData[ANYSIZE_ARRAY];
5218
5219typedef struct
5220{
5223 UCHAR ServiceAction[2];
5231 UCHAR CdbLength[2];
5233
5234typedef struct
5235{
5236 UCHAR CommandDataLength[4];
5239
5240#include <pshpack1.h>
5241
5242typedef struct _UNMAP_BLOCK_DESCRIPTOR
5243{
5244 UCHAR StartingLba[8];
5245 UCHAR LbaCount[4];
5246 UCHAR Reserved[4];
5248
5249typedef struct _UNMAP_LIST_HEADER
5250{
5251 UCHAR DataLength[2];
5253 UCHAR Reserved[4];
5254#if !defined(__midl)
5256#endif
5258
5259typedef struct _LOG_PARAMETER_HEADER
5260{
5262 union
5263 {
5265 struct
5266 {
5268 UCHAR TMC:2;
5269 UCHAR ETC:1;
5270 UCHAR TSD:1;
5271 UCHAR Obsolete:1;
5272 UCHAR DU:1;
5273 };
5274 };
5277
5278typedef struct _LOG_PARAMETER
5279{
5281 union
5282 {
5283#if !defined(__midl)
5284 UCHAR AsByte[0];
5285#endif
5286 struct _THRESHOLD_RESOURCE_COUNT
5287 {
5289 UCHAR Scope : 2;
5290 UCHAR Reserved1 : 6;
5291 UCHAR Reserved2[3];
5293 struct _TEMPERATURE
5294 {
5296 UCHAR Temperature;
5298 struct _DATE_OF_MANUFACTURE
5299 {
5300 UCHAR Year[4];
5301 UCHAR Week[2];
5303 struct _SELF_TEST_RESULTS
5304 {
5305 UCHAR SelfTestResults : 4;
5306 UCHAR Reserved1 : 1;
5307 UCHAR SelfTestCode : 3;
5308 UCHAR SelfTestNumber;
5309 UCHAR PowerOnHours[2];
5310 UCHAR AddressOfFirstFailure[8];
5311 UCHAR SenseKey : 4;
5312 UCHAR Reserved2 : 4;
5315 UCHAR VendorSpecific;
5317
5318 struct _SOLID_STATE_MEDIA
5319 {
5320 UCHAR Reserved[3];
5321 UCHAR PercentageUsed;
5323
5324 struct _BACKGROUND_SCAN_STATUS
5325 {
5326 UCHAR PowerOnMinutes[4];
5328 UCHAR ScanStatus;
5329 UCHAR ScansPerformed[2];
5330 UCHAR ScanProgress[2];
5331 UCHAR MediumScansPerformed[2];
5333
5334 struct _INFORMATIONAL_EXCEPTIONS
5335 {
5336 UCHAR ASC;
5337 UCHAR ASCQ;
5338 UCHAR MostRecentTemperature;
5339 UCHAR VendorSpecific[ANYSIZE_ARRAY];
5341 };
5343
5344typedef struct _LOG_PAGE
5345{
5346 UCHAR PageCode:6;
5347 UCHAR SPF:1;
5348 UCHAR DS:1;
5350 UCHAR PageLength[2];
5351#if !defined(__midl)
5353#endif
5354
5356
5357#include <poppack.h>
5358
5360{
5363 UCHAR Scope:2;
5364 UCHAR Reserved0:6;
5365 UCHAR Reserved1[3];
5367
5369{
5370 UCHAR PageCode:6;
5371 UCHAR SPF:1;
5372 UCHAR DS:1;
5374 UCHAR PageLength[2];
5375#if !defined(__midl)
5377#endif
5379
5380typedef struct _MODE_CONTROL_PAGE
5381{
5382 UCHAR PageCode:6;
5383 UCHAR Reserved1:1;
5386 UCHAR RLEC:1;
5387 UCHAR GLTSD:1;
5388 UCHAR D_SENSE:1;
5389 UCHAR DPICZ:1;
5390 UCHAR TMF_ONLY:1;
5391 UCHAR TST:3;
5392 UCHAR Obsolete1:1;
5393 UCHAR QERR:2;
5394 UCHAR NUAR:1;
5396 UCHAR Obsolete2:3;
5397 UCHAR SWP:1;
5399 UCHAR RAC:1;
5400 UCHAR VS:1;
5402 UCHAR Reserved2:1;
5403 UCHAR RWWP:1;
5404 UCHAR ATMPE:1;
5405 UCHAR TAS:1;
5406 UCHAR ATO:1;
5407 UCHAR Obsolete3[2];
5411
5413{
5415 UCHAR WriteType:4;
5416 UCHAR TestWrite:1;
5419 UCHAR Reserved2:1;
5420 UCHAR TrackMode:4;
5421 UCHAR Copy:1;
5425 UCHAR Reserved3:4;
5429 UCHAR Reserved5:2;
5432 UCHAR PacketSize[4];
5434 UCHAR Reserved7:7;
5439 UCHAR Reserved8:7;
5440 UCHAR ISRCValid:1;
5441 UCHAR ISRCCountry[2];
5442 UCHAR ISRCOwner[3];
5450
5451#include <pshpack1.h>
5452
5453typedef struct
5454{
5455 UCHAR LogicalBlockAddress[8];
5456 UCHAR TransferLength[4];
5457 UCHAR Reserved[4];
5459
5460typedef struct
5461{
5462 UCHAR PopulateTokenDataLength[2];
5463 UCHAR Immediate:1;
5464 UCHAR Reserved1:7;
5466 UCHAR InactivityTimeout[4];
5467 UCHAR Reserved3[6];
5468 UCHAR BlockDeviceRangeDescriptorListLength[2];
5469#if !defined(__midl)
5470 UCHAR BlockDeviceRangeDescriptor[ANYSIZE_ARRAY];
5471#endif
5473
5474typedef struct
5475{
5476 UCHAR WriteUsingTokenDataLength[2];
5477 UCHAR Immediate:1;
5478 UCHAR Reserved1:7;
5479 UCHAR Reserved2[5];
5480 UCHAR BlockOffsetIntoToken[8];
5482 UCHAR Reserved3[6];
5483 UCHAR BlockDeviceRangeDescriptorListLength[2];
5484#if !defined(__midl)
5485 UCHAR BlockDeviceRangeDescriptor[ANYSIZE_ARRAY];
5486#endif
5488
5489typedef struct
5490{
5491 UCHAR AvailableData[4];
5492 UCHAR ResponseToServiceAction:5;
5493 UCHAR Reserved1:3;
5495 UCHAR Reserved2:1;
5496 UCHAR OperationCounter[2];
5497 UCHAR EstimatedStatusUpdateDelay[4];
5498 UCHAR CompletionStatus;
5499 UCHAR SenseDataFieldLength;
5500 UCHAR SenseDataLength;
5501 UCHAR TransferCountUnits;
5502 UCHAR TransferCount[8];
5503 UCHAR SegmentsProcessed[2];
5504 UCHAR Reserved3[6];
5505#if !defined(__midl)
5506 UCHAR SenseData[ANYSIZE_ARRAY];
5507#endif
5509
5510typedef struct
5511{
5512 UCHAR TokenDescriptorsLength[4];
5513#if !defined(__midl)
5514 UCHAR TokenDescriptor[ANYSIZE_ARRAY];
5515#endif
5517
5518typedef struct
5519{
5523
5525{
5533
5535{
5545
5546#include <poppack.h>
5547
5549
5550typedef struct _ACCESS_RANGE
5551{
5556
5557typedef struct _MEMORY_REGION
5558{
5563
5564typedef
5567 _In_ PVOID HwDeviceExtension,
5569
5571{
5572 ULONG Length;
5581 ULONG DmaPort;
5587#if (NTDDI_VERSION >= NTDDI_WIN8)
5589#else
5591#endif
5611#if (NTDDI_VERSION >= NTDDI_WIN8)
5614#else
5616#endif
5638#if (NTDDI_VERSION >= NTDDI_WIN8)
5640#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
5642#endif
5643 /* One trailing pad byte is unused */
5644#endif
5647#if (NTDDI_VERSION >= NTDDI_WIN8)
5650 /* Microseconds */
5653#endif
5655
5656/* PORT_CONFIGURATION_INFORMATION.ExtendedFlags1 */
5657#define STOR_ADAPTER_FEATURE_DEVICE_TELEMETRY 0x00000001
5658#define STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN 0x00000002
5659#define STOR_ADAPTER_UNCACHED_EXTENSION_NUMA_NODE_PREFERRED 0x00000004
5660#define STOR_ADAPTER_DMA_V3_PREFERRED 0x00000008
5661#define STOR_ADAPTER_FEATURE_ABORT_COMMAND 0x00000010
5662#define STOR_ADAPTER_FEATURE_RICH_TEMPERATURE_THRESHOLD 0x00000020
5663#define STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED 0x00000040
5664
5665/* PORT_CONFIGURATION_INFORMATION.DumpMode */
5666#define DUMP_MODE_CRASH 0x01
5667#define DUMP_MODE_HIBER 0x02
5668#define DUMP_MODE_MARK_MEMORY 0x03
5669#define DUMP_MODE_RESUME 0x04
5670
5672{
5677
5679{
5684
5685typedef struct _DPC_BUFFER
5686{
5690 struct
5691 {
5694 };
5701
5702typedef struct _STOR_DPC
5703{
5707
5708typedef struct _STOR_LOCK_HANDLE
5709{
5711 struct
5712 {
5713 struct
5714 {
5721
5723{
5739
5740/* PERF_CONFIGURATION_DATA.Flags */
5741#define STOR_PERF_DPC_REDIRECTION 0x00000001
5742#define STOR_PERF_CONCURRENT_CHANNELS 0x00000002
5743#define STOR_PERF_INTERRUPT_MESSAGE_RANGES 0x00000004
5744#define STOR_PERF_ADV_CONFIG_LOCALITY 0x00000008
5745#define STOR_PERF_OPTIMIZE_FOR_COMPLETION_DURING_STARTIO 0x00000010
5746#define STOR_PERF_DPC_REDIRECTION_CURRENT_CPU 0x00000020
5747#define STOR_PERF_NO_SGL 0x00000040
5748#define STOR_PERF_SOFT_NUMA 0x00000080
5749#define STOR_PERF_HETEROGENEOUS_CPU 0x00000100
5750
5751#define STOR_PERF_VERSION_2 0x00000002
5752#define STOR_PERF_VERSION_3 0x00000003
5753#define STOR_PERF_VERSION_4 0x00000004
5754#define STOR_PERF_VERSION_5 0x00000005
5755#define STOR_PERF_VERSION_6 0x00000006
5756#define STOR_PERF_VERSION_7 0x00000007
5757#define STOR_PERF_VERSION_8 0x00000008
5758
5759#define STOR_PERF_VERSION STOR_PERF_VERSION_8
5760
5762{
5773
5775{
5781
5783{
5791
5792#if (NTDDI_VERSION >= NTDDI_WIN8)
5793
5795{
5800
5802{
5809 StorIoMaxPriorityValue = 0xffff
5811
5812#define STOR_REQUEST_INFO_VER_1 1
5813#define STOR_REQUEST_INFO_VER_2 2
5814#define STOR_REQUEST_INFO_VER STOR_REQUEST_INFO_VER_2
5815
5817{
5827
5828/*
5829 * FileName is only valid below DISPATCH_LEVEL and only for as long as the
5830 * request lives. ProcessId reads back as 0xFFFFFFFF when the query was made
5831 * above DISPATCH_LEVEL.
5832 */
5834{
5846
5848
5850{
5857
5859{
5868
5869#define STORPORT_ETW_EVENT_KEYWORD_IO 0x0000000000000001
5870#define STORPORT_ETW_EVENT_KEYWORD_PERFORMANCE 0x0000000000000002
5871#define STORPORT_ETW_EVENT_KEYWORD_POWER 0x0000000000000004
5872#define STORPORT_ETW_EVENT_KEYWORD_ENUMERATION 0x0000000000000008
5873
5875{
5888
5890{
5896
5897#define STORPORT_ETW_MAX_DESCRIPTION_LENGTH 32
5898#define STORPORT_ETW_MAX_PARAM_NAME_LENGTH 16
5899
5900/* Prefix shared by every adapter and unit control power parameter block */
5902{
5907
5909{
5914
5916{
5921
5922/* ScsiUnitPoFxPowerInfo */
5924{
5928
5929/* Scsi(Adapter|Unit)PoFxPowerRequired */
5931{
5935
5936/* Scsi(Adapter|Unit)PoFxPowerActive */
5938{
5943
5944/* Scsi(Adapter|Unit)PoFxPowerSetFState */
5946{
5951
5952/* Scsi(Adapter|Unit)PoFxPowerControl */
5954{
5963
5964/* ScsiQuerySupportedControlTypes and ScsiQuerySupportedUnitControlTypes */
5966{
5968 /*
5969 * One entry per control type, sized by ScsiAdapterControlMax or
5970 * ScsiUnitControlMax. The miniport must not write past MaxControlType.
5971 */
5974
5975/* ScsiPowerSettingNotification */
5977{
5982
5984{
5991
5992#define STOR_SYSTEM_POWER_HINTS_V1 0x1
5993
5994/* ScsiAdapterSystemPowerHints, only sent on always-on always-connected systems */
5996{
6000 /* Milliseconds of resume latency this hint tolerates */
6003
6004#define STOR_FILTER_RESOURCE_REQUIREMENTS_V1 0x1
6005
6006/*
6007 * ScsiAdapterFilterResourceRequirements. A miniport may drop or narrow a
6008 * requirement but never add one; to drop one it moves the rest of the buffer
6009 * up and lowers the descriptor count.
6010 */
6012{
6017
6018/* ScsiAdapterPoFxMaxOperationalPower */
6020{
6025
6026/*
6027 * ScsiAdapterPoFxSetPerfState reports the outcome of a transition the miniport
6028 * asked for with StorPortPoFxSetPerfState. Context is whatever it passed there.
6029 */
6031{
6038
6039#define STOR_SERIAL_NUMBER_MAX_SIZE (128 * sizeof(WCHAR))
6040
6041/* ScsiAdapterSerialNumber. At most 128 characters including the terminator. */
6043{
6049
6050/* Matches DEVICE_USAGE_NOTIFICATION_TYPE */
6052{
6060
6061/* ScsiUnitUsage */
6063{
6068
6069#define STOR_VENDOR_ID_LENGTH 16
6070#define STOR_MODEL_NUMBER_LENGTH 64
6071#define STOR_FIRMWARE_REVISION_LENGTH 16
6072
6073#define STOR_RICH_DEVICE_DESCRIPTION_STRUCTURE_VERSION 0x1
6074
6075/* ScsiUnitRichDescription, for devices whose strings outgrow the SCSI fields */
6077{
6084
6085#define STOR_RICH_DEVICE_DESCRIPTION_STRUCTURE_VERSION_V2 0x2
6086
6088{
6096
6097/* ScsiUnitQueryBusType */
6099{
6103
6104#define STOR_FRU_ID_MAX_LENGTH 128
6105#define STOR_FRU_ID_DESCRIPTION_STRUCTURE_VERSION_1 0x1
6106
6107/* Scsi(Adapter|Unit)QueryFruId */
6109{
6115
6117{
6122
6123/*
6124 * Scsi(Adapter|Unit)ReportInternalData. CallbackContext is passed straight
6125 * back to StorPortMiniportReportInternalData.
6126 */
6128{
6135
6136/*
6137 * ScsiAdapterResetBusSynchronous. Delivered at PASSIVE_LEVEL so the miniport
6138 * can reset the bus and wait for it.
6139 */
6141{
6147
6149{
6153
6154/* Scsi(Adapter|Unit)CryptoOperation */
6156{
6161
6162#define STOR_CRYPTO_OPERATION_INSERT_KEY_VERSION_1 1
6163
6165{
6176
6177#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
6178
6179/* NvmeQuerySupportedControlTypes and NvmeQuerySupportedNamespaceControlTypes */
6181{
6185
6186typedef struct _NVME_ICE_ENTRY *PNVME_ICE_ENTRY;
6187
6188/*
6189 * ScsiUnitNvmeIceInformation, asked during enumeration to find out whether a
6190 * unit can take part in NVMe inline crypto.
6191 */
6193{
6198
6199#endif /* (NTDDI_VERSION >= NTDDI_WIN11_GE) */
6200
6201#if (NTDDI_VERSION >= NTDDI_WIN8)
6202
6204{
6210
6211/* StorPortSetExtendedDpcParameters */
6213{
6218
6219typedef
6223
6225{
6231
6233{
6240
6241/*
6242 * Storport owns these list primitives because a miniport in dump mode cannot
6243 * call the kernel ones. The layout follows SLIST_ENTRY and SLIST_HEADER.
6244 */
6245#if defined(_WIN64)
6246
6248
6249typedef struct DECLSPEC_ALIGN(16) _STOR_SLIST_ENTRY
6250{
6253
6254typedef union DECLSPEC_ALIGN(16) _STOR_SLIST_HEADER
6255{
6256 struct
6257 {
6261 struct
6262 {
6263 ULONGLONG Depth:16;
6264 ULONGLONG Sequence:9;
6265 ULONGLONG NextEntry:39;
6266 /* 0 for the 8 byte header, 1 for the 16 byte one */
6267 ULONGLONG HeaderType:1;
6268 ULONGLONG Init:1;
6270 ULONGLONG Region:3;
6271 } Header8;
6272 struct
6273 {
6274 ULONGLONG Depth:16;
6275 ULONGLONG Sequence:48;
6276 ULONGLONG HeaderType:1;
6277 ULONGLONG Init:1;
6279 /* The low four bits are always clear */
6280 ULONGLONG NextEntry:60;
6281 } Header16;
6282 struct
6283 {
6284 ULONGLONG Depth:16;
6285 ULONGLONG Sequence:48;
6286 ULONGLONG HeaderType:1;
6288 ULONGLONG NextEntry:60;
6289 } HeaderX64;
6291
6292#else
6293
6294typedef struct _STOR_SLIST_ENTRY
6295{
6298
6300{
6302 struct
6303 {
6309
6310#endif /* defined(_WIN64) */
6311
6312typedef struct _STOR_LIST_ENTRY
6313{
6317
6319
6321
6323{
6328
6329/* StorPortMarkDumpMemory */
6330#define MARK_DUMP_MEMORY_FLAG_PHYSICAL_ADDRESS 0x1
6331
6333{
6334 union
6335 {
6336 struct
6337 {
6341 union
6342 {
6345 };
6347 volatile LONG Lock;
6348 };
6352
6353typedef struct _STOR_EVENT
6354{
6357
6359{
6363
6365{
6374
6376{
6381
6382/* All times are in timer ticks */
6384{
6391
6393{
6398
6399/*
6400 * StorPortSetFeatureList. A miniport has to claim every adapter and unit
6401 * control code added after Windows 8 before Storport will send it.
6402 */
6404{
6423
6424/* ScsiAdapterSetEventLogging */
6426{
6430
6432{
6436
6437#define EVENT_BUFFER_MAX_LENGTH 4096
6438#define EVENT_NAME_MAX_LENGTH 32
6439#define EVENT_MAX_PARAM_NAME_LEN 32
6440
6442{
6449 ULONG EventBufferLength;
6450 _Field_size_bytes_(EventBufferLength)
6451 PUCHAR EventBuffer;
6469
6470/* StorPortMiniportReportInternalData payload description */
6471typedef enum _DATA_TYPE
6472{
6491
6492typedef struct _MINIPORT_DATA
6493{
6496 /* Only meaningful for DataTypeByteArray */
6500
6502{
6506
6507#define STORPORT_LIVEDUMP_BUCKET_ID_LENGTH 128
6508
6510{
6515
6517{
6521
6523{
6526 /* Identifies the device state at the time of the issue */
6533
6535{
6544
6545#define STOR_RPMB_VERSION_1 0x00000001
6546
6548{
6553
6555{
6565
6566/* ASCII "MPDI" */
6567#define MINIPORT_DUMP_INFO_SIGNATURE 0x4D504449
6568
6569/* Returned by SRB_FUNCTION_GET_DUMP_INFO */
6571{
6579
6580/* ASCII "GMDE" */
6581#define GET_DUMP_INFO_SIGNATURE_EXT 0x474D4445
6582#define GET_DUMP_INFO_VERSION_1 sizeof(GET_MINIPORT_DUMP_INFO_V1)
6583
6584/* Input buffer of SRB_FUNCTION_GET_DUMP_INFO */
6586{
6588 ULONG Version;
6593 /* A STOR_ADDRESS_TYPE_* value, never STOR_ADDRESS_TYPE_UNKNOWN */
6598 UCHAR Addresses[ANYSIZE_ARRAY];
6600
6601/* ASCII "FMDI" */
6602#define FREE_DUMP_INFO_SIGNATURE 0x464D4449
6603
6604/* Input buffer of SRB_FUNCTION_FREE_DUMP_INFO */
6606{
6614
6615#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
6616
6617#define STOR_POFX_UNKNOWN_POWER 0xFFFFFFFF
6618#define STOR_POFX_UNKNOWN_TIME 0xFFFFFFFFFFFFFFFF
6619
6620/* One F-state of a component. Times are in 100ns units. */
6622{
6629
6630#define STOR_POFX_COMPONENT_IDLE_STATE_SIZE (sizeof(STOR_POFX_COMPONENT_IDLE_STATE))
6631#define STOR_POFX_COMPONENT_IDLE_STATE_VERSION_V1 1
6632
6634{
6642
6643#define STOR_POFX_COMPONENT_SIZE ((ULONG)FIELD_OFFSET(STOR_POFX_COMPONENT, FStates))
6644#define STOR_POFX_COMPONENT_VERSION_V1 1
6645
6646/*
6647 * DeepestAdapterPowerRequiredFState only applies to components identified by
6648 * STORPORT_POFX_LUN_GUID.
6649 */
6651{
6661
6662#define STOR_POFX_COMPONENT_VERSION_V2 2
6663
6664#define STOR_POFX_UNIT_MIN_IDLE_STATES 1
6665#define STOR_POFX_UNIT_MAX_IDLE_STATES 2
6666#define STOR_POFX_ADAPTER_MIN_IDLE_STATES 1
6667#define STOR_POFX_ADAPTER_MAX_IDLE_STATES 8
6668
6669typedef struct _STOR_POFX_DEVICE
6670{
6677
6678#define STOR_POFX_DEVICE_SIZE ((ULONG)FIELD_OFFSET(STOR_POFX_DEVICE, Components))
6679#define STOR_POFX_DEVICE_VERSION_V1 1
6680
6681/*
6682 * The idle timeout members are only read when
6683 * STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT is set.
6684 */
6686{
6691 union
6692 {
6695 };
6698
6699#define STOR_POFX_DEVICE_VERSION_V2 2
6700
6702{
6709
6711{
6716
6717/* One discrete P-state. Context carries whatever Value cannot express. */
6719{
6725
6726#define STOR_POFX_PERF_STATE_SIZE (sizeof(STOR_POFX_PERF_STATE))
6727#define STOR_POFX_PERF_STATE_VERSION_V1 1
6728
6730{
6736 union
6737 {
6738 struct
6739 {
6741 /* Byte offset from this structure to the STOR_POFX_PERF_STATE array */
6744 struct
6745 {
6751
6752#define STOR_POFX_COMPONENT_PERF_SET_SIZE (sizeof(STOR_POFX_COMPONENT_PERF_SET))
6753#define STOR_POFX_COMPONENT_PERF_SET_VERSION_V1 1
6754
6755/* At most one perf set per non-other unit type */
6756#define STOR_POFX_COMPONENT_MIN_PERF_SETS 0
6757#define STOR_POFX_COMPONENT_MAX_PERF_SETS 3
6758#define STOR_POFX_MIN_DISCRETE_PERF_STATES 1
6759#define STOR_POFX_MAX_DISCRETE_PERF_STATES 8
6760
6761/*
6762 * MinimumPowerCyclePeriodInMS is only read for units and only when
6763 * STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT is set.
6764 */
6766{
6771 union
6772 {
6775 };
6779
6780#define STOR_POFX_DEVICE_V3_SIZE ((ULONG)FIELD_OFFSET(STOR_POFX_DEVICE_V3, Components))
6781#define STOR_POFX_DEVICE_VERSION_V3 3
6782
6783/* A unit and an adapter each register exactly one component */
6784#define STOR_POFX_UNIT_MIN_COMPONENTS 1
6785#define STOR_POFX_UNIT_MAX_COMPONENTS 1
6786#define STOR_POFX_ADAPTER_MIN_COMPONENTS 1
6787#define STOR_POFX_ADAPTER_MAX_COMPONENTS 1
6788
6789#define STOR_POFX_DEVICE_FLAG_GET_PERF_STATE_FROM_PEP 0x1000
6790
6791#ifndef STORAGE_CRYPTO_ALGORITHMS_DEFINED
6792#define STORAGE_CRYPTO_ALGORITHMS_DEFINED
6793
6795{
6802 /* Kept for drivers written against the original names */
6809
6811{
6824
6825#endif /* STORAGE_CRYPTO_ALGORITHMS_DEFINED */
6826
6827#ifndef STORAGE_SECURITY_COMPLIANCE_BITMASK_DEFINED
6828#define STORAGE_SECURITY_COMPLIANCE_BITMASK_DEFINED
6829
6831{
6832 struct
6833 {
6836 };
6839
6840#endif /* STORAGE_SECURITY_COMPLIANCE_BITMASK_DEFINED */
6841
6842#ifndef STORAGE_CRYPTO_KEY_TYPE_DEFINED
6843#define STORAGE_CRYPTO_KEY_TYPE_DEFINED
6844
6846{
6847 struct
6848 {
6853 };
6856
6857#endif /* STORAGE_CRYPTO_KEY_TYPE_DEFINED */
6858
6861
6862#define STOR_CRYPTO_ALGORITHM_ID_OFFSET StorCryptoAlgorithmXTSAES
6863
6864#define STOR_CRYPTO_CAPABILITY_VERSION_1 1
6865#define STOR_CRYPTO_CAPABILITY_VERSION_2 2
6866
6868{
6875#if (NTDDI_VERSION >= NTDDI_WIN11_GA)
6876 /* Zero where the algorithm has no initialization vector */
6880#endif
6882
6883#define STOR_CRYPTO_CAPABILITIES_DATA_VERSION_1 1
6884
6886{
6893
6894#define STOR_CRYPTO_KEY_INFO_VERSION_1 1
6895
6897{
6903
6904/* Smallest tolerable delay the timer calls accept */
6905#define RAID_MIN_TIMER_DELAY_IN_MSEC 32
6906
6907/* StorPortStateChangeDetected ChangedEntity. The highest bit set wins. */
6908#define STATE_CHANGE_LUN 0x1
6909#define STATE_CHANGE_TARGET 0x2
6910#define STATE_CHANGE_BUS 0x4
6911
6912/* StorPortStateChangeDetected Attributes, applied to newly found entities */
6913#define ATTRIBUTE_VM_PASSTHROUGH_LUN 0x1
6914
6915/* StorPortAsyncNotificationDetected Flags */
6916#define RAID_ASYNC_NOTIFY_FLAG_MEDIA_STATUS 0x1
6917#define RAID_ASYNC_NOTIFY_FLAG_DEVICE_STATUS 0x2
6918#define RAID_ASYNC_NOTIFY_FLAG_DEVICE_OPERATION 0x4
6919
6920#define RAID_ASYNC_NOTIFY_SUPPORTED_FLAGS (RAID_ASYNC_NOTIFY_FLAG_MEDIA_STATUS | \
6921 RAID_ASYNC_NOTIFY_FLAG_DEVICE_STATUS | \
6922 RAID_ASYNC_NOTIFY_FLAG_DEVICE_OPERATION)
6923
6924#define DUMP_MINIPORT_VERSION_1 0x0100
6925#define DUMP_MINIPORT_VERSION 0x0200
6926#define DUMP_MINIPORT_NAME_LENGTH 15
6927
6929{
6937
6938/* Returned by SRB_FUNCTION_DUMP_POINTERS */
6940{
6946 /* Must not exceed 64KB */
6949 /* The rest mirrors PORT_CONFIGURATION_INFORMATION */
6962
6963/* STOR_POFX_DEVICE.Flags */
6964#define STOR_POFX_DEVICE_FLAG_NO_D0 0x01
6965#define STOR_POFX_DEVICE_FLAG_NO_D3 0x02
6966#define STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD 0x04
6967#define STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE 0x08
6968#define STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT 0x10
6969#define STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT 0x20
6970#define STOR_POFX_DEVICE_FLAG_NO_UNIT_REGISTRATION 0x40
6971#define STOR_POFX_DEVICE_FLAG_PERF_STATE_PEP_OPTIONAL 0x80
6972#define STOR_POFX_DEVICE_FLAG_NO_IDLE_DEBOUNCE 0x100
6973#define STOR_POFX_DEVICE_FLAG_DUMP_ALWAYS_POWER_ON 0x200
6974#define STOR_POFX_DEVICE_FLAG_DISABLE_INTERRUPTS_ON_D3 0x400
6975#define STOR_POFX_DEVICE_FLAG_ADAPTER_D3_WAKE 0x800
6976
6977/* A component is identified as either the adapter or one of its units */
6979 {0xdcaf9c10, 0x895f, 0x481f, {0xa4, 0x92, 0xd4, 0xce, 0xd2, 0xf5, 0x56, 0x33}};
6981 {0x585d326b, 0x0b3a, 0x4088, {0x89, 0x39, 0x88, 0xb0, 0x0f, 0x69, 0x58, 0xbe}};
6982
6983#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
6984typedef
6987 _In_ PVOID DeviceExtension);
6988
6989typedef
6992 _In_ PVOID DeviceExtension,
6994
6995typedef
6998 _In_ PVOID DeviceExtension,
7000
7001typedef
7004 _In_ PVOID DeviceExtension);
7005
7006typedef
7008(NTAPI *PHW_TIMER)(
7009 _In_ PVOID DeviceExtension);
7010
7011typedef
7014 _In_ PVOID DeviceExtension);
7015
7016typedef
7019 IN PVOID DeviceExtension,
7022 IN PCHAR ArgumentString,
7024 OUT PBOOLEAN Again);
7025
7026typedef
7029 IN PVOID DeviceExtension,
7030 IN ULONG PathId);
7031
7032typedef
7035 IN PVOID DeviceExtension,
7038
7039typedef
7042 IN PVOID DeviceExtension,
7043 IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
7045
7046typedef
7049 _In_ PVOID DeviceExtension);
7050
7051typedef
7055 _In_ PVOID HwDeviceExtension,
7058
7059typedef
7062 _In_ PVOID DeviceExtension,
7064
7065#if (NTDDI_VERSION >= NTDDI_WIN8)
7066
7067typedef
7070 _In_ PVOID DeviceExtension,
7071 _In_ SCSI_UNIT_CONTROL_TYPE ControlType,
7073
7074#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
7075
7076typedef
7079 _In_ PVOID DeviceExtension,
7080 _In_ NVME_ADAPTER_CONTROL_TYPE ControlType,
7082
7083typedef
7086 _In_ PVOID DeviceExtension,
7089
7090#endif /* (NTDDI_VERSION >= NTDDI_WIN11_GE) */
7091
7092typedef
7095 _In_ PVOID HwDeviceExtension,
7097 _In_ PVOID Worker);
7098
7099typedef
7102 _In_ PVOID HwDeviceExtension,
7104 _In_ SHORT AddressType,
7106 _In_ ULONG Status);
7107
7108typedef
7111 _In_ PVOID HwDeviceExtension,
7113
7114typedef
7117 _In_ PVOID HwDeviceExtension);
7118
7119/* Virtual miniport callbacks. A physical miniport leaves all of these NULL. */
7120
7121typedef
7124 _In_ PVOID DeviceExtension,
7127 _In_ PVOID LowerDevice,
7128 _In_ PCHAR ArgumentString,
7130 _In_ PBOOLEAN Again);
7131
7132typedef
7135 _In_ PVOID DeviceExtension);
7136
7137typedef
7140 _In_ PVOID DeviceExtension,
7141 _In_ PVOID Irp);
7142
7143typedef
7146 _In_ PVOID DeviceExtension);
7147
7148typedef
7151 _In_ PVOID Arg1,
7152 _In_ PVOID Arg2);
7153
7154typedef
7157 _In_ PVOID Arg1);
7158
7159#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
7160typedef
7162(NTAPI STOR_SYNCHRONIZED_ACCESS)(
7163 _In_ PVOID HwDeviceExtension,
7165
7166typedef STOR_SYNCHRONIZED_ACCESS *PSTOR_SYNCHRONIZED_ACCESS;
7167
7168typedef
7172 _In_ PVOID *Irp,
7175
7176typedef
7179 _In_ PVOID HwDeviceExtension,
7182
7183typedef
7186 _In_ PVOID HwDeviceExtension,
7187 _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList,
7189
7190typedef
7193 _In_ PVOID HwDeviceExtension,
7194 _In_ PVOID Mdl,
7195 _In_ PVOID CurrentVa,
7200 _Inout_ PVOID ScatterGatherBuffer,
7201 _In_ ULONG ScatterGatherBufferLength);
7202
7203typedef
7207 _In_ PVOID HwDeviceExtension,
7208 _In_opt_ PVOID PMdl);
7209
7210typedef
7214 _In_ ULONG Tag,
7215 _In_ PVOID HwDeviceExtension,
7216 _Out_ PVOID *PMdl);
7217
7218typedef
7222
7224{
7233
7234typedef struct _HW_INITIALIZATION_DATA
7235{
7241 /*
7242 * PHW_FIND_ADAPTER for a physical miniport, PVIRTUAL_HW_FIND_ADAPTER for a
7243 * virtual one.
7244 */
7262 union
7263 {
7266 };
7269#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
7270 union
7271 {
7274 };
7275#else
7277#endif
7279#if (NTDDI_VERSION >= NTDDI_WIN8)
7290#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
7291 union
7292 {
7295 };
7296#else
7298#endif
7299#endif
7301
7302#if (NTDDI_VERSION >= NTDDI_WIN8)
7303
7304/*
7305 * A virtual miniport registers with this instead. The layout up to HwBuildIo
7306 * matches HW_INITIALIZATION_DATA so both can share the registration path.
7307 */
7309{
7332 union
7333 {
7336 };
7353
7354#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
7355
7356
7357
7358#define REVERSE_BYTES_QUAD(Destination, Source) { \
7359 PEIGHT_BYTE d = (PEIGHT_BYTE)(Destination); \
7360 PEIGHT_BYTE s = (PEIGHT_BYTE)(Source); \
7361 d->Byte7 = s->Byte0; \
7362 d->Byte6 = s->Byte1; \
7363 d->Byte5 = s->Byte2; \
7364 d->Byte4 = s->Byte3; \
7365 d->Byte3 = s->Byte4; \
7366 d->Byte2 = s->Byte5; \
7367 d->Byte1 = s->Byte6; \
7368 d->Byte0 = s->Byte7; \
7369}
7370
7371#define REVERSE_BYTES(Destination, Source) { \
7372 PFOUR_BYTE d = (PFOUR_BYTE)(Destination); \
7373 PFOUR_BYTE s = (PFOUR_BYTE)(Source); \
7374 d->Byte3 = s->Byte0; \
7375 d->Byte2 = s->Byte1; \
7376 d->Byte1 = s->Byte2; \
7377 d->Byte0 = s->Byte3; \
7378}
7379
7380#define REVERSE_BYTES_SHORT(Destination, Source) { \
7381 PTWO_BYTE d = (PTWO_BYTE)(Destination); \
7382 PTWO_BYTE s = (PTWO_BYTE)(Source); \
7383 d->Byte1 = s->Byte0; \
7384 d->Byte0 = s->Byte1; \
7385}
7386
7387#define StorPortCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length))
7388
7390PUCHAR
7391NTAPI
7393 _In_ PVOID HwDeviceExtension,
7395
7397BOOLEAN
7398NTAPI
7400 _In_ PVOID HwDeviceExtension,
7401 _In_ ULONG RequestsToComplete);
7402
7404VOID
7405NTAPI
7407 _In_ PVOID HwDeviceExtension,
7410 _In_ UCHAR Lun,
7411 _In_ UCHAR SrbStatus);
7412
7414ULONG64
7415NTAPI
7418
7421NTAPI
7423 _In_ ULONG64 UlongAddress);
7424
7426VOID
7427__cdecl
7429 _In_ ULONG DebugPrintLevel,
7430 _In_ PCCHAR DebugMessage,
7431 ...);
7432
7434BOOLEAN
7435NTAPI
7437 _In_ PVOID HwDeviceExtension,
7440 _In_ UCHAR Lun,
7441 _In_ ULONG RequestsToComplete);
7442
7444BOOLEAN
7445NTAPI
7447 _In_ PVOID HwDeviceExtension,
7450 _In_ UCHAR Lun);
7451
7453VOID
7454NTAPI
7456 _In_ PVOID HwDeviceExtension,
7457 _In_ PVOID MappedAddress);
7458
7460VOID
7461NTAPI
7463 _In_ PVOID HwDeviceExtension,
7465
7467ULONG
7468NTAPI
7470 _In_ PVOID DeviceExtension,
7471 _In_ ULONG BusDataType,
7472 _In_ ULONG SystemIoBusNumber,
7475 _In_ ULONG Length);
7476
7478PVOID
7479NTAPI
7481 _In_ PVOID HwDeviceExtension,
7483 _In_ ULONG SystemIoBusNumber,
7484 _In_ STOR_PHYSICAL_ADDRESS IoAddress,
7486 _In_ BOOLEAN InIoSpace);
7487
7489PVOID
7490NTAPI
7492 _In_ PVOID HwDeviceExtension,
7495 _In_ UCHAR Lun);
7496
7499NTAPI
7501 _In_ PVOID HwDeviceExtension,
7504 _Out_ ULONG *Length);
7505
7508NTAPI
7510 _In_ PVOID DeviceExtension,
7512
7515NTAPI
7517 _In_ PVOID DeviceExtension,
7520 _In_ UCHAR Lun,
7521 _In_ LONG QueueTag);
7522
7524PVOID
7525NTAPI
7527 _In_ PVOID HwDeviceExtension,
7530
7532PVOID
7533NTAPI
7535 _In_ PVOID HwDeviceExtension,
7537
7539ULONG
7540NTAPI
7546
7548VOID
7549NTAPI
7551 _In_ PVOID HwDeviceExtension,
7555 _In_ UCHAR Lun,
7557 _In_ ULONG UniqueId);
7558
7560VOID
7561NTAPI
7565 _In_ ULONG Length);
7566
7568VOID
7569__cdecl
7572 _In_ PVOID HwDeviceExtension,
7573 ...);
7574
7576VOID
7577NTAPI
7579 _Out_ PLARGE_INTEGER CurrentTime);
7580
7582BOOLEAN
7583NTAPI
7585 _In_ PVOID HwDeviceExtension,
7586 _In_ ULONG TimeOut);
7587
7589BOOLEAN
7590NTAPI
7592 _In_ PVOID HwDeviceExtension,
7595 _In_ UCHAR Lun,
7596 _In_ ULONG TimeOut);
7597
7599VOID
7600NTAPI
7602 _In_ PVOID HwDeviceExtension,
7605 _In_ ULONG Count);
7606
7608VOID
7609NTAPI
7611 _In_ PVOID HwDeviceExtension,
7614 _In_ ULONG Count);
7615
7617VOID
7618NTAPI
7620 _In_ PVOID HwDeviceExtension,
7623 _In_ ULONG Count);
7624
7626UCHAR
7627NTAPI
7629 _In_ PVOID HwDeviceExtension,
7630 _In_ PUCHAR Port);
7631
7633ULONG
7634NTAPI
7636 _In_ PVOID HwDeviceExtension,
7637 _In_ PULONG Port);
7638
7640USHORT
7641NTAPI
7643 _In_ PVOID HwDeviceExtension,
7644 _In_ PUSHORT Port);
7645
7647VOID
7648NTAPI
7650 _In_ PVOID HwDeviceExtension,
7653 _In_ ULONG Count);
7654
7656VOID
7657NTAPI
7659 _In_ PVOID HwDeviceExtension,
7662 _In_ ULONG Count);
7663
7665VOID
7666NTAPI
7668 _In_ PVOID HwDeviceExtension,
7671 _In_ ULONG Count);
7672
7674UCHAR
7675NTAPI
7677 _In_ PVOID HwDeviceExtension,
7679
7681ULONG
7682NTAPI
7684 _In_ PVOID HwDeviceExtension,
7686
7688USHORT
7689NTAPI
7691 _In_ PVOID HwDeviceExtension,
7693
7695BOOLEAN
7696NTAPI
7698 _In_ PVOID HwDeviceExtension);
7699
7701BOOLEAN
7702NTAPI
7704 _In_ PVOID HwDeviceExtension,
7707 _In_ ULONG Type,
7710
7712BOOLEAN
7713NTAPI
7715 _In_ PVOID HwDeviceExtension,
7718 _In_ ULONG Type,
7721
7723BOOLEAN
7724NTAPI
7726 _In_ PVOID HwDeviceExtension);
7727
7729BOOLEAN
7730NTAPI
7732 _In_ PVOID HwDeviceExtension,
7735 _In_ UCHAR Lun);
7736
7738ULONG
7739NTAPI
7741 _In_ PVOID DeviceExtension,
7742 _In_ ULONG BusDataType,
7743 _In_ ULONG SystemIoBusNumber,
7747 _In_ ULONG Length);
7748
7750BOOLEAN
7751NTAPI
7753 _In_ PVOID HwDeviceExtension,
7756 _In_ UCHAR Lun,
7757 _In_ ULONG Depth);
7758
7760VOID
7761NTAPI
7763 _In_ ULONG Delay);
7764
7766VOID
7767NTAPI
7769 _In_ PVOID HwDeviceExtension,
7770 _In_ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
7772
7774BOOLEAN
7775NTAPI
7777 _In_ PVOID HwDeviceExtension,
7779 _In_ ULONG SystemIoBusNumber,
7780 _In_ STOR_PHYSICAL_ADDRESS IoAddress,
7782 _In_ BOOLEAN InIoSpace);
7783
7785VOID
7786NTAPI
7788 _In_ PVOID HwDeviceExtension,
7791 _In_ ULONG Count);
7792
7794VOID
7795NTAPI
7797 _In_ PVOID HwDeviceExtension,
7800 _In_ ULONG Count);
7801
7803VOID
7804NTAPI
7806 _In_ PVOID HwDeviceExtension,
7809 _In_ ULONG Count);
7810
7812VOID
7813NTAPI
7815 _In_ PVOID HwDeviceExtension,
7817 _In_ UCHAR Value);
7818
7820VOID
7821NTAPI
7823 _In_ PVOID HwDeviceExtension,
7825 _In_ ULONG Value);
7826
7828VOID
7829NTAPI
7831 _In_ PVOID HwDeviceExtension,
7833 _In_ USHORT Value);
7834
7836VOID
7837NTAPI
7839 _In_ PVOID HwDeviceExtension,
7842 _In_ ULONG Count);
7843
7845VOID
7846NTAPI
7848 _In_ PVOID HwDeviceExtension,
7851 _In_ ULONG Count);
7852
7854VOID
7855NTAPI
7857 _In_ PVOID HwDeviceExtension,
7860 _In_ ULONG Count);
7861
7863VOID
7864NTAPI
7866 _In_ PVOID HwDeviceExtension,
7868 _In_ UCHAR Value);
7869
7871VOID
7872NTAPI
7874 _In_ PVOID HwDeviceExtension,
7876 _In_ ULONG Value);
7877
7879VOID
7880NTAPI
7882 _In_ PVOID HwDeviceExtension,
7884 _In_ USHORT Value);
7885
7886
7888BOOLEAN
7890 _In_ PVOID DeviceExtension,
7891 _In_ PHW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine)
7892{
7893 LONG Succ;
7894 Succ = FALSE;
7896 DeviceExtension,
7897 HwPassiveInitializeRoutine,
7898 &Succ);
7899 return (BOOLEAN)Succ;
7900}
7901
7903VOID
7905 _In_ PVOID DeviceExtension,
7907 _In_ PHW_DPC_ROUTINE HwDpcRoutine)
7908{
7910 DeviceExtension,
7911 Dpc,
7912 HwDpcRoutine);
7913}
7914
7916BOOLEAN
7918 _In_ PVOID DeviceExtension,
7922{
7923 LONG Succ;
7924 Succ = FALSE;
7926 DeviceExtension,
7927 Dpc,
7930 &Succ);
7931 return (BOOLEAN)Succ;
7932}
7933
7935VOID
7937 _In_ PVOID DeviceExtension,
7939 _In_ PVOID LockContext,
7941{
7943 DeviceExtension,
7944 SpinLock,
7945 LockContext,
7946 LockHandle);
7947}
7948
7950VOID
7952 _In_ PVOID DeviceExtension,
7954{
7956 DeviceExtension,
7957 LockHandle);
7958}
7959
7961ULONG
7963 _In_ STORPORT_FUNCTION_CODE FunctionCode,
7964 _In_ PVOID HwDeviceExtension,
7965 ...);
7966
7968ULONG
7970 _In_ PVOID HwDeviceExtension,
7972 _In_ ULONG Tag,
7973 _Out_ PVOID *BufferPointer
7974 )
7975{
7977 HwDeviceExtension,
7979 Tag,
7980 BufferPointer);
7981}
7982
7984ULONG
7986 _In_ PVOID HwDeviceExtension,
7987 _In_ PVOID BufferPointer)
7988{
7990 HwDeviceExtension,
7991 BufferPointer);
7992}
7993
7995ULONG
7997 _In_ PVOID HwDeviceExtension,
7998 _In_ PVOID BufferPointer,
8000 _Out_ PVOID *Mdl)
8001{
8003 HwDeviceExtension,
8004 BufferPointer,
8006 Mdl);
8007}
8008
8010ULONG
8012 _In_ PVOID HwDeviceExtension,
8013 _In_ PVOID Mdl)
8014{
8016 HwDeviceExtension,
8017 Mdl);
8018}
8019
8021ULONG
8023 _In_ PVOID HwDeviceExtension,
8025{
8027 HwDeviceExtension,
8028 Mdl);
8029}
8030
8032ULONG
8034 _In_ PVOID HwDeviceExtension,
8036 _Out_ PVOID *SystemAddress)
8037{
8039 HwDeviceExtension,
8040 Srb,
8041 SystemAddress);
8042}
8043
8045ULONG
8047 _In_ PVOID HwDeviceExtension,
8049 _Out_ PVOID *Mdl)
8050{
8052 HwDeviceExtension,
8053 Srb,
8054 Mdl);
8055}
8056
8058ULONG
8060 _In_ PVOID HwDeviceExtension,
8061 _In_ PVOID Irp)
8062{
8064 HwDeviceExtension,
8065 Irp);
8066}
8067
8069ULONG
8071 _In_ PVOID HwDeviceExtension,
8072 _Out_ PVOID *AdapterDeviceObject,
8075{
8077 HwDeviceExtension,
8078 AdapterDeviceObject,
8081}
8082
8084ULONG
8086 _In_ PVOID HwDeviceExtension,
8087 _In_ PVOID Mdl,
8088 _In_ PVOID CurrentVa,
8093 _Inout_ PVOID ScatterGatherBuffer,
8094 _In_ ULONG ScatterGatherBufferLength)
8095{
8097 HwDeviceExtension,
8098 Mdl,
8099 CurrentVa,
8100 Length,
8102 Context,
8104 ScatterGatherBuffer,
8105 ScatterGatherBufferLength);
8106}
8107
8109ULONG
8111 _In_ PVOID HwDeviceExtension,
8112 _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList,
8114{
8116 HwDeviceExtension,
8117 ScatterGatherList,
8119}
8120
8122ULONG
8124 _In_ PVOID HwDeviceExtension,
8127{
8129 HwDeviceExtension,
8130 MessageId,
8131 OldIrql);
8132}
8133
8135ULONG
8137 _In_ PVOID HwDeviceExtension,
8140{
8142 HwDeviceExtension,
8143 MessageId,
8144 OldIrql);
8145}
8146
8148ULONG
8150 _In_ PVOID HwDeviceExtension,
8153{
8155 HwDeviceExtension,
8156 MessageId,
8157 InterruptInfo);
8158}
8159
8161ULONG
8163 _In_ PVOID HwDeviceExtension,
8165 _Inout_ PPERF_CONFIGURATION_DATA PerfConfigData)
8166{
8168 HwDeviceExtension,
8169 Query,
8170 PerfConfigData);
8171}
8172
8174ULONG
8176 _In_ PVOID HwDeviceExtension,
8178 _Inout_ PSTARTIO_PERFORMANCE_PARAMETERS StartIoPerfParams)
8179{
8181 HwDeviceExtension,
8182 Srb,
8183 StartIoPerfParams);
8184}
8185
8187ULONG
8189 _In_ PVOID HwDeviceExtension,
8192{
8194 HwDeviceExtension,
8195 LogDetails,
8196 MaximumSize);
8197}
8198
8199
8200#if (NTDDI_VERSION >= NTDDI_WIN7)
8201
8203ULONG
8205 _In_ PVOID HwDeviceExtension,
8206 _Out_ PPROCESSOR_NUMBER ProcNumber)
8207{
8209 HwDeviceExtension,
8210 ProcNumber);
8211}
8212
8214ULONG
8216 _In_ PVOID HwDeviceExtension,
8217 _Out_ PUSHORT NumberGroups)
8218{
8220 HwDeviceExtension,
8221 NumberGroups);
8222}
8223
8225ULONG
8227 _In_ PVOID HwDeviceExtension,
8228 _In_ USHORT GroupNumber,
8229 _Out_ PKAFFINITY GroupAffinityMask)
8230{
8232 HwDeviceExtension,
8233 GroupNumber,
8234 GroupAffinityMask);
8235}
8236
8238ULONG
8240 _In_ PVOID HwDeviceExtension,
8241 _Out_ PULONG NumberNodes)
8242{
8244 HwDeviceExtension,
8245 NumberNodes);
8246}
8247
8249ULONG
8251 _In_ PVOID HwDeviceExtension,
8253 _Out_ PGROUP_AFFINITY NodeAffinityMask)
8254{
8256 HwDeviceExtension,
8257 NodeNumber,
8258 NodeAffinityMask);
8259}
8260
8262ULONG
8264 _In_ PVOID HwDeviceExtension,
8265 _Out_ PULONG HighestNode)
8266{
8268 HwDeviceExtension,
8269 HighestNode);
8270}
8271
8273ULONG
8275 _In_ PVOID HwDeviceExtension,
8281 _In_ NODE_REQUIREMENT PreferredNode,
8282 _Out_ PVOID *BufferPointer)
8283{
8285 HwDeviceExtension,
8290 CacheType,
8292 BufferPointer);
8293}
8294
8296ULONG
8298 _In_ PVOID HwDeviceExtension,
8302{
8304 HwDeviceExtension,
8307 CacheType);
8308}
8309
8310#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
8311
8312#if (NTDDI_VERSION >= NTDDI_WIN8)
8313
8315ULONG
8317 _In_ PVOID HwDeviceExtension,
8318 _Out_ PVOID *Worker)
8319{
8321 HwDeviceExtension,
8322 Worker);
8323}
8324
8326ULONG
8328 _In_ PVOID HwDeviceExtension,
8329 _In_ PHW_WORKITEM WorkItemCallback,
8330 _In_ PVOID Worker,
8332{
8334 HwDeviceExtension,
8335 WorkItemCallback,
8336 Worker,
8337 Context);
8338}
8339
8341ULONG
8343 _In_ PVOID HwDeviceExtension,
8344 _In_ PVOID Worker)
8345{
8347 HwDeviceExtension,
8348 Worker);
8349}
8350
8352ULONG
8354 _In_ PVOID HwDeviceExtension,
8355 _Out_ PVOID *TimerHandle)
8356{
8358 HwDeviceExtension,
8359 TimerHandle);
8360}
8361
8362/* TimerValue and TolerableDelay are in microseconds. Zero stops the timer. */
8364ULONG
8366 _In_ PVOID HwDeviceExtension,
8367 _In_ PVOID TimerHandle,
8368 _In_ PHW_TIMER_EX TimerCallback,
8370 _In_ ULONGLONG TimerValue,
8372{
8374 HwDeviceExtension,
8375 TimerHandle,
8376 TimerCallback,
8378 TimerValue,
8380}
8381
8383ULONG
8385 _In_ PVOID HwDeviceExtension,
8386 _In_ PVOID TimerHandle)
8387{
8389 HwDeviceExtension,
8390 TimerHandle);
8391}
8392
8394ULONG
8396 _In_ PVOID HwDeviceExtension,
8397 _In_ PSLIST_HEADER SListHead)
8398{
8400 HwDeviceExtension,
8401 SListHead);
8402}
8403
8405ULONG
8407 _In_ PVOID HwDeviceExtension,
8408 _In_ PSLIST_HEADER SListHead,
8410{
8412 HwDeviceExtension,
8413 SListHead,
8414 Result);
8415}
8416
8418ULONG
8420 _In_ PVOID HwDeviceExtension,
8421 _In_ PSLIST_HEADER SListHead,
8423{
8425 HwDeviceExtension,
8426 SListHead,
8427 Result);
8428}
8429
8431ULONG
8433 _In_ PVOID HwDeviceExtension,
8434 _In_ PSLIST_HEADER SListHead,
8435 _In_ PSLIST_ENTRY SListEntry,
8437{
8439 HwDeviceExtension,
8440 SListHead,
8441 SListEntry,
8442 Result);
8443}
8444
8446ULONG
8448 _In_ PVOID HwDeviceExtension,
8449 _In_ PSLIST_HEADER SListHead,
8451{
8453 HwDeviceExtension,
8454 SListHead,
8455 Depth);
8456}
8457
8459ULONG
8461 _In_ PVOID HwDeviceExtension,
8463{
8465 HwDeviceExtension,
8466 Address);
8467}
8468
8470ULONG
8472 _In_ PVOID HwDeviceExtension,
8475{
8477 HwDeviceExtension,
8478 Address,
8479 Attributes);
8480}
8481
8483ULONG
8485 _In_ PVOID HwDeviceExtension,
8487 _Out_ PSTOR_REQUEST_INFO RequestInfo)
8488{
8490 HwDeviceExtension,
8491 Srb,
8492 RequestInfo);
8493}
8494
8496ULONG
8498 _In_ PVOID HwDeviceExtension,
8501{
8503 HwDeviceExtension,
8504 Srb,
8505 ActivityId);
8506}
8507
8509ULONG
8511 _In_ PVOID HwDeviceExtension,
8513 _Out_ PVOID *Mdl)
8514{
8516 HwDeviceExtension,
8517 Srb,
8518 Mdl);
8519}
8520
8522ULONG
8524 _In_ PVOID HwDeviceExtension,
8526 _Out_ PVOID *SystemAddress)
8527{
8529 HwDeviceExtension,
8530 Srb,
8531 SystemAddress);
8532}
8533
8535ULONG
8537 _In_ PVOID HwDeviceExtension,
8540{
8542 HwDeviceExtension,
8543 Srb,
8544 SgList);
8545}
8546
8548ULONG
8550 _In_ PVOID HwDeviceExtension,
8554{
8556 HwDeviceExtension,
8557 Address,
8558 Length,
8559 Flags);
8560}
8561
8563ULONG
8565 _In_ PVOID HwDeviceExtension,
8566 _Out_opt_ PLARGE_INTEGER PerformanceFrequency,
8567 _Out_ PLARGE_INTEGER PerformanceCounter)
8568{
8570 HwDeviceExtension,
8571 PerformanceFrequency,
8572 PerformanceCounter);
8573}
8574
8576ULONG
8578 _In_ PVOID HwDeviceExtension,
8580 _In_ ULONG MethodName,
8586{
8588 HwDeviceExtension,
8589 Address,
8590 MethodName,
8596}
8597
8599ULONG
8601 _In_ PVOID HwDeviceExtension,
8604 _Inout_ PBOOLEAN D3ColdEnabled)
8605{
8607 HwDeviceExtension,
8608 Address,
8609 Device,
8610 D3ColdEnabled);
8611}
8612
8614ULONG
8616 _In_ PVOID HwDeviceExtension,
8621{
8623 HwDeviceExtension,
8624 Address,
8625 Srb,
8626 Component,
8627 Flags);
8628}
8629
8631ULONG
8633 _In_ PVOID HwDeviceExtension,
8638{
8640 HwDeviceExtension,
8641 Address,
8642 Srb,
8643 Component,
8644 Flags);
8645}
8646
8648ULONG
8650 _In_ PVOID HwDeviceExtension,
8653 _In_ ULONGLONG Latency)
8654{
8656 HwDeviceExtension,
8657 Address,
8658 Component,
8659 Latency);
8660}
8661
8663ULONG
8665 _In_ PVOID HwDeviceExtension,
8668 _In_ ULONGLONG Residency)
8669{
8671 HwDeviceExtension,
8672 Address,
8673 Component,
8674 Residency);
8675}
8676
8678ULONG
8680 _In_ PVOID HwDeviceExtension,
8683 _In_opt_ PVOID InBuffer,
8688{
8690 HwDeviceExtension,
8691 Address,
8693 InBuffer,
8695 OutBuffer,
8698}
8699
8701ULONG
8703 _In_ PVOID HwDeviceExtension,
8706{
8708 HwDeviceExtension,
8709 Address,
8710 IdleTimeout);
8711}
8712
8714ULONG
8716 _In_ PVOID HwDeviceExtension,
8718{
8720 HwDeviceExtension,
8721 Srb);
8722}
8723
8725ULONG
8727 _In_ PVOID HwDeviceExtension,
8729 _In_ LPCGUID DeviceOperation,
8730 _Inout_ PULONG AllowedFlag)
8731{
8733 HwDeviceExtension,
8734 Address,
8735 DeviceOperation,
8736 AllowedFlag);
8737}
8738
8740ULONG
8742 _In_ PVOID HwDeviceExtension,
8743 _In_ PPROCESSOR_NUMBER ProcNumber,
8744 _Out_ PULONG ProcIndex)
8745{
8747 HwDeviceExtension,
8748 ProcNumber,
8749 ProcIndex);
8750}
8751
8753ULONG
8755 _In_ PVOID HwDeviceExtension,
8760 _Inout_ PULONG ValueDataLength)
8761{
8763 HwDeviceExtension,
8764 SubKeyName,
8765 ValueName,
8766 ValueType,
8767 ValueData,
8768 ValueDataLength);
8769}
8770
8772ULONG
8774 _In_ PVOID HwDeviceExtension,
8779 _In_ ULONG ValueDataLength)
8780{
8782 HwDeviceExtension,
8783 SubKeyName,
8784 ValueName,
8785 ValueType,
8786 ValueData,
8787 ValueDataLength);
8788}
8789
8791ULONG
8793 _In_ PVOID HwDeviceExtension,
8794 _In_ ULONG MaxIoCount)
8795{
8797 HwDeviceExtension,
8798 MaxIoCount);
8799}
8800
8801/* Microseconds. Only legal below DISPATCH_LEVEL. */
8803ULONG
8805 _In_ PVOID HwDeviceExtension,
8807 _In_ LONGLONG Delay)
8808{
8810 HwDeviceExtension,
8811 Srb,
8812 Delay);
8813}
8814
8816ULONG
8818 _In_ PVOID HwDeviceExtension,
8824 _In_ NODE_REQUIREMENT PreferredNode,
8825 _Out_ PVOID *BufferPointer,
8827{
8829 HwDeviceExtension,
8834 CacheType,
8836 BufferPointer,
8838}
8839
8841ULONG
8843 _In_ PVOID HwDeviceExtension,
8848{
8850 HwDeviceExtension,
8853 CacheType,
8855}
8856
8857/*
8858 * Host Memory Buffer. The device owns the returned ranges outright, so the
8859 * miniport has to be able to survive losing them at any moment.
8860 */
8862ULONG
8864 _In_ PVOID HwDeviceExtension,
8865 _In_ SIZE_T MinimumBytes,
8866 _In_ SIZE_T PreferredBytes,
8867 _In_ ULONGLONG UtilizationBytes,
8868 _In_ ULONG AlignmentBytes,
8872 _Out_ PACCESS_RANGE PhysicalAddressRanges,
8873 _Inout_ PULONG PhysicalAddressRangeCount)
8874{
8876 HwDeviceExtension,
8877 MinimumBytes,
8878 PreferredBytes,
8879 UtilizationBytes,
8880 AlignmentBytes,
8884 PhysicalAddressRanges,
8885 PhysicalAddressRangeCount);
8886}
8887
8889ULONG
8891 _In_ PVOID HwDeviceExtension)
8892{
8893 return StorPortExtendedFunction(ExtFunctionFreeHmb, HwDeviceExtension);
8894}
8895
8897ULONG
8899 _In_ PVOID HwDeviceExtension,
8901 _In_ ULONG EventId,
8902 _In_ PWSTR EventDescription,
8903 _In_ ULONGLONG EventKeywords,
8904 _In_ STORPORT_ETW_LEVEL EventLevel,
8905 _In_ STORPORT_ETW_EVENT_OPCODE EventOpcode,
8907 _In_opt_ PWSTR Parameter1Name,
8908 _In_ ULONGLONG Parameter1Value,
8909 _In_opt_ PWSTR Parameter2Name,
8910 _In_ ULONGLONG Parameter2Value)
8911{
8913 HwDeviceExtension,
8914 Address,
8915 EventId,
8916 EventDescription,
8917 EventKeywords,
8918 EventLevel,
8919 EventOpcode,
8920 Srb,
8921 Parameter1Name,
8922 Parameter1Value,
8923 Parameter2Name,
8924 Parameter2Value);
8925}
8926
8928ULONG
8930 _In_ PVOID HwDeviceExtension,
8932 _In_ ULONG EventId,
8933 _In_ PWSTR EventDescription,
8934 _In_ ULONGLONG EventKeywords,
8935 _In_ STORPORT_ETW_LEVEL EventLevel,
8936 _In_ STORPORT_ETW_EVENT_OPCODE EventOpcode,
8938 _In_opt_ PWSTR Parameter1Name,
8939 _In_ ULONGLONG Parameter1Value,
8940 _In_opt_ PWSTR Parameter2Name,
8941 _In_ ULONGLONG Parameter2Value,
8942 _In_opt_ PWSTR Parameter3Name,
8943 _In_ ULONGLONG Parameter3Value,
8944 _In_opt_ PWSTR Parameter4Name,
8945 _In_ ULONGLONG Parameter4Value)
8946{
8948 HwDeviceExtension,
8949 Address,
8950 EventId,
8951 EventDescription,
8952 EventKeywords,
8953 EventLevel,
8954 EventOpcode,
8955 Srb,
8956 Parameter1Name,
8957 Parameter1Value,
8958 Parameter2Name,
8959 Parameter2Value,
8960 Parameter3Name,
8961 Parameter3Value,
8962 Parameter4Name,
8963 Parameter4Value);
8964}
8965
8966#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
8967
8968#if (NTDDI_VERSION >= NTDDI_WIN8)
8969
8971ULONG
8973 _In_ PVOID HwDeviceExtension,
8975{
8977 HwDeviceExtension,
8978 SpinLock);
8979}
8980
8982ULONG
8984 _In_ PVOID HwDeviceExtension,
8985 _In_ PSTOR_LIST_ENTRY ListHead,
8986 _In_ PSTOR_LIST_ENTRY ListEntry,
8988{
8990 HwDeviceExtension,
8991 ListHead,
8992 ListEntry,
8993 Lock);
8994}
8995
8997ULONG
8999 _In_ PVOID HwDeviceExtension,
9000 _In_ PSTOR_LIST_ENTRY ListHead,
9001 _In_ PSTOR_LIST_ENTRY ListEntry,
9003{
9005 HwDeviceExtension,
9006 ListHead,
9007 ListEntry,
9008 Lock);
9009}
9010
9012ULONG
9014 _In_ PVOID HwDeviceExtension,
9015 _In_ PSTOR_LIST_ENTRY ListHead,
9018{
9020 HwDeviceExtension,
9021 ListHead,
9022 Lock,
9023 Result);
9024}
9025
9027ULONG
9029 _In_ PVOID HwDeviceExtension,
9030 _In_ PVOID Mdl,
9031 _Out_ PVOID Pfns,
9032 _Inout_ PULONG PfnCount)
9033{
9035 HwDeviceExtension,
9036 Mdl,
9037 Pfns,
9038 PfnCount);
9039}
9040
9042ULONG
9044 _In_ PVOID HwDeviceExtension,
9045 _In_range_(1, StorportFeatureMax) ULONG FeatureCount,
9046 _In_reads_(FeatureCount) PBOOLEAN FeatureList)
9047{
9049 HwDeviceExtension,
9050 FeatureCount,
9051 FeatureList);
9052}
9053
9055ULONG
9057 _In_ PVOID HwDeviceExtension,
9061{
9063 HwDeviceExtension,
9064 Type,
9065 Buffer,
9066 BufferLength);
9067}
9068
9070ULONG
9072 _In_ PVOID HwDeviceExtension,
9076{
9078 HwDeviceExtension,
9079 Event,
9080 Type,
9081 State);
9082}
9083
9084/* Timeout is in microseconds; a negative value means wait forever */
9086ULONG
9088 _In_ PVOID HwDeviceExtension,
9091{
9093 HwDeviceExtension,
9094 Event,
9095 Timeout);
9096}
9097
9099ULONG
9101 _In_ PVOID HwDeviceExtension,
9104{
9106 HwDeviceExtension,
9107 Event,
9109}
9110
9112ULONG
9114 _In_ PVOID HwDeviceExtension,
9116{
9118 HwDeviceExtension,
9119 Type);
9120}
9121
9123ULONG
9125 _In_ PVOID HwDeviceExtension,
9126 _Out_ PSTOR_DPC_WATCHDOG_INFORMATION WatchdogInformation)
9127{
9129 HwDeviceExtension,
9130 WatchdogInformation);
9131}
9132
9134ULONG
9136 _In_ PVOID HwDeviceExtension,
9137 _Out_ PULONG MinInterval)
9138{
9140 HwDeviceExtension,
9141 MinInterval);
9142}
9143
9145ULONG
9147 _In_ PVOID HwDeviceExtension,
9149{
9151 HwDeviceExtension,
9152 Irql);
9153}
9154
9156ULONG
9158 _In_ PVOID HwDeviceExtension,
9160{
9162 HwDeviceExtension,
9164}
9165
9167ULONG
9169 _In_ PVOID HwDeviceExtension,
9170 _Out_ PULONG ProcessorIndex)
9171{
9173 HwDeviceExtension,
9174 ProcessorIndex);
9175}
9176
9178ULONG
9180 _In_ PVOID HwDeviceExtension,
9181 _In_ PVOID ThreadStartRoutine,
9182 _In_opt_ PVOID StartContext,
9183 _Out_ PVOID *ThreadHandle)
9184{
9186 HwDeviceExtension,
9187 ThreadStartRoutine,
9188 StartContext,
9189 ThreadHandle);
9190}
9191
9193ULONG
9195 _In_ PVOID HwDeviceExtension,
9196 _In_ PVOID ThreadHandle,
9198 _Out_opt_ PSTOR_THREAD_PRIORITY OldPriority)
9199{
9201 HwDeviceExtension,
9202 ThreadHandle,
9203 Priority,
9204 OldPriority);
9205}
9206
9208ULONG
9210 _In_ PVOID HwDeviceExtension,
9213{
9215 HwDeviceExtension,
9216 Affinity,
9218}
9219
9221ULONG
9223 _In_ PVOID HwDeviceExtension,
9225{
9227 HwDeviceExtension,
9229}
9230
9232ULONG
9234 _In_ PVOID HwDeviceExtension,
9236{
9238 return STOR_STATUS_SUCCESS;
9239}
9240
9242ULONG
9244 _In_ PVOID HwDeviceExtension,
9247{
9249 HwDeviceExtension,
9250 Address,
9251 Event);
9252}
9253
9255ULONG
9257 _In_ PVOID HwDeviceExtension,
9261{
9263 HwDeviceExtension,
9264 Address,
9265 Event,
9266 Category);
9267}
9268
9270ULONG
9272 _In_ PVOID HwDeviceExtension,
9274 _In_ ULONG DataCount,
9275 _In_reads_(DataCount) PMINIPORT_DATA Data)
9276{
9278 HwDeviceExtension,
9280 DataCount,
9281 Data);
9282}
9283
9285ULONG
9287 _In_ PVOID HwDeviceExtension,
9289 _In_ PSTORPORT_CAPTURE_LIVEDUMP CaptureLivedump)
9290{
9292 HwDeviceExtension,
9293 Address,
9294 CaptureLivedump);
9295}
9296
9298ULONG
9300 _In_ PVOID HwDeviceExtension,
9303 _Out_ PVOID *TimerHandle)
9304{
9306 HwDeviceExtension,
9307 Callback,
9308 Context,
9309 TimerHandle);
9310}
9311
9312/* TimerValue is in microseconds */
9314ULONG
9316 _In_ PVOID HwDeviceExtension,
9317 _In_ PVOID TimerHandle,
9318 _In_ ULONGLONG TimerValue)
9319{
9321 HwDeviceExtension,
9322 TimerHandle,
9323 TimerValue);
9324}
9325
9327ULONG
9329 _In_ PVOID HwDeviceExtension,
9330 _In_ PVOID TimerHandle,
9332{
9334 HwDeviceExtension,
9335 TimerHandle,
9336 Wait);
9337}
9338
9340ULONG
9342 _In_ PVOID HwDeviceExtension,
9343 _In_ PVOID TimerHandle)
9344{
9346 HwDeviceExtension,
9347 TimerHandle);
9348}
9349
9351ULONG
9353 _In_ PVOID HwDeviceExtension,
9355 _Out_ PBOOLEAN Cancelled)
9356{
9358 HwDeviceExtension,
9359 Dpc,
9360 Cancelled);
9361}
9362
9364ULONG
9366 _In_ PVOID HwDeviceExtension,
9369{
9371 HwDeviceExtension,
9372 MessageId,
9373 Mask);
9374}
9375
9377ULONG
9379 _In_ PVOID HwDeviceExtension,
9380 _Out_ PBOOLEAN OsInstallationUpgrade)
9381{
9383 HwDeviceExtension,
9384 OsInstallationUpgrade);
9385}
9386
9388ULONG
9390 _In_ PVOID HwDeviceExtension,
9393{
9395 HwDeviceExtension,
9396 Address,
9398}
9399
9401ULONG
9403 _In_ PVOID HwDeviceExtension,
9405{
9407 HwDeviceExtension,
9408 BusType);
9409}
9410
9412ULONG
9414 _In_ PVOID HwDeviceExtension,
9415 _In_ PVOID SourceSrb,
9416 _Inout_ PVOID DestinationSrb)
9417{
9419 HwDeviceExtension,
9420 SourceSrb,
9421 DestinationSrb);
9422}
9423
9424#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
9425
9426#if (NTDDI_VERSION >= NTDDI_WIN8)
9427
9429ULONG
9431 _In_ PVOID HwDeviceExtension,
9433 _In_ ULONG ComponentIndex,
9434 _In_ ULONG PerfSetCount,
9435 _In_reads_(PerfSetCount) PSTOR_POFX_COMPONENT_PERF_SET *PerfSets)
9436{
9438 HwDeviceExtension,
9439 Address,
9440 ComponentIndex,
9441 PerfSetCount,
9442 PerfSets);
9443}
9444
9446ULONG
9448 _In_ PVOID HwDeviceExtension,
9450 _In_ ULONG ComponentIndex,
9451 _In_ ULONG PerfSetIndex,
9454{
9456 HwDeviceExtension,
9457 Address,
9458 ComponentIndex,
9459 PerfSetIndex,
9460 Value,
9461 Context);
9462}
9463
9465ULONG
9467 _In_ PVOID HwDeviceExtension,
9468 _In_ PSTOR_CRYPTO_CAPABILITIES_DATA CryptoCapabilities)
9469{
9471 HwDeviceExtension,
9472 CryptoCapabilities);
9473}
9474
9476ULONG
9478 _In_ PVOID HwDeviceExtension,
9481{
9483 HwDeviceExtension,
9484 Srb,
9485 KeyInfo);
9486}
9487
9489ULONG
9491 _In_ PVOID HwDeviceExtension,
9492 _In_ PSTOR_RPMB_CAPABILITIES_DATA RpmbCapabilities)
9493{
9495 HwDeviceExtension,
9496 RpmbCapabilities);
9497}
9498
9499#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
9500#if DBG
9501#define DebugPrint(x) StorPortDebugPrint x
9502#else
9503#define DebugPrint(x)
9504#endif
9505
9506#ifdef __cplusplus
9507}
9508#endif
9509
9510#endif /* _NTSTORPORT_ */
#define SaveState(State)
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
_In_ PVOID PortContext
Definition: ata_shared.h:375
#define WriteBuffer(BaseIoAddress, Buffer, Count)
Definition: atapi.h:344
#define ReadBuffer(BaseIoAddress, Buffer, Count)
Definition: atapi.h:339
KAFFINITY * PKAFFINITY
Definition: basetsd.h:189
PDEVICE_OBJECT PhysicalDeviceObject
Definition: btrfs_drv.h:1157
_In_ PSCSI_REQUEST_BLOCK Srb
Definition: cdrom.h:989
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN _In_opt_ WDFREQUEST OriginalRequest
Definition: cdrom.h:994
_In_ PSCSI_REQUEST_BLOCK _In_opt_ PVOID _In_ ULONG _In_ BOOLEAN WriteToDevice
Definition: cdrom.h:992
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
Definition: cdrom.h:1156
Definition: bufpool.h:45
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR _In_ UCHAR _In_ UCHAR Lun
Definition: classpnp.h:1315
_In_ ULONG _In_ BOOLEAN _In_ ULONG _In_ UCHAR PathId
Definition: classpnp.h:1313
_In_z_ PCCHAR _In_ PDEVICE_OBJECT LowerDeviceObject
Definition: classpnp.h:983
_In_ PVOID Argument2
Definition: classpnp.h:721
_Out_ PKIRQL Irql
Definition: csq.h:179
UINT Depth
Definition: d3d12.idl:4644
@ TokenIdentifier
Definition: dfp.h:30
_In_ ULONG Attributes
Definition: dispmprt.h:1077
_In_ ULONG _In_ ULONG _In_opt_ DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK _In_opt_ PVOID CallbackContext
Definition: dispmprt.h:622
_In_ ULONG BufferSize
Definition: dispmprt.h:490
_In_ PVOID _In_ ULONG _In_ ULONG _Out_ ULONG * BytesReturned
Definition: dispmprt.h:673
_In_ ULONG _In_ MEMORY_CACHING_TYPE _Out_ PPHYSICAL_ADDRESS PhysicalAddress
Definition: dispmprt.h:714
_In_ DXGK_MIRACAST_DISPLAY_CALLBACKS _Out_ PVOID _Out_ ULONG * TargetId
Definition: dispmprt.h:650
_In_ HANDLE _In_ CONST PDXGKMDT_OPM_GET_INFO_PARAMETERS Parameters
Definition: dispmprt.h:321
_In_ ULONG _In_ MEMORY_CACHING_TYPE _Out_ PPHYSICAL_ADDRESS _Out_ PVOID * VirtualAddress
Definition: dispmprt.h:716
_Check_return_ _In_ DXGK_EVENT_TYPE _In_ ULONG Event
Definition: dispmprt.h:1287
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG DataLength
Definition: dispmprt.h:233
_Check_return_ _In_ ULONG _In_ DEVICE_POWER_STATE DevicePowerState
Definition: dispmprt.h:1274
_In_ ULONG _In_ ULONG _In_opt_ DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Callback
Definition: dispmprt.h:620
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
_In_ ULONG _In_ MEMORY_CACHING_TYPE CacheType
Definition: dispmprt.h:713
#define FALSE
Definition: types.h:117
#define DECLSPEC_ALIGN(x)
Definition: corecrt.h:141
#define __cdecl
Definition: corecrt.h:121
static const WCHAR Signature[]
Definition: parser.c:141
int ProcessorCount
Definition: bus.c:58
VOID(NTAPI * PHW_DMA_STARTED)(IN PVOID DeviceExtension)
Definition: srb.h:462
_SCSI_ADAPTER_CONTROL_TYPE
Definition: srb.h:176
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
_SCSI_ADAPTER_CONTROL_STATUS
Definition: srb.h:190
enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
BOOLEAN(NTAPI * PHW_STARTIO)(IN PVOID DeviceExtension, IN PSCSI_REQUEST_BLOCK Srb)
Definition: srb.h:443
BOOLEAN(NTAPI * PHW_ADAPTER_STATE)(IN PVOID DeviceExtension, IN PVOID Context, IN BOOLEAN SaveState)
Definition: srb.h:486
BOOLEAN(NTAPI * PHW_RESET_BUS)(IN PVOID DeviceExtension, IN ULONG PathId)
Definition: srb.h:479
SCSI_ADAPTER_CONTROL_STATUS(NTAPI * PHW_ADAPTER_CONTROL)(IN PVOID DeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters)
Definition: srb.h:494
_SCSI_NOTIFICATION_TYPE
Definition: srb.h:530
BOOLEAN(NTAPI * PHW_INITIALIZE)(IN PVOID DeviceExtension)
Definition: srb.h:437
UCHAR KIRQL
Definition: env_spec_w32.h:591
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
unsigned int Mask
Definition: fpcontrol.c:82
union Alignment_ Alignment
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES __in PVOID __in __out WDFMEMORY * PMemory
Status
Definition: gdiplustypes.h:24
CPPORT Port[4]
Definition: headless.c:38
_In_ GUID _In_ PVOID ValueData
Definition: hubbusif.h:312
_In_ ULONG MessageId
Definition: hubioctl.cpp:1369
UNICODE_STRING Path
_Must_inspect_result_ _In_ PUCXHUB_DEVICE_CREATE_INFO _Out_ UCXUSBDEVICE * Device
Definition: hubucx.h:258
_In_ UCXUSBDEVICE _In_ UCXENDPOINT _In_ ULONG Priority
Definition: hubucx.h:414
Config Register
Definition: hubwmi.cpp:126
_In_ const GUID _In_ ULONG _In_opt_ PFN_WDF_WMI_INSTANCE_QUERY_INSTANCE Query
Definition: hubwmi.cpp:114
static ULONG ResourceCount
Definition: inbv.c:50
_In_ PIRP Irp
Definition: kse.h:79
_In_ PIRP _In_ PIO_COMPLETION_ROUTINE _In_ PVOID Context
Definition: kse.h:81
#define Unused(x)
Definition: atlwin.h:28
UNICODE_STRING Global
Definition: symlink.c:46
unsigned __int64 ULONG64
Definition: imports.h:198
@ Enabled
Definition: mountmgr.h:179
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ PNDIS_STRING SubKeyName
Definition: ndis.h:4727
_In_ NDIS_ERROR_CODE ErrorCode
Definition: ndis.h:4438
_Out_ PNDIS_HANDLE _Out_ PUINT _In_ PNDIS_STRING _In_ NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress
Definition: ndis.h:3232
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
Definition: mmfuncs.h:366
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize _Pre_valid_ PVOID * BaseAddress
Definition: mmfuncs.h:408
_In_ NTSTATUS ExitStatus
Definition: psfuncs.h:914
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _In_reads_(s)
Definition: no_sal2.h:168
#define _Out_opt_
Definition: no_sal2.h:214
#define _Struct_size_bytes_(s)
Definition: no_sal2.h:386
#define _Inout_
Definition: no_sal2.h:162
#define _Field_size_bytes_full_(s)
Definition: no_sal2.h:352
#define _Field_size_(s)
Definition: no_sal2.h:332
#define _At_buffer_(t, i, c, a)
Definition: no_sal2.h:42
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Field_range_(l, h)
Definition: no_sal2.h:380
#define _In_range_(l, h)
Definition: no_sal2.h:368
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
#define _When_(c, a)
Definition: no_sal2.h:38
WCHAR * PWCH
Definition: ntbasedef.h:422
* PPROCESSOR_NUMBER
Definition: ntbasedef.h:654
PROCESSOR_NUMBER
Definition: ntbasedef.h:654
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
#define DUMMYUNIONNAME
Definition: pecoff.h:91
#define DUMMYSTRUCTNAME
Definition: pecoff.h:117
#define _ANONYMOUS_UNION
Definition: pecoff.h:89
#define _ANONYMOUS_STRUCT
Definition: pecoff.h:115
short WCHAR
Definition: pedump.c:58
#define BOOLEAN
Definition: pedump.c:73
short SHORT
Definition: pedump.c:59
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
char CHAR
Definition: pedump.c:57
static WCHAR Address[46]
Definition: ping.c:68
static ULONG Timeout
Definition: ping.c:61
enum _INTERFACE_TYPE INTERFACE_TYPE
@ Reserved3
Definition: sacdrv.h:1471
@ Reserved2
Definition: sacdrv.h:1470
@ Reserved1
Definition: sacdrv.h:1464
_In_opt_ WDFREQUEST _In_ ULONG _In_ BOOLEAN _In_ PCDB Cdb
Definition: scratch.h:159
_Iter_
Definition: memory.h:71
enum _KINTERRUPT_MODE KINTERRUPT_MODE
enum _DMA_SPEED DMA_SPEED
enum _DMA_WIDTH DMA_WIDTH
_VPD_ASSOCIATION
Definition: scsi.h:2492
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
Definition: scsi.h:4117
_In_ UCHAR _Out_opt_ PUCHAR _Out_opt_ PUCHAR _Out_opt_ PUCHAR AdditionalSenseCodeQualifier
Definition: scsi.h:3794
_In_ UCHAR SenseInfoBufferLength
Definition: scsi.h:3751
#define STOR_ADDRESS_TYPE_BTL8
Definition: scsi.h:3571
_OPERATION_STATUS
Definition: scsi.h:3697
_VPD_IDENTIFIER_TYPE
Definition: scsi.h:2500
_In_ UCHAR _Out_opt_ PUCHAR _Out_opt_ PUCHAR AdditionalSenseCode
Definition: scsi.h:3792
#define STOR_ADDR_BTL8_ADDRESS_LENGTH
Definition: scsi.h:3574
_TRANSFER_COUNT_UNITS
Definition: scsi.h:3706
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS STOR_ADDRESS
_In_ UCHAR _Out_opt_ PUCHAR SenseKey
Definition: scsi.h:3791
_VPD_CODE_SET
Definition: scsi.h:2485
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS * PSTOR_ADDRESS
#define SRB_SIGNATURE
Definition: srb.h:616
_STOR_POWER_ACTION
Definition: srb.h:364
enum _STOR_PNP_ACTION STOR_PNP_ACTION
#define SRBEX_DATA_SCSI_CDB32_LENGTH
Definition: srb.h:506
_STOR_PNP_ACTION
Definition: srb.h:399
struct SRB_ALIGN _SRBEX_DATA SRBEX_DATA
#define STORAGE_REQUEST_BLOCK_VERSION_1
Definition: srb.h:617
#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN
Definition: srb.h:523
#define SRBEX_DATA_IO_INFO_LENGTH
Definition: srb.h:583
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
Definition: srb.h:907
#define SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX
Definition: srb.h:524
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA * HwInitializationData
Definition: srb.h:906
#define SRB_FUNCTION_STORAGE_REQUEST_BLOCK
Definition: srb.h:108
#define SRBEX_DATA_BIDIRECTIONAL_LENGTH
Definition: srb.h:476
#define SRBEX_DATA_PNP_LENGTH
Definition: srb.h:569
#define POINTER_ALIGN
Definition: srb.h:453
enum _STOR_POWER_ACTION STOR_POWER_ACTION
_SRBEXDATATYPE
Definition: srb.h:456
@ SrbExDataTypeWmi
Definition: srb.h:462
@ SrbExDataTypeScsiCdb32
Definition: srb.h:460
@ SrbExDataTypeBidirectional
Definition: srb.h:458
@ SrbExDataTypeScsiCdb16
Definition: srb.h:459
@ SrbExDataTypePower
Definition: srb.h:463
@ SrbExDataTypeScsiCdbVar
Definition: srb.h:461
@ SrbExDataTypePnP
Definition: srb.h:464
@ SrbExDataTypeIoInfo
Definition: srb.h:465
#define SRBEX_DATA_POWER_LENGTH
Definition: srb.h:556
#define SRBEX_DATA_WMI_LENGTH
Definition: srb.h:542
STORAGE_REQUEST_BLOCK
Definition: srb.h:661
#define SRBEX_DATA_SCSI_CDB16_LENGTH
Definition: srb.h:489
enum _SRBEXDATATYPE SRBEXDATATYPE
_STOR_DEVICE_POWER_STATE
Definition: srb.h:355
PACPI_METHOD_ARGUMENT Next
Definition: slotdev.cpp:96
Srb SenseInfoBuffer
Definition: sptilib.c:215
struct _STOR_FILTER_RESOURCE_REQUIREMENTS * PSTOR_FILTER_RESOURCE_REQUIREMENTS
struct _SCSI_SUPPORTED_CONTROL_TYPE_LIST SCSI_SUPPORTED_CONTROL_TYPE_LIST
struct _ERROR_HISTORY_DIRECTORY * PERROR_HISTORY_DIRECTORY
struct _DESCRIPTOR_SENSE_DATA * PDESCRIPTOR_SENSE_DATA
VOID(NTAPI * PHW_DMA_STARTED)(_In_ PVOID DeviceExtension)
Definition: storport.h:7013
STORPORT_API BOOLEAN NTAPI StorPortSetDeviceQueueDepth(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG Depth)
Definition: storport.c:1930
struct _STOR_POWER_SETTING_INFO * PSTOR_POWER_SETTING_INFO
FORCEINLINE VOID StorPortReleaseSpinLock(_In_ PVOID DeviceExtension, _Inout_ PSTOR_LOCK_HANDLE LockHandle)
Definition: storport.h:7951
struct SRB_ALIGN _SRBEX_DATA_NVMEOF_OPERATION SRBEX_DATA_NVMEOF_OPERATION
BOOLEAN(NTAPI * PHW_BUILDIO)(_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.h:6991
struct _STOR_REQUEST_INFO_V2 * PSTOR_REQUEST_INFO_V2
FORCEINLINE ULONG StorPortWaitForEvent(_In_ PVOID HwDeviceExtension, _In_ PSTOR_EVENT Event, _In_ LONGLONG Timeout)
Definition: storport.h:9087
struct _NOTIFICATION_MULTI_HOST_STATUS NOTIFICATION_MULTI_HOST_STATUS
union _TWO_BYTE TWO_BYTE
FORCEINLINE ULONG StorPortSetFeatureList(_In_ PVOID HwDeviceExtension, _In_range_(1, StorportFeatureMax) ULONG FeatureCount, _In_reads_(FeatureCount) PBOOLEAN FeatureList)
Definition: storport.h:9043
struct _FREE_MINIPORT_DUMP_INFO FREE_MINIPORT_DUMP_INFO
struct _PORT_OUTPUT * PPORT_OUTPUT
struct _STOR_POFX_COMPONENT_PERF_SET STOR_POFX_COMPONENT_PERF_SET
@ StorPowerActionWarmEject
Definition: storport.h:1652
@ StorPowerActionShutdown
Definition: storport.h:1649
@ StorPowerActionReserved
Definition: storport.h:1646
@ StorPowerActionNone
Definition: storport.h:1645
@ StorPowerActionShutdownReset
Definition: storport.h:1650
@ StorPowerActionSleep
Definition: storport.h:1647
@ StorPowerActionHibernate
Definition: storport.h:1648
@ StorPowerActionShutdownOff
Definition: storport.h:1651
struct _STOR_POWER_CONTROL_HEADER STOR_POWER_CONTROL_HEADER
struct _SCSI_REQUEST_BLOCK SCSI_REQUEST_BLOCK
struct _STOR_POFX_COMPONENT_V2 * PSTOR_POFX_COMPONENT_V2
struct _STARTIO_PERFORMANCE_PARAMETERS STARTIO_PERFORMANCE_PARAMETERS
FORCEINLINE ULONG StorPortSetAdapterBusType(_In_ PVOID HwDeviceExtension, _In_ ULONG BusType)
Definition: storport.h:9402
struct _MODE_COMMAND_DURATION_LIMIT_PAGE_T2B_SUBPAGE * PMODE_COMMAND_DURATION_LIMIT_PAGE_T2B_SUBPAGE
struct _WINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR WINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR
struct _CDAUDIO_CONTROL_PAGE CDAUDIO_CONTROL_PAGE
struct _CDVD_REPORT_ASF_DATA CDVD_REPORT_ASF_DATA
VOID(NTAPI * PStorPortPutScatterGatherList)(_In_ PVOID HwDeviceExtension, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList, _In_ BOOLEAN WriteToDevice)
Definition: storport.h:7185
struct _MODE_COMMAND_DURATION_LIMIT_PAGE_T2A_SUBPAGE MODE_COMMAND_DURATION_LIMIT_PAGE_T2A_SUBPAGE
struct _SCSI_SENSE_DESCRIPTOR_INFORMATION SCSI_SENSE_DESCRIPTOR_INFORMATION
struct _STOR_ADAPTER_CONTROL_POWER STOR_ADAPTER_CONTROL_POWER
struct _STORPORT_TELEMETRY_EVENT STORPORT_TELEMETRY_EVENT
#define DURATION_LIMIT_T2_DESCRIPTOR_COUNT
Definition: storport.h:696
_STORPORT_FEATURE_TYPE
Definition: storport.h:6404
@ StorportFeaturePreparePLDR
Definition: storport.h:6417
@ StorportFeatureReportInternalDataUnitControl
Definition: storport.h:6409
@ StorportFeatureReserved1
Definition: storport.h:6419
@ StorportFeatureRestoreEarlyDumpData
Definition: storport.h:6414
@ StorportFeaturePrepareEarlyDumpData
Definition: storport.h:6413
@ StorportFeatureKsrUnitPowerDownOptimization
Definition: storport.h:6416
@ StorportFeaturePostHwInitialize
Definition: storport.h:6412
@ StorportFeatureFruIdUnitControl
Definition: storport.h:6406
@ StorportFeatureNvmeofAdapterOperation
Definition: storport.h:6418
@ StorportFeatureMax
Definition: storport.h:6421
@ StorportFeatureBusTypeUnitControl
Definition: storport.h:6405
@ StorportFeatureQueryStorMQInterface
Definition: storport.h:6420
@ StorportFeatureResetBusSynchronous
Definition: storport.h:6411
@ StorportFeatureSetEventLoggingAdapterControl
Definition: storport.h:6408
@ StorportFeatureKsrAdapterPowerDownOptimization
Definition: storport.h:6415
@ StorportFeatureReportInternalDataAdapterControl
Definition: storport.h:6410
@ StorportFeatureFruIdAdapterControl
Definition: storport.h:6407
struct RS_COMMAND_TIMEOUTS_DESCRIPTOR * PRS_COMMAND_TIMEOUTS_DESCRIPTOR
struct _CDVD_FEATURE_SET_PAGE CDVD_FEATURE_SET_PAGE
enum _STOR_DEVICE_RESET_TYPE STOR_DEVICE_RESET_TYPE
struct _STOR_RPMB_CAPABILITIES_DATA * PSTOR_RPMB_CAPABILITIES_DATA
struct _POWER_CONDITION_PAGE * PPOWER_CONDITION_PAGE
struct _ACCESS_RANGE ACCESS_RANGE
VOID(NTAPI * PHW_WORKITEM)(_In_ PVOID HwDeviceExtension, _In_opt_ PVOID Context, _In_ PVOID Worker)
Definition: storport.h:7094
enum _SCSI_UNIT_CONTROL_STATUS SCSI_UNIT_CONTROL_STATUS
union _EIGHT_BYTE EIGHT_BYTE
enum _STORPORT_ETW_EVENT_CHANNEL * PSTORPORT_ETW_EVENT_CHANNEL
struct _STOR_POFX_POWER_REQUIRED_CONTEXT STOR_POFX_POWER_REQUIRED_CONTEXT
enum _STOR_PNP_ACTION STOR_PNP_ACTION
struct _INQUIRYDATA * PINQUIRYDATA
struct _LOG_PAGE_LOGICAL_BLOCK_PROVISIONING * PLOG_PAGE_LOGICAL_BLOCK_PROVISIONING
struct _SCSI_PNP_REQUEST_BLOCK * PSCSI_PNP_REQUEST_BLOCK
struct _STOR_SCATTER_GATHER_LIST STOR_SCATTER_GATHER_LIST
union _STORAGE_CRYPTO_KEY_TYPE STORAGE_CRYPTO_KEY_TYPE
BOOLEAN(NTAPI * PHW_PASSIVE_INITIALIZE_ROUTINE)(_In_ PVOID DeviceExtension)
Definition: storport.h:7048
enum _STOR_THREAD_PRIORITY STOR_THREAD_PRIORITY
FORCEINLINE ULONG StorPortReleaseMSISpinLock(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _In_ ULONG OldIrql)
Definition: storport.h:8136
struct _READ_CAPACITY_DATA_EX READ_CAPACITY_DATA_EX
STORPORT_API VOID __cdecl StorPortDebugPrint(_In_ ULONG DebugPrintLevel, _In_ PCCHAR DebugMessage,...)
_STOR_POFX_PERF_STATE_TYPE
Definition: storport.h:6711
@ StorPoFxPerfStateTypeRange
Definition: storport.h:6713
@ StorPoFxPerfStateTypeDiscrete
Definition: storport.h:6712
@ StorPoFxPerfStateTypeMaximum
Definition: storport.h:6714
struct _LBA_STATUS_LIST_HEADER LBA_STATUS_LIST_HEADER
enum _STOR_POFX_PERF_STATE_TYPE STOR_POFX_PERF_STATE_TYPE
FORCEINLINE ULONG StorPortGetSystemAddress(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *SystemAddress)
Definition: storport.h:8033
static const GUID STORPORT_POFX_LUN_GUID
Definition: storport.h:6980
STORPORT_API UCHAR NTAPI StorPortReadPortUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port)
Definition: stubs.c:60
struct _STOR_UNIT_CONTROL_QUERY_BUS_TYPE * PSTOR_UNIT_CONTROL_QUERY_BUS_TYPE
STORPORT_API VOID NTAPI StorPortWritePortUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ ULONG Value)
Definition: stubs.c:216
struct _NOTIFICATION_OPERATIONAL_STATUS * PNOTIFICATION_OPERATIONAL_STATUS
FORCEINLINE ULONG StorPortSetSystemGroupAffinityThread(_In_ PVOID HwDeviceExtension, _In_ PSTOR_GROUP_AFFINITY Affinity, _Out_opt_ PSTOR_GROUP_AFFINITY PreviousAffinity)
Definition: storport.h:9209
struct RS_ONE_COMMAND_PARAMETER_DATA * PRS_ONE_COMMAND_PARAMETER_DATA
struct _MODE_PAGE_SUBPAGE_HEADER * PMODE_PAGE_SUBPAGE_HEADER
FORCEINLINE ULONG StorPortGetRequestCryptoInfo(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PSTOR_CRYPTO_KEY_INFO KeyInfo)
Definition: storport.h:9477
FORCEINLINE ULONG StorPortAllocateMdl(_In_ PVOID HwDeviceExtension, _In_ PVOID BufferPointer, _In_ ULONG NumberOfBytes, _Out_ PVOID *Mdl)
Definition: storport.h:7996
enum _STORAGE_CRYPTO_ALGORITHM_ID * PSTORAGE_CRYPTO_ALGORITHM_ID
FORCEINLINE ULONG StorPortEtwEvent2(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG EventId, _In_ PWSTR EventDescription, _In_ ULONGLONG EventKeywords, _In_ STORPORT_ETW_LEVEL EventLevel, _In_ STORPORT_ETW_EVENT_OPCODE EventOpcode, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_opt_ PWSTR Parameter1Name, _In_ ULONGLONG Parameter1Value, _In_opt_ PWSTR Parameter2Name, _In_ ULONGLONG Parameter2Value)
Definition: storport.h:8898
FORCEINLINE ULONG StorPortQueueWorkItem(_In_ PVOID HwDeviceExtension, _In_ PHW_WORKITEM WorkItemCallback, _In_ PVOID Worker, _In_opt_ PVOID Context)
Definition: storport.h:8327
struct _STOR_POFX_UNIT_POWER_INFO * PSTOR_POFX_UNIT_POWER_INFO
enum _STOR_PNP_ACTION * PSTOR_PNP_ACTION
struct RT_PARAMETER_DATA * PRT_PARAMETER_DATA
@ ScsiRestartAdapter
Definition: storport.h:1524
@ ScsiAdapterPrepareForBusReScan
Definition: storport.h:1533
@ ScsiAdapterCryptoOperation
Definition: storport.h:1540
@ ScsiAdapterResetBusSynchronous
Definition: storport.h:1544
@ ScsiQuerySupportedControlTypes
Definition: storport.h:1522
@ ScsiAdapterReserved1
Definition: storport.h:1551
@ ScsiAdapterPower
Definition: storport.h:1528
@ ScsiAdapterPreparePLDR
Definition: storport.h:1549
@ ScsiAdapterReportInternalData
Definition: storport.h:1543
@ ScsiAdapterPoFxPowerControl
Definition: storport.h:1532
@ ScsiAdapterControlMax
Definition: storport.h:1552
@ ScsiAdapterReserved0
Definition: storport.h:1550
@ ScsiAdapterQueryFruId
Definition: storport.h:1541
@ ScsiAdapterPrepareEarlyDumpData
Definition: storport.h:1546
@ ScsiAdapterSystemPowerHints
Definition: storport.h:1534
@ ScsiSetBootConfig
Definition: storport.h:1525
@ ScsiStopAdapter
Definition: storport.h:1523
@ MakeAdapterControlTypeSizeOfUlong
Definition: storport.h:1553
@ ScsiAdapterSurpriseRemoval
Definition: storport.h:1538
@ ScsiAdapterPoFxSetPerfState
Definition: storport.h:1537
@ ScsiAdapterSetEventLogging
Definition: storport.h:1542
@ ScsiPowerSettingNotification
Definition: storport.h:1527
@ ScsiAdapterFilterResourceRequirements
Definition: storport.h:1535
@ ScsiAdapterPoFxPowerActive
Definition: storport.h:1530
@ ScsiAdapterPoFxPowerSetFState
Definition: storport.h:1531
@ ScsiAdapterPostHwInitialize
Definition: storport.h:1545
@ ScsiAdapterPoFxPowerRequired
Definition: storport.h:1529
@ ScsiSetRunningConfig
Definition: storport.h:1526
@ ScsiAdapterPoFxMaxOperationalPower
Definition: storport.h:1536
@ ScsiAdapterKsrPowerDown
Definition: storport.h:1548
@ ScsiAdapterRestoreEarlyDumpData
Definition: storport.h:1547
@ ScsiAdapterSerialNumber
Definition: storport.h:1539
struct _READ_CAPACITY_DATA * PREAD_CAPACITY_DATA
struct _VPD_LOGICAL_BLOCK_PROVISIONING_PAGE * PVPD_LOGICAL_BLOCK_PROVISIONING_PAGE
FORCEINLINE ULONG StorPortGetGroupAffinity(_In_ PVOID HwDeviceExtension, _In_ USHORT GroupNumber, _Out_ PKAFFINITY GroupAffinityMask)
Definition: storport.h:8226
struct _STOR_RICH_DEVICE_DESCRIPTION STOR_RICH_DEVICE_DESCRIPTION
struct _STOR_SCATTER_GATHER_ELEMENT * PSTOR_SCATTER_GATHER_ELEMENT
struct _PRI_RESERVATION_LIST * PPRI_RESERVATION_LIST
struct _LOG_PARAMETER_HEADER LOG_PARAMETER_HEADER
struct _STOR_GROUP_AFFINITY STOR_GROUP_AFFINITY
STORAGE_CRYPTO_KEY_SIZE STOR_CRYPTO_KEY_SIZE
Definition: storport.h:6860
FORCEINLINE ULONG StorPortQueryTimerMinInterval(_In_ PVOID HwDeviceExtension, _Out_ PULONG MinInterval)
Definition: storport.h:9135
struct _VIRTUAL_HW_INITIALIZATION_DATA * PVIRTUAL_HW_INITIALIZATION_DATA
BOOLEAN(NTAPI * PHW_STARTIO)(_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.h:6997
struct _STOR_UNIT_ATTRIBUTES STOR_UNIT_ATTRIBUTES
_NVME_ADAPTER_CONTROL_TYPE
Definition: storport.h:1453
@ NvmeAdapterFilterResourceRequirements
Definition: storport.h:1467
@ NvmeAdapterSerialNumber
Definition: storport.h:1471
@ NvmeQuerySupportedControlTypes
Definition: storport.h:1454
@ NvmeAdapterCryptoOperation
Definition: storport.h:1472
@ NvmePowerSettingNotification
Definition: storport.h:1459
@ NvmeAdapterPrepareEarlyDumpData
Definition: storport.h:1478
@ NvmeAdapterPrepareForBusReScan
Definition: storport.h:1465
@ NvmeAdapterPoFxMaxOperationalPower
Definition: storport.h:1468
@ NvmeSetRunningConfig
Definition: storport.h:1458
@ NvmeAdapterPostHwInitialize
Definition: storport.h:1477
@ NvmeAdapterQueryFruId
Definition: storport.h:1473
@ NvmeAdapterPoFxPowerControl
Definition: storport.h:1464
@ NvmeAdapterPoFxPowerRequired
Definition: storport.h:1461
@ NvmeAdapterPoFxPowerSetFState
Definition: storport.h:1463
@ NvmeAdapterPower
Definition: storport.h:1460
@ NvmeAdapterSurpriseRemoval
Definition: storport.h:1470
@ NvmeAdapterResetBusSynchronous
Definition: storport.h:1476
@ NvmeAdapterPreparePLDR
Definition: storport.h:1481
@ NvmeStopAdapter
Definition: storport.h:1455
@ NvmeAdapterSystemPowerHints
Definition: storport.h:1466
@ NvmeAdapterPoFxSetPerfState
Definition: storport.h:1469
@ NvmeAdapterPoFxPowerActive
Definition: storport.h:1462
@ NvmeNvmeofAdapterOperation
Definition: storport.h:1482
@ MakeNvmeAdapterControlTypeSizeOfUlong
Definition: storport.h:1484
@ NvmeAdapterControlMax
Definition: storport.h:1483
@ NvmeAdapterKsrPowerDown
Definition: storport.h:1480
@ NvmeAdapterRestoreEarlyDumpData
Definition: storport.h:1479
@ NvmeRestartAdapter
Definition: storport.h:1456
@ NvmeAdapterSetEventLogging
Definition: storport.h:1474
@ NvmeAdapterReportInternalData
Definition: storport.h:1475
@ NvmeSetBootConfig
Definition: storport.h:1457
_STOR_EVENT_TYPE
Definition: storport.h:6359
@ StorNotificationEvent
Definition: storport.h:6360
@ StorSynchronizationEvent
Definition: storport.h:6361
struct _READ_BUFFER_CAPACITY_DATA READ_BUFFER_CAPACITY_DATA
STORPORT_API VOID NTAPI StorPortReadPortBufferUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count)
Definition: stubs.c:47
_GETSGSTATUS
Definition: storport.h:1829
@ SG_BUFFER_TOO_SMALL
Definition: storport.h:1831
@ SG_ALLOCATED
Definition: storport.h:1830
STORPORT_API UCHAR NTAPI StorPortReadRegisterUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register)
Definition: stubs.c:132
struct _STOR_LOG_EVENT_DETAILS * PSTOR_LOG_EVENT_DETAILS
struct _STOR_FILTER_RESOURCE_REQUIREMENTS STOR_FILTER_RESOURCE_REQUIREMENTS
struct _NOTIFICATION_POWER_STATUS NOTIFICATION_POWER_STATUS
STORPORT_API VOID NTAPI StorPortWritePortUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ USHORT Value)
Definition: stubs.c:228
struct _MODE_COMMAND_DURATION_LIMIT_PAGE_T2B_SUBPAGE MODE_COMMAND_DURATION_LIMIT_PAGE_T2B_SUBPAGE
ULONG_PTR STOR_KSPIN_LOCK
Definition: storport.h:6318
FORCEINLINE ULONG StorPortCurrentOsInstallationUpgrade(_In_ PVOID HwDeviceExtension, _Out_ PBOOLEAN OsInstallationUpgrade)
Definition: storport.h:9378
struct _SLOT_TABLE_INFORMATION SLOT_TABLE_INFORMATION
struct _VIRTUAL_HW_INITIALIZATION_DATA VIRTUAL_HW_INITIALIZATION_DATA
_STORPORT_LIVEDUMP_DATA_TYPE
Definition: storport.h:6517
@ StorportLivedumpDataTypeUndefined
Definition: storport.h:6518
@ StorportLivedumpDataTypeDeviceTelemetryLog
Definition: storport.h:6519
FORCEINLINE ULONG StorPortGetMSIInfo(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _Out_ PMESSAGE_INTERRUPT_INFORMATION InterruptInfo)
Definition: storport.h:8149
STORPORT_API BOOLEAN NTAPI StorPortBusy(_In_ PVOID HwDeviceExtension, _In_ ULONG RequestsToComplete)
Definition: storport.c:560
struct _VPD_IDENTIFICATION_PAGE VPD_IDENTIFICATION_PAGE
FORCEINLINE ULONG StorPortGetHighestNodeNumber(_In_ PVOID HwDeviceExtension, _Out_ PULONG HighestNode)
Definition: storport.h:8263
struct _STOR_UNIT_ATTRIBUTES * PSTOR_UNIT_ATTRIBUTES
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE2 MODE_CDROM_WRITE_PARAMETERS_PAGE2
struct _STOR_FRU_ID_DESCRIPTION STOR_FRU_ID_DESCRIPTION
FORCEINLINE ULONG StorPortLogTelemetry(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ PSTORPORT_TELEMETRY_EVENT Event)
Definition: storport.h:9243
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
FORCEINLINE ULONG StorPortGetStartIoPerfParams(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Inout_ PSTARTIO_PERFORMANCE_PARAMETERS StartIoPerfParams)
Definition: storport.h:8175
PVOID(NTAPI * PStorPortAllocatePool)(_In_ ULONG NumberOfBytes, _In_ ULONG Tag, _In_ PVOID HwDeviceExtension, _Out_ PVOID *PMdl)
Definition: storport.h:7212
struct _STOR_UNIT_CONTROL_POWER STOR_UNIT_CONTROL_POWER
ULONG_PTR * PSTOR_KSPIN_LOCK
Definition: storport.h:6318
FORCEINLINE ULONG StorPortFlushDataBufferMdl(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.h:8715
_DATA_TYPE
Definition: storport.h:6472
@ DataTypeInt64
Definition: storport.h:6480
@ DataTypeHex8
Definition: storport.h:6485
@ DataTypeHex32
Definition: storport.h:6487
@ DataTypeHex16
Definition: storport.h:6486
@ DataTypeUInt32
Definition: storport.h:6483
@ DataTypeUnicodeString
Definition: storport.h:6475
@ DataTypeInt8
Definition: storport.h:6477
@ DataTypeAnsiString
Definition: storport.h:6476
@ DataTypeBoolean
Definition: storport.h:6474
@ DataTypeHex64
Definition: storport.h:6488
@ DataTypeInt32
Definition: storport.h:6479
@ DataTypeGuid
Definition: storport.h:6473
@ DataTypeInt16
Definition: storport.h:6478
@ DataTypeUInt8
Definition: storport.h:6481
@ DataTypeByteArray
Definition: storport.h:6489
@ DataTypeUInt64
Definition: storport.h:6484
@ DataTypeUInt16
Definition: storport.h:6482
struct _VPD_SERIAL_NUMBER_PAGE VPD_SERIAL_NUMBER_PAGE
STORAGE_CRYPTO_ALGORITHM_ID STOR_CRYPTO_ALGORITHM_ID
Definition: storport.h:6859
struct _VPD_ATA_INFORMATION_PAGE * PVPD_ATA_INFORMATION_PAGE
struct _MINIPORT_MAPPINGS * PMINIPORT_MAPPINGS
FORCEINLINE BOOLEAN StorPortIssueDpc(_In_ PVOID DeviceExtension, _In_ PSTOR_DPC Dpc, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
Definition: storport.h:7917
#define SRBEX_DATA_NVME_COMMAND_LENGTH
Definition: storport.h:2335
struct _STOR_UNIT_NVME_ICE_INFORMATION * PSTOR_UNIT_NVME_ICE_INFORMATION
FORCEINLINE ULONG StorPortPoFxIdleComponent(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ ULONG Component, _In_ ULONG Flags)
Definition: storport.h:8632
struct BLOCK_DEVICE_TOKEN_DESCRIPTOR * PBLOCK_DEVICE_TOKEN_DESCRIPTOR
@ StorRemoveDevice
Definition: storport.h:1658
@ StorQueryCapabilities
Definition: storport.h:1660
@ StorQueryResourceRequirements
Definition: storport.h:1661
@ StorFilterResourceRequirements
Definition: storport.h:1662
@ StorStopDevice
Definition: storport.h:1659
@ StorStartDevice
Definition: storport.h:1657
@ StorSurpriseRemoval
Definition: storport.h:1663
#define GET_DUMP_INFO_SIGNATURE_EXT
Definition: storport.h:6581
struct _MINIPORT_DATA MINIPORT_DATA
_NVME_NAMESPACE_CONTROL_TYPE
Definition: storport.h:1496
@ NvmeNamespacePoFxPowerControl
Definition: storport.h:1504
@ NvmeQuerySupportedNamespaceControlTypes
Definition: storport.h:1497
@ NvmeNamespaceStart
Definition: storport.h:1498
@ MakeNamespaceControlTypeSizeOfUlong
Definition: storport.h:1508
@ NvmeNamespacePoFxPowerSetFState
Definition: storport.h:1503
@ NvmeNamespacePoFxPowerActive
Definition: storport.h:1502
@ NvmeNamespacePoFxPowerRequired
Definition: storport.h:1501
@ NvmeNamespaceControlMax
Definition: storport.h:1507
@ NvmeNamespaceRemove
Definition: storport.h:1505
@ NvmeNamespacePoFxPowerInfo
Definition: storport.h:1500
@ NvmeNamespacePower
Definition: storport.h:1499
@ NvmeNamespaceSurpriseRemoval
Definition: storport.h:1506
struct POPULATE_TOKEN_HEADER * PPOPULATE_TOKEN_HEADER
FORCEINLINE ULONG StorPortAllocatePool(_In_ PVOID HwDeviceExtension, _In_ ULONG NumberOfBytes, _In_ ULONG Tag, _Out_ PVOID *BufferPointer)
Definition: storport.h:7969
struct _VPD_SERIAL_NUMBER_PAGE * PVPD_SERIAL_NUMBER_PAGE
struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB_VAR SRBEX_DATA_SCSI_CDB_VAR
FORCEINLINE ULONG StorPortFreeHostMemoryBuffer(_In_ PVOID HwDeviceExtension)
Definition: storport.h:8890
struct _PORT_CONFIGURATION_INFORMATION * PPORT_CONFIGURATION_INFORMATION
FORCEINLINE ULONG StorPortPoFxPowerControl(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ LPCGUID PowerControlCode, _In_opt_ PVOID InBuffer, _In_ SIZE_T InBufferSize, _Out_opt_ PVOID OutBuffer, _In_ SIZE_T OutBufferSize, _Out_opt_ PSIZE_T BytesReturned)
Definition: storport.h:8679
STORPORT_API BOOLEAN NTAPI StorPortRegistryWrite(_In_ PVOID HwDeviceExtension, _In_ PUCHAR ValueName, _In_ ULONG Global, _In_ ULONG Type, _In_ PUCHAR Buffer, _In_ ULONG BufferLength)
Definition: storport.c:1836
enum _SCSI_NOTIFICATION_TYPE * PSCSI_NOTIFICATION_TYPE
struct _PRO_PARAMETER_LIST * PPRO_PARAMETER_LIST
_SCSI_UC_DEVICE_USAGE_TYPE
Definition: storport.h:6052
@ ScsiDeviceUsageTypePaging
Definition: storport.h:6054
@ ScsiDeviceUsageTypeInlineCryptoEngine
Definition: storport.h:6058
@ ScsiDeviceUsageTypeDumpFile
Definition: storport.h:6056
@ ScsiDeviceUsageTypeUndefined
Definition: storport.h:6053
@ ScsiDeviceUsageTypeHibernation
Definition: storport.h:6055
@ ScsiDeviceUsageTypeBoot
Definition: storport.h:6057
struct _CDVD_KEY_HEADER * PCDVD_KEY_HEADER
struct _VPD_MEDIA_SERIAL_NUMBER_PAGE VPD_MEDIA_SERIAL_NUMBER_PAGE
#define STOR_MODEL_NUMBER_LENGTH
Definition: storport.h:6070
struct _STORPORT_CAPTURE_LIVEDUMP STORPORT_CAPTURE_LIVEDUMP
struct _ERROR_HISTORY_DIRECTORY_ENTRY ERROR_HISTORY_DIRECTORY_ENTRY
struct _VPD_SUPPORTED_PAGES_PAGE VPD_SUPPORTED_PAGES_PAGE
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
struct SRB_ALIGN _SRBEX_DATA_BIDIRECTIONAL * PSRBEX_DATA_BIDIRECTIONAL
FORCEINLINE ULONG StorPortGetProcessorIndexFromNumber(_In_ PVOID HwDeviceExtension, _In_ PPROCESSOR_NUMBER ProcNumber, _Out_ PULONG ProcIndex)
Definition: storport.h:8741
struct _MODE_CACHING_PAGE * PMODE_CACHING_PAGE
#define STOR_FIRMWARE_REVISION_LENGTH
Definition: storport.h:6071
struct _LOG_PARAMETER_THRESHOLD_RESOURCE_COUNT LOG_PARAMETER_THRESHOLD_RESOURCE_COUNT
FORCEINLINE ULONG StorPortMiniportReportInternalData(_In_ PVOID HwDeviceExtension, _In_ PVOID CallbackContext, _In_ ULONG DataCount, _In_reads_(DataCount) PMINIPORT_DATA Data)
Definition: storport.h:9271
#define BLOCK_DEVICE_TOKEN_SIZE
Definition: storport.h:1386
ULONG SCSI_SENSE_OPTIONS
Definition: storport.h:3724
enum _VPD_IDENTIFIER_TYPE VPD_IDENTIFIER_TYPE
struct _READ_BUFFER_CAPACITY_DATA * PREAD_BUFFER_CAPACITY_DATA
_STORPORT_QUERY_CONFIGURATION_TYPE
Definition: storport.h:6393
@ StorportQueryConfigurationD3
Definition: storport.h:6394
@ StorportQueryConfigurationNvmeIce
Definition: storport.h:6395
@ StorportQueryConfigurationMax
Definition: storport.h:6396
enum _STOR_DEVICE_POWER_STATE * PSTOR_DEVICE_POWER_STATE
STORPORT_API BOOLEAN NTAPI StorPortDeviceBusy(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG RequestsToComplete)
Definition: storport.c:649
struct _LUN_LIST LUN_LIST
struct _CURRENT_INTERNAL_STATUS_PARAMETER_DATA CURRENT_INTERNAL_STATUS_PARAMETER_DATA
FORCEINLINE ULONG StorPortCompleteServiceIrp(_In_ PVOID HwDeviceExtension, _In_ PVOID Irp)
Definition: storport.h:8059
struct _STOR_DPC_WATCHDOG_INFORMATION STOR_DPC_WATCHDOG_INFORMATION
VOID(NTAPI * PHW_TIMER_EX)(_In_ PVOID DeviceExtension, _In_opt_ PVOID Context)
Definition: storport.h:7061
struct _PERF_CONFIGURATION_DATA PERF_CONFIGURATION_DATA
FORCEINLINE ULONG StorPortGetNodeAffinity(_In_ PVOID HwDeviceExtension, _In_ ULONG NodeNumber, _Out_ PGROUP_AFFINITY NodeAffinityMask)
Definition: storport.h:8250
struct _MODE_COMMAND_DURATION_LIMIT_PAGE_T2A_SUBPAGE * PMODE_COMMAND_DURATION_LIMIT_PAGE_T2A_SUBPAGE
_STORPORT_FUNCTION_CODE
Definition: storport.h:1697
@ ExtFunctionSetUnitAttributes
Definition: storport.h:1747
@ ExtFunctionFreeContiguousMemorySpecifyCache
Definition: storport.h:1724
@ ExtFunctionGetGroupAffinity
Definition: storport.h:1718
@ ExtFunctionGetRequestCryptoInfo
Definition: storport.h:1779
@ ExtFunctionCancelHighResolutionTimer
Definition: storport.h:1791
@ ExtFunctionFreeWorker
Definition: storport.h:1732
@ ExtFunctionGetNodeAffinity
Definition: storport.h:1720
@ ExtFunctionCompleteServiceIrp
Definition: storport.h:1705
@ ExtFunctionDeviceOperationAllowed
Definition: storport.h:1756
@ ExtFunctionAllocateDmaMemory
Definition: storport.h:1783
@ ExtFunctionMiniportEtwEvent4
Definition: storport.h:1760
@ ExtFunctionDelayExecution
Definition: storport.h:1782
@ ExtFunctionMiniportChannelEtwEvent4
Definition: storport.h:1787
@ ExtFunctionRegistryWriteAdapterKey
Definition: storport.h:1764
@ ExtFunctionFreeHmb
Definition: storport.h:1771
@ ExtFunctionQueryConfiguration
Definition: storport.h:1798
@ ExtFunctionAllocateMdl
Definition: storport.h:1700
@ ExtFunctionCaptureLiveDump
Definition: storport.h:1805
@ ExtFunctionInitializeTimer
Definition: storport.h:1733
@ ExtFunctionRequestTimer
Definition: storport.h:1734
@ ExtFunctionAllocateContiguousMemorySpecifyCacheNode
Definition: storport.h:1723
@ ExtFunctionGetCurrentIrql
Definition: storport.h:1810
@ ExtFunctionGetProcessorIndexFromNumber
Definition: storport.h:1757
@ ExtFunctionInvokeAcpiMethod
Definition: storport.h:1728
@ ExtFunctionGetOriginalMdl
Definition: storport.h:1704
@ ExtFunctionMiniportTelemetry
Definition: storport.h:1780
@ ExtFunctionSetPowerSettingNotificationGuids
Definition: storport.h:1727
@ ExtFunctionFreePool
Definition: storport.h:1699
@ ExtFunctionWaitForEvent
Definition: storport.h:1801
@ ExtFunctionInterlockedFlushSList
Definition: storport.h:1737
@ ExtFunctionGetDeviceObjects
Definition: storport.h:1706
@ ExtFunctionAcquireMSISpinLock
Definition: storport.h:1709
@ ExtFunctionPropagateIrpExtension
Definition: storport.h:1772
@ ExtFunctionInitializeCryptoEngine
Definition: storport.h:1778
@ ExtFunctionFreeTimer
Definition: storport.h:1735
@ ExtFunctionInitializePerformanceOptimizations
Definition: storport.h:1712
@ ExtFunctionInitializePoFxPower
Definition: storport.h:1749
@ ExtFunctionPoFxSetPerfState
Definition: storport.h:1767
@ ExtFunctionPoFxSetIdleTimeout
Definition: storport.h:1758
@ ExtFunctionSetAdapterBusType
Definition: storport.h:1765
@ ExtFunctionFlushDataBufferMdl
Definition: storport.h:1755
@ ExtFunctionPoFxIdleComponent
Definition: storport.h:1751
@ ExtFunctionGetDataInBufferMdl
Definition: storport.h:1743
@ ExtFunctionInterlockedInsertTailList
Definition: storport.h:1774
@ ExtFunctionInterlockedPopEntrySList
Definition: storport.h:1738
@ ExtFunctionMaskPciMsixEntry
Definition: storport.h:1809
@ ExtFunctionPoFxPowerControl
Definition: storport.h:1754
@ ExtFunctionPoFxSetComponentResidency
Definition: storport.h:1753
@ ExtFunctionGetLogicalProcessorRelationship
Definition: storport.h:1722
@ ExtFunctionGetMessageInterruptInformation
Definition: storport.h:1711
@ ExtFunctionGetSystemAddress
Definition: storport.h:1703
@ ExtFunctionMiniportReportInternalData
Definition: storport.h:1816
@ ExtFunctionInitializeSListHead
Definition: storport.h:1736
@ ExtFunctionMiniportLogByteStream
Definition: storport.h:1806
@ ExtFunctionInterlockedInsertHeadList
Definition: storport.h:1773
@ ExtFunctionFreeDmaMemory
Definition: storport.h:1784
@ ExtFunctionGetD3ColdSupport
Definition: storport.h:1768
@ ExtFunctionQueryDpcWatchdogInformation
Definition: storport.h:1807
@ ExtFunctionGetStartIoPerformanceParameters
Definition: storport.h:1713
@ ExtFunctionLogSystemEvent
Definition: storport.h:1714
@ ExtFunctionGetRequestInfo
Definition: storport.h:1729
@ ExtFunctionDeviceResetEx
Definition: storport.h:1815
@ ExtFunctionInterlockedPushEntrySList
Definition: storport.h:1739
@ ExtFunctionBuildScatterGatherList
Definition: storport.h:1707
@ ExtFunctionPutScatterGatherList
Definition: storport.h:1708
@ ExtFunctionInitializeRpmb
Definition: storport.h:1769
@ ExtFunctionMiniportChannelEtwEvent8
Definition: storport.h:1788
@ ExtFunctionGetSystemPortNumber
Definition: storport.h:1742
@ ExtFunctionFreeHighResolutionTimer
Definition: storport.h:1792
@ ExtFunctionReleaseMSISpinLock
Definition: storport.h:1710
@ ExtFunctionSetPriorityThread
Definition: storport.h:1812
@ ExtFunctionCurrentOsInstallationUpgrade
Definition: storport.h:1762
@ ExtFunctionFreeMdl
Definition: storport.h:1701
@ ExtFunctionQueueWorkItem
Definition: storport.h:1731
@ ExtFunctionInitializeSpinlock
Definition: storport.h:1776
@ ExtFunctionQueryPerformanceCounter
Definition: storport.h:1748
@ ExtFunctionQueryTimerMinInterval
Definition: storport.h:1808
@ ExtFunctionInitializeHighResolutionTimer
Definition: storport.h:1789
@ ExtFunctionUpdateAdapterMaxIOInfo
Definition: storport.h:1785
@ ExtFunctionGetActiveGroupCount
Definition: storport.h:1717
@ ExtFunctionGetProcessorCount
Definition: storport.h:1795
@ ExtFunctionBuildMdlForNonPagedPool
Definition: storport.h:1702
@ ExtFunctionCancelDpc
Definition: storport.h:1796
@ ExtFunctionAcquireSpinLock
Definition: storport.h:1794
@ ExtFunctionGetCurrentProcessorNumber
Definition: storport.h:1716
@ ExtFunctionGetActivityId
Definition: storport.h:1741
@ ExtFunctionGetHighestNodeNumber
Definition: storport.h:1721
@ ExtFunctionPoFxSetComponentLatency
Definition: storport.h:1752
@ ExtFunctionSetFeatureList
Definition: storport.h:1804
@ ExtFunctionPoFxActivateComponent
Definition: storport.h:1750
@ ExtFunctionMiniportTelemetryEx
Definition: storport.h:1797
@ ExtFunctionInitializeEvent
Definition: storport.h:1800
@ ExtFunctionSetEvent
Definition: storport.h:1802
@ ExtFunctionAllocatePool
Definition: storport.h:1698
@ ExtFunctionGetCurrentProcessorIndex
Definition: storport.h:1793
@ ExtFunctionRequestHighResolutionTimer
Definition: storport.h:1790
@ ExtFunctionGetPfns
Definition: storport.h:1777
@ ExtFunctionSetSystemGroupAffinityThread
Definition: storport.h:1813
@ ExtFunctionQueryDepthSList
Definition: storport.h:1740
@ ExtFunctionGetDataInBufferScatterGatherList
Definition: storport.h:1745
@ ExtFunctionLogHardwareError
Definition: storport.h:1799
@ ExtFunctionUpdateAdapterMaxIO
Definition: storport.h:1781
@ ExtFunctionInitializeWorker
Definition: storport.h:1730
@ ExtFunctionRevertToUserGroupAffinityThread
Definition: storport.h:1814
@ ExtFunctionDeviceReset
Definition: storport.h:1803
@ ExtFunctionMiniportEtwEvent8
Definition: storport.h:1761
@ ExtFunctionMiniportChannelEtwEvent2
Definition: storport.h:1786
@ ExtFunctionPoFxRegisterPerfStates
Definition: storport.h:1766
@ ExtFunctionCreateSystemThread
Definition: storport.h:1811
@ ExtFunctionGetActiveNodeCount
Definition: storport.h:1719
@ ExtFunctionAllocateHmb
Definition: storport.h:1770
@ ExtFunctionInterlockedRemoveHeadList
Definition: storport.h:1775
@ ExtFunctionGetDataInBufferSystemAddress
Definition: storport.h:1744
@ ExtFunctionRegistryReadAdapterKey
Definition: storport.h:1763
@ ExtFunctionMarkDumpMemory
Definition: storport.h:1746
@ ExtFunctionMiniportEtwEvent2
Definition: storport.h:1759
enum _STOR_EVENT_ASSOCIATION_ENUM STOR_EVENT_ASSOCIATION_ENUM
union _CDB CDB
struct _STOR_EVENT * PRSTOR_EVENT
struct SRB_ALIGN _SRBEX_DATA_IO_INFO SRBEX_DATA_IO_INFO
struct _TRACK_INFORMATION2 * PTRACK_INFORMATION2
VOID(NTAPI * PHW_FREE_ADAPTER_RESOURCES)(_In_ PVOID DeviceExtension)
Definition: storport.h:7134
struct _STOR_UC_DEVICE_USAGE STOR_UC_DEVICE_USAGE
enum _STORAGE_CRYPTO_ALGORITHM_ID STORAGE_CRYPTO_ALGORITHM_ID
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
FORCEINLINE ULONG StorPortGetDeviceObjects(_In_ PVOID HwDeviceExtension, _Out_ PVOID *AdapterDeviceObject, _Out_ PVOID *PhysicalDeviceObject, _Out_ PVOID *LowerDeviceObject)
Definition: storport.h:8070
struct _STOR_POFX_ACTIVE_CONTEXT STOR_POFX_ACTIVE_CONTEXT
struct _READ_DVD_STRUCTURES_HEADER * PREAD_DVD_STRUCTURES_HEADER
struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB_VAR * PSRBEX_DATA_SCSI_CDB_VAR
struct BLOCK_DEVICE_RANGE_DESCRIPTOR * PBLOCK_DEVICE_RANGE_DESCRIPTOR
FORCEINLINE ULONG StorPortGetSystemPortNumber(_In_ PVOID HwDeviceExtension, _Inout_ PSTOR_ADDRESS Address)
Definition: storport.h:8460
SRBEX_DATA_NVME_COMMAND_FLAG
Definition: storport.h:2348
@ SRBEX_DATA_NVME_COMMAND_FLAG_SIGNATURE_ENABLED
Definition: storport.h:2352
@ SRBEX_DATA_NVME_COMMAND_FLAG_REQUIRE_DATA_TRANSFER_OUT
Definition: storport.h:2350
@ SRBEX_DATA_NVME_COMMAND_FLAG_PRP_SET_ALREADY
Definition: storport.h:2351
@ SRBEX_DATA_NVME_COMMAND_FLAG_NO_POLLING
Definition: storport.h:2353
@ SRBEX_DATA_NVME_COMMAND_FLAG_REQUIRE_DATA_TRANSFER_IN
Definition: storport.h:2349
@ ScsiAdapterControlBufferTooSmall
Definition: storport.h:1561
@ ScsiAdapterControlSuccess
Definition: storport.h:1558
@ ScsiAdapterControlUnsuccessful
Definition: storport.h:1559
@ ScsiAdapterControlRetryNeeded
Definition: storport.h:1560
struct _ZONE_DESCRIPTIOR * PZONE_DESCRIPTIOR
struct _MODE_PARM_READ_WRITE * PMODE_PARM_READ_WRITE_DATA
struct _STOR_POFX_COMPONENT STOR_POFX_COMPONENT
FORCEINLINE ULONG StorPortInterlockedInsertHeadList(_In_ PVOID HwDeviceExtension, _In_ PSTOR_LIST_ENTRY ListHead, _In_ PSTOR_LIST_ENTRY ListEntry, _In_ PSTOR_KSPIN_LOCK Lock)
Definition: storport.h:8983
struct _STOR_LOCK_HANDLE STOR_LOCK_HANDLE
struct _HW_INITIALIZATION_DATA * PHW_INITIALIZATION_DATA
_STOR_SYNCHRONIZATION_MODEL
Definition: storport.h:1416
@ StorSynchronizeFullDuplex
Definition: storport.h:1418
@ StorSynchronizeHalfDuplex
Definition: storport.h:1417
_STORPORT_LIVEDUMP_ISSUE_TYPE
Definition: storport.h:6502
@ StorportLivedumpIssueTypeDevicePanic
Definition: storport.h:6504
@ StorportLivedumpIssueTypeUndefined
Definition: storport.h:6503
struct SRB_ALIGN _SRBEX_DATA SRBEX_DATA
enum _STORPORT_ETW_EVENT_OPCODE STORPORT_ETW_EVENT_OPCODE
@ VpdAssocPort
Definition: storport.h:1677
@ VpdAssocTarget
Definition: storport.h:1678
@ VpdAssocReserved1
Definition: storport.h:1679
@ VpdAssocDevice
Definition: storport.h:1676
@ VpdAssocReserved2
Definition: storport.h:1680
STORPORT_API PVOID NTAPI StorPortGetLogicalUnit(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
Definition: storport.c:1173
struct _MINIPORT_DUMP_INFO * PMINIPORT_DUMP_INFO
STORPORT_API ULONG NTAPI StorPortInitialize(_In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PHW_INITIALIZATION_DATA HwInitializationData, _In_opt_ PVOID Unused)
struct _STOR_POFX_POWER_REQUIRED_CONTEXT * PSTOR_POFX_POWER_REQUIRED_CONTEXT
FORCEINLINE ULONG StorPortFreeWorker(_In_ PVOID HwDeviceExtension, _In_ PVOID Worker)
Definition: storport.h:8342
struct _READ_CAPACITY_DATA READ_CAPACITY_DATA
struct _SLOT_TABLE_INFORMATION * PSLOT_TABLE_INFORMATION
union _SENSE_DATA_EX * PSENSE_DATA_EX
struct _STOR_SERIAL_NUMBER STOR_SERIAL_NUMBER
struct _SCSI_WMI_REQUEST_BLOCK SCSI_WMI_REQUEST_BLOCK
_SCSI_UNIT_CONTROL_STATUS
Definition: storport.h:1590
@ ScsiUnitControlNotSupported
Definition: storport.h:1593
@ ScsiUnitControlSuccess
Definition: storport.h:1591
@ ScsiUnitControlUnsuccessful
Definition: storport.h:1592
STORPORT_API ULONG NTAPI StorPortReadRegisterUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Register)
Definition: stubs.c:143
_STOR_DEVICE_RESET_TYPE
Definition: storport.h:6376
@ StorFunctionLevelReset
Definition: storport.h:6377
@ StorBusSpecificReset
Definition: storport.h:6379
@ StorPlatformLevelReset
Definition: storport.h:6378
struct _STOR_EVENT STOR_EVENT
struct _MODE_FLEXIBLE_DISK_PAGE * PMODE_FLEXIBLE_DISK_PAGE
struct _MODE_READ_RECOVERY_PAGE * PMODE_READ_RECOVERY_PAGE
struct _TRACK_INFORMATION * PTRACK_INFORMATION
enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
struct _SAVED_INTERNAL_STATUS_PARAMETER_DATA * PSAVED_INTERNAL_STATUS_PARAMETER_DATA
struct _MODE_READ_WRITE_RECOVERY_PAGE * PMODE_READ_WRITE_RECOVERY_PAGE
struct _OPC_TABLE_ENTRY * POPC_TABLE_ENTRY
struct _DISK_INFORMATION * PDISK_INFORMATION
BOOLEAN(NTAPI * PStorPortGetMessageInterruptInformation)(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _Out_ PMESSAGE_INTERRUPT_INFORMATION InterruptInfo)
Definition: storport.h:7178
FORCEINLINE ULONG StorPortBuildMdlForNonPagedPool(_In_ PVOID HwDeviceExtension, _Inout_ PVOID Mdl)
Definition: storport.h:8022
struct _UNMAP_BLOCK_DESCRIPTOR UNMAP_BLOCK_DESCRIPTOR
STORPORT_API VOID NTAPI StorPortReadPortBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:34
struct _STOR_POFX_POWER_CONTROL * PSTOR_POFX_POWER_CONTROL
_STOR_EVENT_ASSOCIATION_ENUM
Definition: storport.h:1821
@ StorEventTargetAssociation
Definition: storport.h:1824
@ StorEventInvalidAssociation
Definition: storport.h:1825
@ StorEventAdapterAssociation
Definition: storport.h:1822
@ StorEventLunAssociation
Definition: storport.h:1823
struct _FORMATTED_CAPACITY_LIST FORMATTED_CAPACITY_LIST
struct _UNMAP_LIST_HEADER UNMAP_LIST_HEADER
FORCEINLINE ULONG StorPortRevertToUserGroupAffinityThread(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_GROUP_AFFINITY PreviousAffinity)
Definition: storport.h:9222
struct _STOR_POFX_COMPONENT_IDLE_STATE STOR_POFX_COMPONENT_IDLE_STATE
struct _FORMAT_LIST_HEADER * PFORMAT_LIST_HEADER
FORCEINLINE ULONG StorPortUpdateAdapterMaxIO(_In_ PVOID HwDeviceExtension, _In_ ULONG MaxIoCount)
Definition: storport.h:8792
FORCEINLINE ULONG StorPortInterlockedPopEntrySList(_In_ PVOID HwDeviceExtension, _In_ PSLIST_HEADER SListHead, _Out_ PSLIST_ENTRY *Result)
Definition: storport.h:8419
STORPORT_API VOID NTAPI StorPortWriteRegisterUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ ULONG Value)
Definition: stubs.c:291
enum _SCSI_ADAPTER_CONTROL_STATUS SCSI_ADAPTER_CONTROL_STATUS
VOID(NTAPI * PHW_COMPLETE_SERVICE_IRP)(_In_ PVOID DeviceExtension)
Definition: storport.h:7145
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
struct _GET_MINIPORT_DUMP_INFO_V1 GET_MINIPORT_DUMP_INFO_V1
struct WRITE_USING_TOKEN_HEADER * PWRITE_USING_TOKEN_HEADER
struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB16 SRBEX_DATA_SCSI_CDB16
enum _NVME_NAMESPACE_CONTROL_TYPE NVME_NAMESPACE_CONTROL_TYPE
STORPORT_API VOID NTAPI StorPortMoveMemory(_Out_writes_bytes_(Length) PVOID WriteBuffer, _In_reads_bytes_(Length) PVOID ReadBuffer, _In_ ULONG Length)
Definition: storport.c:1536
FORCEINLINE VOID StorPortAcquireSpinLock(_In_ PVOID DeviceExtension, _In_ STOR_SPINLOCK SpinLock, _In_ PVOID LockContext, _Inout_ PSTOR_LOCK_HANDLE LockHandle)
Definition: storport.h:7936
struct _STOR_DEVICE_CAPABILITIES_EX * PSTOR_DEVICE_CAPABILITIES_EX
struct _MODE_READ_RECOVERY_PAGE MODE_READ_RECOVERY_PAGE
STORPORT_API VOID NTAPI StorPortSynchronizeAccess(_In_ PVOID HwDeviceExtension, _In_ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine, _In_opt_ PVOID Context)
Definition: storport.c:1982
FORCEINLINE ULONG StorPortFreeHighResolutionTimer(_In_ PVOID HwDeviceExtension, _In_ PVOID TimerHandle)
Definition: storport.h:9341
enum _VPD_CODE_SET VPD_CODE_SET
FORCEINLINE ULONG StorPortQueryDpcWatchdogInformation(_In_ PVOID HwDeviceExtension, _Out_ PSTOR_DPC_WATCHDOG_INFORMATION WatchdogInformation)
Definition: storport.h:9124
enum _STOR_POFX_PERF_STATE_UNIT STOR_POFX_PERF_STATE_UNIT
FORCEINLINE ULONG StorPortPoFxRegisterPerfStates(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG ComponentIndex, _In_ ULONG PerfSetCount, _In_reads_(PerfSetCount) PSTOR_POFX_COMPONENT_PERF_SET *PerfSets)
Definition: storport.h:9430
#define STOR_ADDRESS_TYPE_NVME
Definition: storport.h:2305
struct _STARTIO_PERFORMANCE_PARAMETERS_V2 * PSTARTIO_PERFORMANCE_PARAMETERS_V2
struct STOR_ADDRESS_ALIGN _STOR_ADDR_NVME * PSTOR_ADDR_NVME
struct _MECHANICAL_STATUS * PMECHANICAL_STATUS
FORCEINLINE ULONG StorPortQueryConfiguration(_In_ PVOID HwDeviceExtension, _In_ STORPORT_QUERY_CONFIGURATION_TYPE Type, _Out_ PVOID Buffer, _In_ ULONG BufferLength)
Definition: storport.h:9056
FORCEINLINE ULONG StorPortAllocateDmaMemory(_In_ PVOID HwDeviceExtension, _In_ SIZE_T NumberOfBytes, _In_ PHYSICAL_ADDRESS LowestAcceptableAddress, _In_ PHYSICAL_ADDRESS HighestAcceptableAddress, _In_opt_ PHYSICAL_ADDRESS BoundaryAddressMultiple, _In_ MEMORY_CACHING_TYPE CacheType, _In_ NODE_REQUIREMENT PreferredNode, _Out_ PVOID *BufferPointer, _Out_ PPHYSICAL_ADDRESS PhysicalAddress)
Definition: storport.h:8817
enum _STORPORT_ETW_EVENT_OPCODE * PSTORPORT_ETW_EVENT_OPCODE
enum _RAID_SYSTEM_POWER * PRAID_SYSTEM_POWER
struct _LOG_PAGE * PLOG_PAGE
struct STOR_ADDRESS_ALIGN _STOR_ADDR_NVME STOR_ADDR_NVME
struct _MODE_MRW_PAGE MODE_MRW_PAGE
struct _STOR_REPORT_INTERNAL_DATA * PSTOR_REPORT_INTERNAL_DATA
struct _STOR_CRYPTO_CAPABILITY STOR_CRYPTO_CAPABILITY
FORCEINLINE ULONG StorPortPoFxSetIdleTimeout(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG IdleTimeout)
Definition: storport.h:8702
struct _PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA * PPHYSICAL_ELEMENT_STATUS_PARAMETER_DATA
struct _CDVD_KEY_DATA * PCDVD_KEY_DATA
VOID(NTAPI * PHW_PROCESS_SERVICE_REQUEST)(_In_ PVOID DeviceExtension, _In_ PVOID Irp)
Definition: storport.h:7139
enum _GETSGSTATUS * PGETSGSTATUS
struct _STARTIO_PERFORMANCE_PARAMETERS_V2 STARTIO_PERFORMANCE_PARAMETERS_V2
struct _MODE_DISCONNECT_PAGE MODE_DISCONNECT_PAGE
enum _RAID_SYSTEM_POWER RAID_SYSTEM_POWER
struct _PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA PHYSICAL_ELEMENT_STATUS_PARAMETER_DATA
struct _STOR_RESET_BUS_SYNCHRONOUS_PARAMETER STOR_RESET_BUS_SYNCHRONOUS_PARAMETER
struct _SAVED_INTERNAL_STATUS_PARAMETER_DATA SAVED_INTERNAL_STATUS_PARAMETER_DATA
VOID(NTAPI * PHW_CLEANUP_TRACING)(_In_ PVOID Arg1)
Definition: storport.h:7156
struct _VPD_SUPPORTED_PAGES_PAGE * PVPD_SUPPORTED_PAGES_PAGE
struct _LOG_PARAMETER_THRESHOLD_RESOURCE_COUNT * PLOG_PARAMETER_THRESHOLD_RESOURCE_COUNT
STORPORT_API ULONG NTAPI StorPortGetBusData(_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _Out_ _When_(Length !=0, _Out_writes_bytes_(Length)) PVOID Buffer, _In_ ULONG Length)
Definition: storport.c:1060
struct _STORPORT_TELEMETRY_EVENT * PSTORPORT_TELEMETRY_EVENT
union _EIGHT_BYTE * PEIGHT_BYTE
_STOR_IO_PRIORITY_HINT
Definition: storport.h:5802
@ StorIoPriorityHigh
Definition: storport.h:5806
@ StorIoMaxPriorityValue
Definition: storport.h:5809
@ StorIoPriorityNormal
Definition: storport.h:5805
@ StorIoPriorityCritical
Definition: storport.h:5807
@ StorIoPriorityVeryLow
Definition: storport.h:5803
@ StorIoMaxPriorityTypes
Definition: storport.h:5808
@ StorIoPriorityLow
Definition: storport.h:5804
struct _READ_BLOCK_LIMITS * PREAD_BLOCK_LIMITS_DATA
enum _NVME_NAMESPACE_CONTROL_TYPE * PNVME_NAMESPACE_CONTROL_TYPE
struct _MODE_CONTROL_PAGE * PMODE_CONTROL_PAGE
struct _STOR_DEVICE_CAPABILITIES STOR_DEVICE_CAPABILITIES
FORCEINLINE ULONG StorPortCancelDpc(_In_ PVOID HwDeviceExtension, _In_ PSTOR_DPC Dpc, _Out_ PBOOLEAN Cancelled)
Definition: storport.h:9352
enum _NVME_ADAPTER_CONTROL_TYPE * PNVME_ADAPTER_CONTROL_TYPE
struct _SCSI_PNP_REQUEST_BLOCK SCSI_PNP_REQUEST_BLOCK
struct _FORMATTED_CAPACITY_DESCRIPTOR * PFORMATTED_CAPACITY_DESCRIPTOR
FORCEINLINE ULONG StorPortFreeTimer(_In_ PVOID HwDeviceExtension, _In_ PVOID TimerHandle)
Definition: storport.h:8384
enum _NVME_ADAPTER_CONTROL_STATUS NVME_ADAPTER_CONTROL_STATUS
struct _STOR_DPC STOR_DPC
enum SRBEX_DATA_NVME_RESPONSE_FLAG * PSRBEX_DATA_NVME_RESPONSE_FLAG
#define EVENT_NAME_MAX_LENGTH
Definition: storport.h:6438
struct _VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE * PVPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE
struct _VPD_IDENTIFICATION_PAGE * PVPD_IDENTIFICATION_PAGE
_STOR_SPINLOCK
Definition: storport.h:1430
@ InvalidLock
Definition: storport.h:1431
@ StartIoLock
Definition: storport.h:1433
@ ThreadedDpcLock
Definition: storport.h:1435
@ DpcLevelLock
Definition: storport.h:1436
@ InterruptLock
Definition: storport.h:1434
@ DpcLock
Definition: storport.h:1432
struct _MEMORY_REGION * PMEMORY_REGION
struct STOR_ADDRESS_ALIGN _STOR_ADDR_BTL8 * PSTOR_ADDR_BTL8
FORCEINLINE ULONG StorPortRequestTimer(_In_ PVOID HwDeviceExtension, _In_ PVOID TimerHandle, _In_ PHW_TIMER_EX TimerCallback, _In_opt_ PVOID CallbackContext, _In_ ULONGLONG TimerValue, _In_ ULONGLONG TolerableDelay)
Definition: storport.h:8365
struct _MODE_PARAMETER_HEADER10 MODE_PARAMETER_HEADER10
struct _DPC_BUFFER DPC_BUFFER
struct _STOR_CRYPTO_OPERATION STOR_CRYPTO_OPERATION
struct _STOR_CRYPTO_CAPABILITIES_DATA * PSTOR_CRYPTO_CAPABILITIES_DATA
FORCEINLINE ULONG StorPortInitializeEvent(_In_ PVOID HwDeviceExtension, _In_ PSTOR_EVENT Event, _In_ STOR_EVENT_TYPE Type, _In_ BOOLEAN State)
Definition: storport.h:9071
struct _MODE_MRW_PAGE * PMODE_MRW_PAGE
enum _STORPORT_FUNCTION_CODE STORPORT_FUNCTION_CODE
STORAGE_CRYPTO_ALGORITHM_ID * PSTOR_CRYPTO_ALGORITHM_ID
Definition: storport.h:6859
_STOR_DMA_WIDTH
Definition: storport.h:1422
@ Dma64BitScatterGather
Definition: storport.h:1425
@ DmaUnknown
Definition: storport.h:1423
@ Dma32Bit
Definition: storport.h:1424
@ Dma64Bit
Definition: storport.h:1426
union _FOUR_BYTE FOUR_BYTE
struct _CDVD_TITLE_KEY_HEADER CDVD_TITLE_KEY_HEADER
struct _STOR_DEVICE_CAPABILITIES * PSTOR_DEVICE_CAPABILITIES
struct _STOR_CRYPTO_KEY_INFO STOR_CRYPTO_KEY_INFO
struct _PRI_RESERVATION_LIST PRI_RESERVATION_LIST
enum _STOR_IMPORTANCE STOR_IMPORTANCE
struct _MODE_RIGID_GEOMETRY_PAGE MODE_RIGID_GEOMETRY_PAGE
_INTERNAL_DATA_SCOPE
Definition: storport.h:6117
@ InternalDataScopeInMemoryState
Definition: storport.h:6119
@ InternalDataScopeUndefined
Definition: storport.h:6118
@ InternalDataScopeMax
Definition: storport.h:6120
struct _HW_INITIALIZATION_DATA HW_INITIALIZATION_DATA
union _SENSE_DATA_EX SENSE_DATA_EX
struct _SCSI_POWER_REQUEST_BLOCK SCSI_POWER_REQUEST_BLOCK
VOID(NTAPI * PHW_STATE_CHANGE)(_In_ PVOID HwDeviceExtension, _In_opt_ PVOID Context, _In_ SHORT AddressType, _In_ PVOID Address, _In_ ULONG Status)
Definition: storport.h:7101
_STORAGE_CRYPTO_ALGORITHM_ID
Definition: storport.h:6795
@ StorageCryptoAlgorithmBitlockerAESCBC
Definition: storport.h:6798
@ StorageCryptoAlgorithmUnknown
Definition: storport.h:6796
@ StorageCryptoAlgorithmESSIVAESCBC
Definition: storport.h:6800
@ StorCryptoAlgorithmXTSAES
Definition: storport.h:6804
@ StorCryptoAlgorithmAESECB
Definition: storport.h:6806
@ StorageCryptoAlgorithmAESECB
Definition: storport.h:6799
@ StorageCryptoAlgorithmXTSAES
Definition: storport.h:6797
@ StorageCryptoAlgorithmMax
Definition: storport.h:6801
@ StorCryptoAlgorithmBitlockerAESCBC
Definition: storport.h:6805
@ StorCryptoAlgorithmUnknown
Definition: storport.h:6803
@ StorCryptoAlgorithmESSIVAESCBC
Definition: storport.h:6807
struct _SENSE_DATA * PSENSE_DATA
struct _PORT_OUTPUT PORT_OUTPUT
struct _FORMATTED_CAPACITY_DESCRIPTOR FORMATTED_CAPACITY_DESCRIPTOR
struct _STOR_MAX_OPERATIONAL_POWER * PSTOR_MAX_OPERATIONAL_POWER
FORCEINLINE ULONG StorPortGetDataInBufferSystemAddress(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *SystemAddress)
Definition: storport.h:8523
STORPORT_API VOID NTAPI StorPortWriteRegisterUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ USHORT Value)
Definition: stubs.c:303
struct _VPD_ATA_INFORMATION_PAGE VPD_ATA_INFORMATION_PAGE
struct _STORPORT_EXTENDED_FUNCTIONS STORPORT_EXTENDED_FUNCTIONS
struct _FORMATTED_CAPACITY_LIST * PFORMATTED_CAPACITY_LIST
struct _STOR_POFX_PERF_STATE_CONTEXT STOR_POFX_PERF_STATE_CONTEXT
struct _STOR_POWER_CONTROL_HEADER * PSTOR_POWER_CONTROL_HEADER
enum _NVME_ADAPTER_CONTROL_STATUS * PNVME_ADAPTER_CONTROL_STATUS
struct _LOG_PAGE LOG_PAGE
struct _DATA_BLOCK_HEADER DATA_BLOCK_HEADER
union _STORAGE_SECURITY_COMPLIANCE_BITMASK STORAGE_SECURITY_COMPLIANCE_BITMASK
struct _SCSI_POWER_REQUEST_BLOCK * PSCSI_POWER_REQUEST_BLOCK
FORCEINLINE ULONG StorPortQueryDepthSList(_In_ PVOID HwDeviceExtension, _In_ PSLIST_HEADER SListHead, _Out_ PUSHORT Depth)
Definition: storport.h:8447
VOID(NTAPI * PHW_TIMER)(_In_ PVOID DeviceExtension)
Definition: storport.h:7008
struct _STOR_SLIST_ENTRY * PSTOR_SLIST_ENTRY
FORCEINLINE ULONG StorPortInitializePoFxPower(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ PSTOR_POFX_DEVICE Device, _Inout_ PBOOLEAN D3ColdEnabled)
Definition: storport.h:8600
STORPORT_API VOID NTAPI StorPortWritePortBufferUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count)
Definition: stubs.c:191
struct _READ_BLOCK_LIMITS READ_BLOCK_LIMITS_DATA
struct _STOR_SCATTER_GATHER_ELEMENT STOR_SCATTER_GATHER_ELEMENT
struct _UNMAP_LIST_HEADER * PUNMAP_LIST_HEADER
struct _MODE_CACHING_PAGE MODE_CACHING_PAGE
struct _SCSI_SUPPORTED_CONTROL_TYPE_LIST * PSCSI_SUPPORTED_CONTROL_TYPE_LIST
struct _STORPORT_LIVEDUMP_DEVICE_TELEMETRY_LOG * PSTORPORT_LIVEDUMP_DEVICE_TELEMETRY_LOG
enum _STOR_CRYPTO_OPERATION_TYPE STOR_CRYPTO_OPERATION_TYPE
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE MODE_CDROM_WRITE_PARAMETERS_PAGE
struct PRI_FULL_STATUS_LIST * PPRI_FULL_STATUS_LIST
_NVME_ADAPTER_CONTROL_STATUS
Definition: storport.h:1488
@ NvmeAdapterControlSuccess
Definition: storport.h:1489
@ NvmeAdapterControlUnsuccessful
Definition: storport.h:1490
@ NvmeAdapterControlRetryNeeded
Definition: storport.h:1491
@ NvmeAdapterControlBufferTooSmall
Definition: storport.h:1492
struct _MODE_PARAMETER_HEADER MODE_PARAMETER_HEADER
FORCEINLINE ULONG StorPortInitializePerfOpts(_In_ PVOID HwDeviceExtension, _In_ BOOLEAN Query, _Inout_ PPERF_CONFIGURATION_DATA PerfConfigData)
Definition: storport.h:8162
#define STOR_STATUS_SUCCESS
Definition: storport.h:566
_STORAGE_CRYPTO_KEY_SIZE
Definition: storport.h:6811
@ StorCryptoKeySizeUnknown
Definition: storport.h:6818
@ StorCryptoKeySize192Bits
Definition: storport.h:6820
@ StorageCryptoKeySizeUnknown
Definition: storport.h:6812
@ StorageCryptoKeySize256Bits
Definition: storport.h:6815
@ StorageCryptoKeySize128Bits
Definition: storport.h:6813
@ StorageCryptoKeySize192Bits
Definition: storport.h:6814
@ StorageCryptoKeySizeMax
Definition: storport.h:6817
@ StorageCryptoKeySize512Bits
Definition: storport.h:6816
@ StorCryptoKeySize128Bits
Definition: storport.h:6819
@ StorCryptoKeySize512Bits
Definition: storport.h:6822
@ StorCryptoKeySize256Bits
Definition: storport.h:6821
struct _SCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN SCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN
FORCEINLINE ULONG StorPortCaptureLiveDump(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ PSTORPORT_CAPTURE_LIVEDUMP CaptureLivedump)
Definition: storport.h:9286
enum _SCSI_UNIT_CONTROL_TYPE * PSCSI_UNIT_CONTROL_TYPE
BOOLEAN(NTAPI * PHW_INTERRUPT)(_In_ PVOID DeviceExtension)
Definition: storport.h:7003
struct ST_PARAMETER_DATA * PST_PARAMETER_DATA
struct _VPD_BLOCK_LIMITS_PAGE * PVPD_BLOCK_LIMITS_PAGE
struct _NOTIFICATION_POWER_STATUS * PNOTIFICATION_POWER_STATUS
FORCEINLINE ULONG StorPortGetCurrentIrql(_In_ PVOID HwDeviceExtension, _Out_ PKIRQL Irql)
Definition: storport.h:9146
struct _CDVD_CHALLENGE_KEY_DATA CDVD_CHALLENGE_KEY_DATA
struct _STOR_CRYPTO_CAPABILITY * PSTOR_CRYPTO_CAPABILITY
struct _STOR_UNIT_CONTROL_POWER * PSTOR_UNIT_CONTROL_POWER
STORPORT_API VOID NTAPI StorPortFreeRegistryBuffer(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Buffer)
Definition: storport.c:1045
_STORPORT_CAPTURE_LIVEDUMP_TYPE
Definition: storport.h:6510
@ StorportCaptureLiveDumpTypeFull
Definition: storport.h:6513
@ StorportCaptureLiveDumpTypeUndefined
Definition: storport.h:6511
@ StorportCaptureLiveDumpTypeMini
Definition: storport.h:6512
struct _LUN_LIST * PLUN_LIST
struct _CDVD_REPORT_ASF_DATA * PCDVD_REPORT_ASF_DATA
struct _VPD_IDENTIFICATION_DESCRIPTOR * PVPD_IDENTIFICATION_DESCRIPTOR
struct _MODE_INFO_EXCEPTIONS * PMODE_INFO_EXCEPTIONS
STORPORT_API BOOLEAN NTAPI StorPortValidateRange(_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ STOR_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
Definition: storport.c:1998
struct _MODE_FLEXIBLE_DISK_PAGE MODE_FLEXIBLE_DISK_PAGE
enum _INTERNAL_DATA_SCOPE INTERNAL_DATA_SCOPE
struct _MECHANICAL_STATUS_INFORMATION_HEADER MECHANICAL_STATUS_INFORMATION_HEADER
enum _STOR_EVENT_TYPE * PSTOR_EVENT_TYPE
struct _SCSI_SENSE_DESCRIPTOR_HEADER SCSI_SENSE_DESCRIPTOR_HEADER
STORPORT_API PSTOR_SCATTER_GATHER_LIST NTAPI StorPortGetScatterGatherList(_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.c:1269
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ PUCHAR Buffer, _In_ ULONG Count)
Definition: stubs.c:93
FORCEINLINE ULONG StorPortLogTelemetryEx(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ PSTORPORT_TELEMETRY_EVENT Event, _In_ STOR_TELEMETRY_CATEGORY Category)
Definition: storport.h:9256
FORCEINLINE ULONG StorPortGetDataInBufferScatterGatherList(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PSTOR_SCATTER_GATHER_LIST *SgList)
Definition: storport.h:8536
struct _FREE_MINIPORT_DUMP_INFO * PFREE_MINIPORT_DUMP_INFO
STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortGetPhysicalAddress(_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ PVOID VirtualAddress, _Out_ ULONG *Length)
Definition: storport.c:1214
struct _SCSI_EXTENDED_MESSAGE * PSCSI_EXTENDED_MESSAGE
FORCEINLINE ULONG StorPortRequestHighResolutionTimer(_In_ PVOID HwDeviceExtension, _In_ PVOID TimerHandle, _In_ ULONGLONG TimerValue)
Definition: storport.h:9315
FORCEINLINE ULONG StorPortSetEvent(_In_ PVOID HwDeviceExtension, _In_ PSTOR_EVENT Event, _Out_opt_ PLONG PreviousState)
Definition: storport.h:9100
enum _STOR_EVENT_TYPE STOR_EVENT_TYPE
struct _STOR_EXT_DELETE_PARAMETERS * PSTOR_EXT_DELETE_PARAMETERS
struct _STOR_POFX_DEVICE_V2 * PSTOR_POFX_DEVICE_V2
union _TWO_BYTE * PTWO_BYTE
struct _STOR_REQUEST_INFO_V1 STOR_REQUEST_INFO_V1
struct _STOR_EVENT * PSTOR_EVENT
struct _SUPPORTED_SECURITY_PROTOCOLS_PARAMETER_DATA * PSUPPORTED_SECURITY_PROTOCOLS_PARAMETER_DATA
struct _STOR_POFX_FSTATE_CONTEXT STOR_POFX_FSTATE_CONTEXT
union _FOUR_BYTE * PFOUR_BYTE
struct _VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE VPD_ZONED_BLOCK_DEVICE_CHARACTERISTICS_PAGE
STORPORT_API BOOLEAN NTAPI StorPortRegistryRead(_In_ PVOID HwDeviceExtension, _In_ PUCHAR ValueName, _In_ ULONG Global, _In_ ULONG Type, _In_ PUCHAR Buffer, _In_ PULONG BufferLength)
Definition: storport.c:1816
SCSI_UNIT_CONTROL_STATUS(NTAPI * PHW_UNIT_CONTROL)(_In_ PVOID DeviceExtension, _In_ SCSI_UNIT_CONTROL_TYPE ControlType, _In_ PVOID Parameters)
Definition: storport.h:7069
* PSTORAGE_REQUEST_BLOCK
Definition: storport.h:2262
FORCEINLINE BOOLEAN StorPortEnablePassiveInitialization(_In_ PVOID DeviceExtension, _In_ PHW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine)
Definition: storport.h:7889
STORPORT_API ULONG NTAPI StorPortReadPortUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port)
Definition: stubs.c:71
SRBEX_DATA_NVME_COMMAND_TYPE
Definition: storport.h:2340
@ SRBEX_DATA_NVME_COMMAND_TYPE_FABRICS
Definition: storport.h:2343
@ SRBEX_DATA_NVME_COMMAND_TYPE_NVM
Definition: storport.h:2341
@ SRBEX_DATA_NVME_COMMAND_TYPE_ADMIN
Definition: storport.h:2342
struct _MODE_DISCONNECT_PAGE * PMODE_DISCONNECT_PAGE
STORAGE_CRYPTO_KEY_SIZE * PSTOR_CRYPTO_KEY_SIZE
Definition: storport.h:6860
FORCEINLINE ULONG StorPortFreeMdl(_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl)
Definition: storport.h:8011
struct _MODE_PARAMETER_HEADER10 * PMODE_PARAMETER_HEADER10
struct _PHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR PHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR
#define STORPORT_LIVEDUMP_BUCKET_ID_LENGTH
Definition: storport.h:6507
struct _MODE_PAGE_SUBPAGE_HEADER MODE_PAGE_SUBPAGE_HEADER
struct _STOR_ADAPTER_CONTROL_POWER * PSTOR_ADAPTER_CONTROL_POWER
enum _SRBEXDATATYPE * PSRBEXDATATYPE
STORPORT_API BOOLEAN NTAPI StorPortPauseDevice(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG TimeOut)
Definition: storport.c:1763
_RAID_SYSTEM_POWER
Definition: storport.h:5984
@ RaidSystemPowerHigh
Definition: storport.h:5989
@ RaidSystemPowerMedium
Definition: storport.h:5988
@ RaidSystemPowerUnknown
Definition: storport.h:5985
@ RaidSystemPowerLowest
Definition: storport.h:5986
@ RaidSystemPowerLow
Definition: storport.h:5987
enum _INTERNAL_DATA_SCOPE * PINTERNAL_DATA_SCOPE
FORCEINLINE ULONG StorPortInterlockedFlushSList(_In_ PVOID HwDeviceExtension, _In_ PSLIST_HEADER SListHead, _Out_ PSLIST_ENTRY *Result)
Definition: storport.h:8406
STORPORT_API VOID NTAPI StorPortWritePortUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ UCHAR Value)
Definition: stubs.c:204
#define FREE_DUMP_INFO_SIGNATURE
Definition: storport.h:6602
#define EVENT_MAX_PARAM_NAME_LEN
Definition: storport.h:6439
struct _TRACK_INFORMATION3 TRACK_INFORMATION3
struct RS_ALL_COMMANDS_PARAMETER_DATA * PRS_ALL_COMMANDS_PARAMETER_DATA
_STOR_RPMB_FRAME_TYPE
Definition: storport.h:6548
@ StorRpmbFrameTypeMax
Definition: storport.h:6551
@ StorRpmbFrameTypeUnknown
Definition: storport.h:6549
@ StorRpmbFrameTypeStandard
Definition: storport.h:6550
FORCEINLINE ULONG StorPortAllocateHostMemoryBuffer(_In_ PVOID HwDeviceExtension, _In_ SIZE_T MinimumBytes, _In_ SIZE_T PreferredBytes, _In_ ULONGLONG UtilizationBytes, _In_ ULONG AlignmentBytes, _In_ PHYSICAL_ADDRESS LowestAcceptableAddress, _In_ PHYSICAL_ADDRESS HighestAcceptableAddress, _In_opt_ PHYSICAL_ADDRESS BoundaryAddressMultiple, _Out_ PACCESS_RANGE PhysicalAddressRanges, _Inout_ PULONG PhysicalAddressRangeCount)
Definition: storport.h:8863
struct _STORPORT_EXTENDED_FUNCTIONS * PSTORPORT_EXTENDED_FUNCTIONS
struct _PRI_REGISTRATION_LIST PRI_REGISTRATION_LIST
struct SRB_ALIGN _SRBEX_DATA_MINIPORT_PASSTHROUGH SRBEX_DATA_MINIPORT_PASSTHROUGH
struct _STOR_POFX_DEVICE STOR_POFX_DEVICE
struct _VPD_BLOCK_LIMITS_PAGE VPD_BLOCK_LIMITS_PAGE
struct _STOR_UNICODE_STRING STOR_UNICODE_STRING
enum _OPERATION_STATUS OPERATION_STATUS
VOID(NTAPI * PpostScaterGatherExecute)(_In_ PVOID *DeviceObject, _In_ PVOID *Irp, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGather, _In_ PVOID Context)
Definition: storport.h:7170
#define EVENT_BUFFER_MAX_LENGTH
Definition: storport.h:6437
#define SRB_ALIGN
Definition: storport.h:1994
struct _AUDIO_OUTPUT AUDIO_OUTPUT
BOOLEAN(NTAPI * PHW_ADAPTER_STATE)(IN PVOID DeviceExtension, IN PVOID Context, IN BOOLEAN SaveState)
Definition: storport.h:7034
struct _STOR_POFX_PERF_STATE STOR_POFX_PERF_STATE
FORCEINLINE ULONG StorPortPoFxSetComponentLatency(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG Component, _In_ ULONGLONG Latency)
Definition: storport.h:8649
struct _ERROR_HISTORY_DIRECTORY_ENTRY * PERROR_HISTORY_DIRECTORY_ENTRY
struct _SUPPORTED_SECURITY_PROTOCOLS_PARAMETER_DATA SUPPORTED_SECURITY_PROTOCOLS_PARAMETER_DATA
enum _STOR_CRYPTO_OPERATION_TYPE * PSTOR_CRYPTO_OPERATION_TYPE
struct _VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE
_STOR_CRYPTO_OPERATION_TYPE
Definition: storport.h:6149
@ StorCryptoOperationInsertKey
Definition: storport.h:6150
@ StorCryptoOperationMax
Definition: storport.h:6151
FORCEINLINE ULONG StorPortInitializeCryptoEngine(_In_ PVOID HwDeviceExtension, _In_ PSTOR_CRYPTO_CAPABILITIES_DATA CryptoCapabilities)
Definition: storport.h:9466
struct RECEIVE_TOKEN_INFORMATION_HEADER * PRECEIVE_TOKEN_INFORMATION_HEADER
FORCEINLINE ULONG StorPortBuildScatterGatherList(_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ PpostScaterGatherExecute ExecutionRoutine, _In_ PVOID Context, _In_ BOOLEAN WriteToDevice, _Inout_ PVOID ScatterGatherBuffer, _In_ ULONG ScatterGatherBufferLength)
Definition: storport.h:8085
struct _SCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN * PSCSI_SENSE_DESCRIPTOR_ATA_STATUS_RETURN
STORPORT_API PUCHAR NTAPI StorPortAllocateRegistryBuffer(_In_ PVOID HwDeviceExtension, _In_ PULONG Length)
Definition: storport.c:544
FORCEINLINE ULONG StorPortCreateSystemThread(_In_ PVOID HwDeviceExtension, _In_ PVOID ThreadStartRoutine, _In_opt_ PVOID StartContext, _Out_ PVOID *ThreadHandle)
Definition: storport.h:9179
STOR_SYNCHRONIZED_ACCESS * PSTOR_SYNCHRONIZED_ACCESS
Definition: storport.h:7166
enum _STOR_SPINLOCK STOR_SPINLOCK
struct _CDAUDIO_CONTROL_PAGE * PCDAUDIO_CONTROL_PAGE
struct _NOTIFICATION_EVENT_STATUS_HEADER * PNOTIFICATION_EVENT_STATUS_HEADER
struct _MODE_CACHING_PAGE_EX MODE_CACHING_PAGE_EX
STORPORT_API VOID NTAPI StorPortReadPortBufferUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ PUCHAR Buffer, _In_ ULONG Count)
Definition: stubs.c:21
STORPORT_API BOOLEAN NTAPI StorPortReady(_In_ PVOID HwDeviceExtension)
Definition: storport.c:1801
struct SRB_ALIGN _SRBEX_DATA * PSRBEX_DATA
struct _POWER_CONDITION_PAGE POWER_CONDITION_PAGE
struct _STOR_POFX_DEVICE_V2 STOR_POFX_DEVICE_V2
BOOLEAN(NTAPI * PHW_RESET_BUS)(IN PVOID DeviceExtension, IN ULONG PathId)
Definition: storport.h:7028
struct _WINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR * PWINDOWS_BLOCK_DEVICE_TOKEN_LIMITS_DESCRIPTOR
struct _SENSE_DATA SENSE_DATA
struct _READ_DVD_STRUCTURES_HEADER READ_DVD_STRUCTURES_HEADER
struct PRI_FULL_STATUS_LIST_HEADER * PPRI_FULL_STATUS_LIST_HEADER
enum _SCSI_UC_DEVICE_USAGE_TYPE SCSI_UC_DEVICE_USAGE_TYPE
struct _LOG_PARAMETER_HEADER * PLOG_PARAMETER_HEADER
enum _STORPORT_ETW_LEVEL STORPORT_ETW_LEVEL
enum _STOR_IO_PRIORITY_HINT * PSTOR_IO_PRIORITY_HINT
struct _MODE_INFO_EXCEPTIONS MODE_INFO_EXCEPTIONS
struct _CDVD_INACTIVITY_TIMEOUT_PAGE CDVD_INACTIVITY_TIMEOUT_PAGE
STORPORT_API ULONG64 NTAPI StorPortConvertPhysicalAddressToUlong64(_In_ STOR_PHYSICAL_ADDRESS Address)
enum _STORPORT_FEATURE_TYPE STORPORT_FEATURE_TYPE
FORCEINLINE ULONG StorPortPoFxSetPerfState(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG ComponentIndex, _In_ ULONG PerfSetIndex, _In_ ULONGLONG Value, _In_opt_ PVOID Context)
Definition: storport.h:9447
struct _STOR_SET_EVENT_LOGGING * PSTOR_SET_EVENT_LOGGING
struct _STOR_SCATTER_GATHER_LIST * PSTOR_SCATTER_GATHER_LIST
STORPORT_API ULONG StorPortExtendedFunction(_In_ STORPORT_FUNCTION_CODE FunctionCode, _In_ PVOID HwDeviceExtension,...)
Definition: storport.c:714
_STOR_TELEMETRY_CATEGORY
Definition: storport.h:6432
@ StorMeasuresCategory
Definition: storport.h:6434
@ StorTelemetryCategory
Definition: storport.h:6433
struct _NVME_SUPPORTED_CONTROL_TYPE_LIST * PNVME_SUPPORTED_CONTROL_TYPE_LIST
struct SRB_ALIGN _SRBEX_DATA_PNP SRBEX_DATA_PNP
struct _TRACK_INFORMATION TRACK_INFORMATION
struct _READ_CAPACITY_DATA_EX * PREAD_CAPACITY_DATA_EX
FORCEINLINE ULONG StorPortLogSystemEvent(_In_ PVOID HwDeviceExtension, _Inout_ PSTOR_LOG_EVENT_DETAILS LogDetails, _Inout_ PULONG MaximumSize)
Definition: storport.h:8188
struct _LBA_STATUS_DESCRIPTOR * PLBA_STATUS_DESCRIPTOR
struct _CDVD_REPORT_AGID_DATA * PCDVD_REPORT_AGID_DATA
BOOLEAN(NTAPI * PHW_INITIALIZE)(_In_ PVOID DeviceExtension)
Definition: storport.h:6986
struct _NOTIFICATION_BUSY_STATUS NOTIFICATION_BUSY_STATUS
struct _STOR_SET_EVENT_LOGGING STOR_SET_EVENT_LOGGING
struct _PERFORMANCE_DESCRIPTOR * PPERFORMANCE_DESCRIPTOR
STORPORT_API VOID NTAPI StorPortWritePortBufferUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ PUCHAR Buffer, _In_ ULONG Count)
Definition: stubs.c:165
#define STOR_SERIAL_NUMBER_MAX_SIZE
Definition: storport.h:6039
#define GET_DUMP_INFO_VERSION_1
Definition: storport.h:6582
struct _MINIPORT_DUMP_POINTERS MINIPORT_DUMP_POINTERS
struct _STORPORT_LIVEDUMP_DEVICE_TELEMETRY_LOG STORPORT_LIVEDUMP_DEVICE_TELEMETRY_LOG
struct _REPORT_ZONES_DATA REPORT_ZONES_DATA
struct PRI_REPORT_CAPABILITIES * PPRI_REPORT_CAPABILITIES
enum _SCSI_UNIT_CONTROL_TYPE SCSI_UNIT_CONTROL_TYPE
FORCEINLINE ULONG StorPortDelayExecution(_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ LONGLONG Delay)
Definition: storport.h:8804
struct _NOTIFICATION_MEDIA_STATUS * PNOTIFICATION_MEDIA_STATUS
struct _MESSAGE_INTERRUPT_INFORMATION * PMESSAGE_INTERRUPT_INFORMATION
struct _SCSI_REQUEST_BLOCK * PSCSI_REQUEST_BLOCK
struct _FORMAT_LIST_HEADER FORMAT_LIST_HEADER
STORPORT_API VOID NTAPI StorPortCompleteRequest(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ UCHAR SrbStatus)
Definition: storport.c:576
struct SRB_ALIGN _SRBEX_DATA_WMI SRBEX_DATA_WMI
struct _MODE_PARM_READ_WRITE MODE_PARM_READ_WRITE_DATA
enum _SCSI_UNIT_CONTROL_STATUS * PSCSI_UNIT_CONTROL_STATUS
struct _STOR_FRU_ID_DESCRIPTION * PSTOR_FRU_ID_DESCRIPTION
struct _STOR_POFX_COMPONENT_IDLE_STATE * PSTOR_POFX_COMPONENT_IDLE_STATE
STORPORT_API ULONG NTAPI StorPortSetBusDataByOffset(_In_ PVOID DeviceExtension, _In_ ULONG BusDataType, _In_ ULONG SystemIoBusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: storport.c:1889
STORPORT_API PVOID NTAPI StorPortGetDeviceBase(_In_ PVOID HwDeviceExtension, _In_ INTERFACE_TYPE BusType, _In_ ULONG SystemIoBusNumber, _In_ STOR_PHYSICAL_ADDRESS IoAddress, _In_ ULONG NumberOfBytes, _In_ BOOLEAN InIoSpace)
Definition: storport.c:1101
VOID(NTAPI * PHW_DPC_ROUTINE)(_In_ PSTOR_DPC Dpc, _In_ PVOID HwDeviceExtension, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
Definition: storport.h:7053
struct _STOR_SERIAL_NUMBER * PSTOR_SERIAL_NUMBER
FORCEINLINE ULONG StorPortSetPriorityThread(_In_ PVOID HwDeviceExtension, _In_ PVOID ThreadHandle, _In_ STOR_THREAD_PRIORITY Priority, _Out_opt_ PSTOR_THREAD_PRIORITY OldPriority)
Definition: storport.h:9194
struct _TRACK_INFORMATION2 TRACK_INFORMATION2
struct _STOR_LOCK_HANDLE * PSTOR_LOCK_HANDLE
struct _MINIPORT_MAPPINGS MINIPORT_MAPPINGS
struct _MESSAGE_INTERRUPT_INFORMATION MESSAGE_INTERRUPT_INFORMATION
STORPORT_API VOID NTAPI StorPortQuerySystemTime(_Out_ PLARGE_INTEGER CurrentTime)
struct _STOR_EXT_SET_PARAMETERS STOR_EXT_SET_PARAMETERS
struct _CDVD_CAPABILITIES_PAGE * PCDVD_CAPABILITIES_PAGE
FORCEINLINE ULONG StorPortDeviceOperationAllowed(_In_ PVOID HwDeviceExtension, _In_ PSTOR_ADDRESS Address, _In_ LPCGUID DeviceOperation, _Inout_ PULONG AllowedFlag)
Definition: storport.h:8726
_STOR_THREAD_PRIORITY
Definition: storport.h:6365
@ StorThreadPriorityDelayed
Definition: storport.h:6368
@ StorThreadPrioritySuperCritical
Definition: storport.h:6370
@ StorThreadPriorityNormal
Definition: storport.h:6367
@ StorThreadPriorityCritical
Definition: storport.h:6369
@ StorThreadPriorityBackground
Definition: storport.h:6366
@ StorThreadPriorityRealTime
Definition: storport.h:6372
@ StorThreadPriorityHyperCritical
Definition: storport.h:6371
struct _CDVD_CHALLENGE_KEY_DATA * PCDVD_CHALLENGE_KEY_DATA
struct STOR_ADDRESS_ALIGN _STOR_ADDR_BTL8 STOR_ADDR_BTL8
struct _STOR_DISPATCHER_HEADER STOR_DISPATCHER_HEADER
STORPORT_API USHORT NTAPI StorPortReadPortUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port)
Definition: stubs.c:82
struct _SENSE_DATA * PFIXED_SENSE_DATA
Definition: storport.h:3722
SRBEX_DATA_NVME_RESPONSE_FLAG
Definition: storport.h:2358
@ SRBEX_DATA_NVME_RESPONSE_FLAG_SQHD_VALID
Definition: storport.h:2359
enum _STORPORT_CAPTURE_LIVEDUMP_TYPE STORPORT_CAPTURE_LIVEDUMP_TYPE
struct _MINIPORT_DUMP_INFO MINIPORT_DUMP_INFO
struct PRI_FULL_STATUS_DESCRIPTOR_HEADER * PPRI_FULL_STATUS_DESCRIPTOR_HEADER
struct _VPD_MEDIA_SERIAL_NUMBER_PAGE * PVPD_MEDIA_SERIAL_NUMBER_PAGE
struct _STOR_POFX_ACTIVE_CONTEXT * PSTOR_POFX_ACTIVE_CONTEXT
struct _SCSI_SENSE_DESCRIPTOR_INFORMATION * PSCSI_SENSE_DESCRIPTOR_INFORMATION
_STOR_POFX_PERF_STATE_UNIT
Definition: storport.h:6702
@ StorPoFxPerfStateUnitMilliwatts
Definition: storport.h:6706
@ StorPoFxPerfStateUnitBandwidth
Definition: storport.h:6705
@ StorPoFxPerfStateUnitFrequency
Definition: storport.h:6704
@ StorPoFxPerfStateUnitOther
Definition: storport.h:6703
@ StorPoFxPerfStateUnitMaximum
Definition: storport.h:6707
struct _STOR_LOG_EVENT_DETAILS STOR_LOG_EVENT_DETAILS
FORCEINLINE ULONG StorPortInitializeSpinLock(_In_ PVOID HwDeviceExtension, _In_ PSTOR_KSPIN_LOCK SpinLock)
Definition: storport.h:8972
enum _STOR_DMA_WIDTH STOR_DMA_WIDTH
enum _TRANSFER_COUNT_UNITS * PTRANSFER_COUNT_UNITS
struct _STOR_POFX_COMPONENT * PSTOR_POFX_COMPONENT
struct _T2_COMMAND_DURATION_LIMIT_DESCRIPTOR * PT2_COMMAND_DURATION_LIMIT_DESCRIPTOR
_SCSI_UNIT_CONTROL_TYPE
Definition: storport.h:1567
@ ScsiUnitUsage
Definition: storport.h:1569
@ ScsiUnitPoFxPowerSetFState
Definition: storport.h:1575
@ ScsiUnitPower
Definition: storport.h:1571
@ ScsiUnitRichDescription
Definition: storport.h:1579
@ ScsiUnitStart
Definition: storport.h:1570
@ ScsiQuerySupportedUnitControlTypes
Definition: storport.h:1568
@ ScsiUnitPoFxPowerRequired
Definition: storport.h:1573
@ MakeUnitControlTypeSizeOfUlong
Definition: storport.h:1586
@ ScsiUnitPoFxPowerActive
Definition: storport.h:1574
@ ScsiUnitPoFxPowerInfo
Definition: storport.h:1572
@ ScsiUnitKsrPowerDown
Definition: storport.h:1583
@ ScsiUnitPoFxPowerControl
Definition: storport.h:1576
@ ScsiUnitSurpriseRemoval
Definition: storport.h:1578
@ ScsiUnitRemove
Definition: storport.h:1577
@ ScsiUnitQueryFruId
Definition: storport.h:1581
@ ScsiUnitReportInternalData
Definition: storport.h:1582
@ ScsiUnitControlMax
Definition: storport.h:1585
@ ScsiUnitQueryBusType
Definition: storport.h:1580
@ ScsiUnitNvmeIceInformation
Definition: storport.h:1584
struct _PORT_CONFIGURATION_INFORMATION PORT_CONFIGURATION_INFORMATION
struct _STOR_DISPATCHER_HEADER * PSTOR_DISPATCHER_HEADER
_STOR_IMPORTANCE
Definition: storport.h:6204
@ StorMediumHighImportance
Definition: storport.h:6208
@ StorMediumImportance
Definition: storport.h:6206
@ StorLowImportance
Definition: storport.h:6205
@ StorHighImportance
Definition: storport.h:6207
enum _NVME_NAMESPACE_CONTROL_STATUS NVME_NAMESPACE_CONTROL_STATUS
struct _STOR_MAX_OPERATIONAL_POWER STOR_MAX_OPERATIONAL_POWER
@ OPERATION_IN_PROGRESS_IN_FOREGROUND
Definition: storport.h:5529
@ OPERATION_IN_PROGRESS_IN_BACKGROUND
Definition: storport.h:5530
@ OPERATION_COMPLETED_WITH_SUCCESS
Definition: storport.h:5526
@ OPERATION_COMPLETED_WITH_ERROR
Definition: storport.h:5527
@ OPERATION_COMPLETED_WITH_RESIDUAL_DATA
Definition: storport.h:5528
@ OPERATION_TERMINATED
Definition: storport.h:5531
STORPORT_API BOOLEAN NTAPI StorPortDeviceReady(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
Definition: storport.c:683
struct _FORMAT_DESCRIPTOR FORMAT_DESCRIPTOR
#define STOR_ADDRESS_ALIGN
Definition: storport.h:1995
enum _STOR_POWER_ACTION * PSTOR_POWER_ACTION
struct _STOR_GROUP_AFFINITY * PSTOR_GROUP_AFFINITY
struct _MODE_FORMAT_PAGE MODE_FORMAT_PAGE
struct _STOR_POFX_PERF_STATE_CONTEXT * PSTOR_POFX_PERF_STATE_CONTEXT
enum _STOR_TELEMETRY_CATEGORY * PSTOR_TELEMETRY_CATEGORY
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:106
struct SRB_ALIGN _SRBEX_DATA_IO_INFO * PSRBEX_DATA_IO_INFO
struct _STOR_CRYPTO_OPERATION_INSERT_KEY STOR_CRYPTO_OPERATION_INSERT_KEY
struct _STOR_SYSTEM_POWER_HINTS * PSTOR_SYSTEM_POWER_HINTS
STORPORT_API BOOLEAN NTAPI StorPortPause(_In_ PVOID HwDeviceExtension, _In_ ULONG TimeOut)
Definition: storport.c:1747
struct _STOR_DEVICE_CAPABILITIES_EX STOR_DEVICE_CAPABILITIES_EX
FORCEINLINE ULONG StorPortGetRequestInfo(_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _Out_ PSTOR_REQUEST_INFO RequestInfo)
Definition: storport.h:8484
FORCEINLINE ULONG StorPortPoFxActivateComponent(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ ULONG Component, _In_ ULONG Flags)
Definition: storport.h:8615
enum _STOR_POWER_ACTION STOR_POWER_ACTION
struct _STOR_CRYPTO_KEY_INFO * PSTOR_CRYPTO_KEY_INFO
enum _STORPORT_LIVEDUMP_DATA_TYPE * PSTORPORT_LIVEDUMP_DATA_TYPE
struct _TAPE_POSITION_DATA TAPE_POSITION_DATA
#define SRBEX_DATA_NVMEOF_OPERATION_LENGTH
Definition: storport.h:2455
FORCEINLINE ULONG StorPortFreeDmaMemory(_In_ PVOID HwDeviceExtension, _In_ PVOID BaseAddress, _In_ SIZE_T NumberOfBytes, _In_ MEMORY_CACHING_TYPE CacheType, _In_ PHYSICAL_ADDRESS PhysicalAddress)
Definition: storport.h:8842
enum _STOR_IO_PRIORITY_HINT STOR_IO_PRIORITY_HINT
STORPORT_API PVOID NTAPI StorPortGetVirtualAddress(_In_ PVOID HwDeviceExtension, _In_ STOR_PHYSICAL_ADDRESS PhysicalAddress)
Definition: storport.c:1384
FORCEINLINE ULONG StorPortGetDataInBufferMdl(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *Mdl)
Definition: storport.h:8510
FORCEINLINE ULONG StorPortGetOriginalMdl(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *Mdl)
Definition: storport.h:8046
struct _MECHANICAL_STATUS MECHANICAL_STATUS
STORPORT_API VOID NTAPI StorPortWritePortBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:178
struct _STOR_CRYPTO_OPERATION * PSTOR_CRYPTO_OPERATION
ULONG(NTAPI * PVIRTUAL_HW_FIND_ADAPTER)(_In_ PVOID DeviceExtension, _In_ PVOID HwContext, _In_ PVOID BusInformation, _In_ PVOID LowerDevice, _In_ PCHAR ArgumentString, _Inout_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _In_ PBOOLEAN Again)
Definition: storport.h:7123
struct SRB_ALIGN _SRBEX_DATA_POWER SRBEX_DATA_POWER
STORPORT_API VOID NTAPI StorPortWriteRegisterUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ UCHAR Value)
Definition: stubs.c:279
FORCEINLINE ULONG StorPortInitializeWorker(_In_ PVOID HwDeviceExtension, _Out_ PVOID *Worker)
Definition: storport.h:8316
#define STOR_ADDR_NVME_ADDRESS_LENGTH
Definition: storport.h:2306
struct _SCSI_WMI_REQUEST_BLOCK * PSCSI_WMI_REQUEST_BLOCK
struct _READ_CAPACITY16_DATA READ_CAPACITY16_DATA
struct _STOR_EXT_DELETE_PARAMETERS STOR_EXT_DELETE_PARAMETERS
STORPORT_API PSCSI_REQUEST_BLOCK NTAPI StorPortGetSrb(_In_ PVOID DeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ LONG QueueTag)
Definition: storport.c:1289
FORCEINLINE ULONG StorPortMaskPciMsixEntry(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _In_ BOOLEAN Mask)
Definition: storport.h:9365
struct _CDVD_TITLE_KEY_HEADER * PCDVD_TITLE_KEY_HEADER
#define STOR_NVMEOF_OPERATION_V1
Definition: storport.h:2454
struct _LOG_PARAMETER LOG_PARAMETER
SCSI_ADAPTER_CONTROL_STATUS(NTAPI * PHW_ADAPTER_CONTROL)(IN PVOID DeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters)
Definition: storport.h:7041
enum _STORPORT_CAPTURE_LIVEDUMP_TYPE * PSTORPORT_CAPTURE_LIVEDUMP_TYPE
struct _PRI_RESERVATION_DESCRIPTOR * PPRI_RESERVATION_DESCRIPTOR
@ VpdIdentifierTypeSCSINameString
Definition: storport.h:1693
@ VpdIdentifierTypeVendorId
Definition: storport.h:1686
@ VpdIdentifierTypeMD5LogicalUnitId
Definition: storport.h:1692
@ VpdIdentifierTypeTargetPortGroup
Definition: storport.h:1690
@ VpdIdentifierTypeLogicalUnitGroup
Definition: storport.h:1691
@ VpdIdentifierTypeFCPHName
Definition: storport.h:1688
@ VpdIdentifierTypePortRelative
Definition: storport.h:1689
@ VpdIdentifierTypeEUI64
Definition: storport.h:1687
@ VpdIdentifierTypeVendorSpecific
Definition: storport.h:1685
FORCEINLINE ULONG StorPortInvokeAcpiMethod(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG MethodName, _In_opt_ PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_opt_ PVOID OutputBuffer, _In_ ULONG OutputBufferLength, _Out_opt_ PULONG BytesReturned)
Definition: storport.h:8577
STORPORT_API USHORT NTAPI StorPortReadRegisterUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register)
Definition: stubs.c:154
enum _STORAGE_CRYPTO_KEY_SIZE STORAGE_CRYPTO_KEY_SIZE
STORPORT_API VOID NTAPI StorPortStallExecution(_In_ ULONG Delay)
Definition: storport.c:1969
struct _NOTIFICATION_BUSY_STATUS * PNOTIFICATION_BUSY_STATUS
VOID(NTAPI * PSTOR_EXT_DELETE_CALLBACK)(_In_opt_ PVOID Context)
Definition: storport.h:6221
static const GUID STORPORT_POFX_ADAPTER_GUID
Definition: storport.h:6978
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ PUSHORT Buffer, _In_ ULONG Count)
Definition: stubs.c:119
enum _VPD_ASSOCIATION * PVPD_ASSOCIATION
struct _STOR_UNIT_NVME_ICE_INFORMATION STOR_UNIT_NVME_ICE_INFORMATION
BOOLEAN(NTAPI * PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE)(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId)
Definition: storport.h:5566
enum _STOR_RPMB_FRAME_TYPE STOR_RPMB_FRAME_TYPE
FORCEINLINE ULONG StorPortPutScatterGatherList(_In_ PVOID HwDeviceExtension, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList, _In_ BOOLEAN WriteToDevice)
Definition: storport.h:8110
struct _REPORT_ZONES_DATA * PREPORT_ZONES_DATA
enum _NVME_NAMESPACE_CONTROL_STATUS * PNVME_NAMESPACE_CONTROL_STATUS
struct _STOR_SYSTEM_POWER_HINTS STOR_SYSTEM_POWER_HINTS
VOID(NTAPI * PHW_INITIALIZE_TRACING)(_In_ PVOID Arg1, _In_ PVOID Arg2)
Definition: storport.h:7150
struct _MODE_CACHING_PAGE_EX * PMODE_CACHING_PAGE_EX
STORPORT_API BOOLEAN NTAPI StorPortResume(_In_ PVOID HwDeviceExtension)
Definition: storport.c:1856
struct _STOR_POFX_DEVICE_V3 * PSTOR_POFX_DEVICE_V3
struct _STOR_CRYPTO_OPERATION_INSERT_KEY * PSTOR_CRYPTO_OPERATION_INSERT_KEY
FORCEINLINE ULONG StorPortGetCurrentProcessorIndex(_In_ PVOID HwDeviceExtension, _Out_ PULONG ProcessorIndex)
Definition: storport.h:9168
struct _SCSI_EXTENDED_MESSAGE SCSI_EXTENDED_MESSAGE
enum _TRANSFER_COUNT_UNITS TRANSFER_COUNT_UNITS
FORCEINLINE ULONG StorPortSetUnitAttributes(_In_ PVOID HwDeviceExtension, _In_ PSTOR_ADDRESS Address, _In_ STOR_UNIT_ATTRIBUTES Attributes)
Definition: storport.h:8471
struct _MODE_READ_WRITE_RECOVERY_PAGE MODE_READ_WRITE_RECOVERY_PAGE
struct SRB_ALIGN _SRBEX_DATA_NVMEOF_OPERATION * PSRBEX_DATA_NVMEOF_OPERATION
struct _STOR_REQUEST_INFO_V1 * PSTOR_REQUEST_INFO_V1
@ SrbExDataTypeMSReservedStart
Definition: storport.h:2041
@ SrbExDataTypeReserved
Definition: storport.h:2042
@ SrbExDataTypeMiniportPassthrough
Definition: storport.h:2035
@ SrbExDataTypeNvmeofOperation
Definition: storport.h:2034
@ SrbExDataTypeWmi
Definition: storport.h:2036
@ SrbExDataTypeNvmeCommand
Definition: storport.h:2033
@ SrbExDataTypeScsiCdb32
Definition: storport.h:2031
@ SrbExDataTypeBidirectional
Definition: storport.h:2029
@ SrbExDataTypeScsiCdb16
Definition: storport.h:2030
@ SrbExDataTypePower
Definition: storport.h:2037
@ SrbExDataTypeScsiCdbVar
Definition: storport.h:2032
@ SrbExDataTypePnP
Definition: storport.h:2038
@ SrbExDataTypeUnknown
Definition: storport.h:2028
@ SrbExDataTypePassthroughDirect
Definition: storport.h:2040
@ SrbExDataTypeIoInfo
Definition: storport.h:2039
struct _UNMAP_BLOCK_DESCRIPTOR * PUNMAP_BLOCK_DESCRIPTOR
struct PRI_FULL_STATUS_DESCRIPTOR * PPRI_FULL_STATUS_DESCRIPTOR
#define MINIPORT_DUMP_INFO_SIGNATURE
Definition: storport.h:6567
struct RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER * PRECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ PUSHORT Buffer, _In_ ULONG Count)
Definition: stubs.c:266
struct _OVERWRITE_PARAMETER_LIST * POVERWRITE_PARAMETER_LIST
enum _STORPORT_ETW_EVENT_CHANNEL STORPORT_ETW_EVENT_CHANNEL
enum SRBEX_DATA_NVME_COMMAND_TYPE * PSRBEX_DATA_NVME_COMMAND_TYPE
struct _STOR_RPMB_CAPABILITIES_DATA STOR_RPMB_CAPABILITIES_DATA
union _STOR_SLIST_HEADER * PSTOR_SLIST_HEADER
_STORPORT_ETW_LEVEL
Definition: storport.h:5859
@ StorportEtwLevelVerbose
Definition: storport.h:5865
@ StorportEtwLevelLogAlways
Definition: storport.h:5860
@ StorportEtwLevelMax
Definition: storport.h:5866
@ StorportEtwLevelCritical
Definition: storport.h:5861
@ StorportEtwLevelError
Definition: storport.h:5862
@ StorportEtwLevelInformational
Definition: storport.h:5864
@ StorportEtwLevelWarning
Definition: storport.h:5863
struct _INQUIRYDATA INQUIRYDATA
struct SRB_ALIGN _SRBEX_DATA_BIDIRECTIONAL SRBEX_DATA_BIDIRECTIONAL
enum _INTERRUPT_SYNCHRONIZATION_MODE INTERRUPT_SYNCHRONIZATION_MODE
enum _NVME_ADAPTER_CONTROL_TYPE NVME_ADAPTER_CONTROL_TYPE
struct _PRO_PARAMETER_LIST PRO_PARAMETER_LIST
struct _MODE_CONTROL_PAGE MODE_CONTROL_PAGE
enum _SCSI_ADAPTER_CONTROL_TYPE * PSCSI_ADAPTER_CONTROL_TYPE
STOR_REQUEST_INFO_V2 STOR_REQUEST_INFO
Definition: storport.h:5847
enum _STOR_POFX_PERF_STATE_UNIT * PSTOR_POFX_PERF_STATE_UNIT
FORCEINLINE ULONG StorPortInitializeTimer(_In_ PVOID HwDeviceExtension, _Out_ PVOID *TimerHandle)
Definition: storport.h:8353
struct _READ_CAPACITY16_DATA * PREAD_CAPACITY16_DATA
struct _PERF_CONFIGURATION_DATA * PPERF_CONFIGURATION_DATA
enum _STORPORT_QUERY_CONFIGURATION_TYPE * PSTORPORT_QUERY_CONFIGURATION_TYPE
PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS
Definition: storport.h:5548
FORCEINLINE ULONG StorPortAllocateContiguousMemorySpecifyCacheNode(_In_ PVOID HwDeviceExtension, _In_ SIZE_T NumberOfBytes, _In_ PHYSICAL_ADDRESS LowestAcceptableAddress, _In_ PHYSICAL_ADDRESS HighestAcceptableAddress, _In_opt_ PHYSICAL_ADDRESS BoundaryAddressMultiple, _In_ MEMORY_CACHING_TYPE CacheType, _In_ NODE_REQUIREMENT PreferredNode, _Out_ PVOID *BufferPointer)
Definition: storport.h:8274
enum _OPERATION_STATUS * POPERATION_STATUS
FORCEINLINE ULONG StorPortInterlockedRemoveHeadList(_In_ PVOID HwDeviceExtension, _In_ PSTOR_LIST_ENTRY ListHead, _In_ PSTOR_KSPIN_LOCK Lock, _Out_ PSTOR_LIST_ENTRY *Result)
Definition: storport.h:9013
struct _STOR_RICH_DEVICE_DESCRIPTION * PSTOR_RICH_DEVICE_DESCRIPTION
enum _STORPORT_FUNCTION_CODE * PSTORPORT_FUNCTION_CODE
struct _STOR_DPC_WATCHDOG_INFORMATION * PSTOR_DPC_WATCHDOG_INFORMATION
union _CDB * PCDB
struct _MODE_PARAMETER_BLOCK * PMODE_PARAMETER_BLOCK
struct _MINIPORT_DUMP_POINTERS * PMINIPORT_DUMP_POINTERS
enum _VPD_CODE_SET * PVPD_CODE_SET
_In_ PVOID Context
Definition: storport.h:7164
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:253
struct _STOR_POFX_DEVICE * PSTOR_POFX_DEVICE
struct _STOR_LIST_ENTRY * PSTOR_LIST_ENTRY
struct _DISK_INFORMATION DISK_INFORMATION
enum SRBEX_DATA_NVME_COMMAND_FLAG * PSRBEX_DATA_NVME_COMMAND_FLAG
struct _OVERWRITE_PARAMETER_LIST OVERWRITE_PARAMETER_LIST
STORPORT_API VOID NTAPI StorPortFreeDeviceBase(_In_ PVOID HwDeviceExtension, _In_ PVOID MappedAddress)
Definition: storport.c:1030
struct _PRI_RESERVATION_DESCRIPTOR PRI_RESERVATION_DESCRIPTOR
struct _CDDA_OUTPUT_PORT * PCDDA_OUTPUT_PORT
STORPORT_API BOOLEAN NTAPI StorPortResumeDevice(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
Definition: storport.c:1871
enum _DATA_TYPE DATA_TYPE
struct _STOR_EXT_SET_PARAMETERS * PSTOR_EXT_SET_PARAMETERS
struct _NOTIFICATION_MULTI_HOST_STATUS * PNOTIFICATION_MULTI_HOST_STATUS
struct _STOR_POFX_DEVICE_V3 STOR_POFX_DEVICE_V3
struct _CDVD_KEY_DATA CDVD_KEY_DATA
_STORPORT_ETW_EVENT_CHANNEL
Definition: storport.h:5890
@ StorportEtwEventIoPerformance
Definition: storport.h:5894
@ StorportEtwEventDiagnostic
Definition: storport.h:5891
@ StorportEtwEventOperational
Definition: storport.h:5892
@ StorportEtwEventHealth
Definition: storport.h:5893
FORCEINLINE ULONG StorPortInitializeSListHead(_In_ PVOID HwDeviceExtension, _In_ PSLIST_HEADER SListHead)
Definition: storport.h:8395
@ InitializeDpc
Definition: storport.h:1617
@ AcquireSpinLock
Definition: storport.h:1619
@ ResetDetected
Definition: storport.h:1603
@ AsyncNotificationDetected
Definition: storport.h:1623
@ MarkDeviceFailedEx
Definition: storport.h:1629
@ _obsolete2
Definition: storport.h:1605
@ WMIEvent
Definition: storport.h:1608
@ InitializeDpcWithContext
Definition: storport.h:1625
@ QueryTickCount
Definition: storport.h:1612
@ _obsolete1
Definition: storport.h:1604
@ RequestTimerCall
Definition: storport.h:1606
@ IssueDpc
Definition: storport.h:1618
@ RequestComplete
Definition: storport.h:1600
@ ReleaseSpinLock
Definition: storport.h:1620
@ BufferOverrunDetected
Definition: storport.h:1613
@ WMIReregister
Definition: storport.h:1609
@ InitializeThreadedDpc
Definition: storport.h:1626
@ LinkUp
Definition: storport.h:1610
@ NextRequest
Definition: storport.h:1601
@ MarkDeviceFailed
Definition: storport.h:1628
@ BusChangeDetected
Definition: storport.h:1607
@ NextLuRequest
Definition: storport.h:1602
@ TraceNotification
Definition: storport.h:1614
@ RequestDirectComplete
Definition: storport.h:1624
@ StateChangeDetectedCall
Definition: storport.h:1621
@ LinkDown
Definition: storport.h:1611
@ SetTargetProcessorDpc
Definition: storport.h:1627
@ TerminateSystemThread
Definition: storport.h:1630
@ IoTargetRequestServiceTime
Definition: storport.h:1622
@ GetExtendedFunctionTable
Definition: storport.h:1615
@ EnablePassiveInitialization
Definition: storport.h:1616
struct _STOR_UC_DEVICE_USAGE * PSTOR_UC_DEVICE_USAGE
struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB16 * PSRBEX_DATA_SCSI_CDB16
enum _STORPORT_QUERY_CONFIGURATION_TYPE STORPORT_QUERY_CONFIGURATION_TYPE
FORCEINLINE ULONG StorPortAcquireMSISpinLock(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _In_ PULONG OldIrql)
Definition: storport.h:8123
enum _SCSI_ADAPTER_CONTROL_STATUS * PSCSI_ADAPTER_CONTROL_STATUS
FORCEINLINE ULONG StorPortPropagateIrpExtension(_In_ PVOID HwDeviceExtension, _In_ PVOID SourceSrb, _Inout_ PVOID DestinationSrb)
Definition: storport.h:9413
FORCEINLINE ULONG StorPortGetActiveNodeCount(_In_ PVOID HwDeviceExtension, _Out_ PULONG NumberNodes)
Definition: storport.h:8239
struct _PHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR * PPHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR
FORCEINLINE ULONG StorPortHardwareReset(_In_ PVOID HwDeviceExtension, _In_ STOR_DEVICE_RESET_TYPE Type)
Definition: storport.h:9113
struct _MODE_RIGID_GEOMETRY_PAGE * PMODE_RIGID_GEOMETRY_PAGE
struct _STOR_UNICODE_STRING * PSTOR_UNICODE_STRING
struct SRB_ALIGN _SRBEX_DATA_NVME_COMMAND SRBEX_DATA_NVME_COMMAND
FORCEINLINE ULONG StorPortGetPfns(_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl, _Out_ PVOID Pfns, _Inout_ PULONG PfnCount)
Definition: storport.h:9028
struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB32 * PSRBEX_DATA_SCSI_CDB32
struct _STOR_POFX_PERF_STATE * PSTOR_POFX_PERF_STATE
struct _VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE * PVPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE
STORAGE_REQUEST_BLOCK
Definition: storport.h:2262
enum _STORPORT_LIVEDUMP_ISSUE_TYPE * PSTORPORT_LIVEDUMP_ISSUE_TYPE
struct _TAPE_POSITION_DATA * PTAPE_POSITION_DATA
FORCEINLINE ULONG StorPortInitializeRpmb(_In_ PVOID HwDeviceExtension, _In_ PSTOR_RPMB_CAPABILITIES_DATA RpmbCapabilities)
Definition: storport.h:9490
FORCEINLINE ULONG StorPortCancelHighResolutionTimer(_In_ PVOID HwDeviceExtension, _In_ PVOID TimerHandle, _In_ BOOLEAN Wait)
Definition: storport.h:9328
enum _GETSGSTATUS GETSGSTATUS
struct _LOG_PARAMETER * PLOG_PARAMETER
struct _CDVD_REPORT_AGID_DATA CDVD_REPORT_AGID_DATA
struct _SCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND SCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND
struct SRB_ALIGN _SRBEX_DATA_SCSI_CDB32 SRBEX_DATA_SCSI_CDB32
struct _SCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND * PSCSI_SENSE_DESCRIPTOR_BLOCK_COMMAND
struct _NVME_SUPPORTED_CONTROL_TYPE_LIST NVME_SUPPORTED_CONTROL_TYPE_LIST
_INTERRUPT_SYNCHRONIZATION_MODE
Definition: storport.h:1440
@ InterruptSynchronizePerMessage
Definition: storport.h:1443
@ InterruptSynchronizeAll
Definition: storport.h:1442
@ InterruptSupportNone
Definition: storport.h:1441
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE2 * PMODE_CDROM_WRITE_PARAMETERS_PAGE2
struct _STOR_POFX_FSTATE_CONTEXT * PSTOR_POFX_FSTATE_CONTEXT
GETSGSTATUS(NTAPI * PStorPortBuildScatterGatherList)(_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl, _In_ PVOID CurrentVa, _In_ ULONG Length, _In_ PpostScaterGatherExecute ExecutionRoutine, _In_ PVOID Context, _In_ BOOLEAN WriteToDevice, _Inout_ PVOID ScatterGatherBuffer, _In_ ULONG ScatterGatherBufferLength)
Definition: storport.h:7192
enum _VPD_ASSOCIATION VPD_ASSOCIATION
FORCEINLINE VOID StorPortInitializeDpc(_In_ PVOID DeviceExtension, _Out_ PSTOR_DPC Dpc, _In_ PHW_DPC_ROUTINE HwDpcRoutine)
Definition: storport.h:7904
struct _ZONE_DESCRIPTIOR ZONE_DESCRIPTIOR
struct _NOTIFICATION_EVENT_STATUS_HEADER NOTIFICATION_EVENT_STATUS_HEADER
struct _STARTIO_PERFORMANCE_PARAMETERS * PSTARTIO_PERFORMANCE_PARAMETERS
enum _STORAGE_CRYPTO_KEY_SIZE * PSTORAGE_CRYPTO_KEY_SIZE
VOID(NTAPI * PHW_TRACING_ENABLED)(_In_ PVOID HwDeviceExtension, _In_ BOOLEAN Enabled)
Definition: storport.h:7110
_NVME_NAMESPACE_CONTROL_STATUS
Definition: storport.h:1512
@ NvmeNamespaceControlUnsuccessful
Definition: storport.h:1514
@ NvmeNamespaceControlNotSupported
Definition: storport.h:1515
@ NvmeNamespaceControlSuccess
Definition: storport.h:1513
struct _LBA_STATUS_DESCRIPTOR LBA_STATUS_DESCRIPTOR
struct _STOR_SLIST_ENTRY STOR_SLIST_ENTRY
struct _MODE_PARAMETER_BLOCK MODE_PARAMETER_BLOCK
struct _STOR_CRYPTO_CAPABILITIES_DATA STOR_CRYPTO_CAPABILITIES_DATA
FORCEINLINE ULONG StorPortFreePool(_In_ PVOID HwDeviceExtension, _In_ PVOID BufferPointer)
Definition: storport.h:7985
struct _STOR_UNIT_CONTROL_QUERY_BUS_TYPE STOR_UNIT_CONTROL_QUERY_BUS_TYPE
#define SRBEX_DATA_MINIPORT_PASSTHROUGH_LENGTH
Definition: storport.h:2320
struct SRB_ALIGN _STORAGE_REQUEST_BLOCK_HEADER * PSTORAGE_REQUEST_BLOCK_HEADER
FORCEINLINE ULONG StorPortGetProcessorCount(_In_ PVOID HwDeviceExtension, _Out_ PULONG ProcessorCount)
Definition: storport.h:9157
STORPORT_API VOID NTAPI StorPortLogError(_In_ PVOID HwDeviceExtension, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG ErrorCode, _In_ ULONG UniqueId)
Definition: storport.c:1513
struct RS_COMMAND_DESCRIPTOR * PRS_COMMAND_DESCRIPTOR
struct _MODE_PARAMETER_HEADER * PMODE_PARAMETER_HEADER
@ TRANSFER_COUNT_UNITS_PEBIBYTES
Definition: storport.h:5541
@ TRANSFER_COUNT_UNITS_GIBIBYTES
Definition: storport.h:5539
@ TRANSFER_COUNT_UNITS_KIBIBYTES
Definition: storport.h:5537
@ TRANSFER_COUNT_UNITS_NUMBER_BLOCKS
Definition: storport.h:5543
@ TRANSFER_COUNT_UNITS_TEBIBYTES
Definition: storport.h:5540
@ TRANSFER_COUNT_UNITS_EXBIBYTES
Definition: storport.h:5542
@ TRANSFER_COUNT_UNITS_MEBIBYTES
Definition: storport.h:5538
@ TRANSFER_COUNT_UNITS_BYTES
Definition: storport.h:5536
struct _SCSI_SENSE_DESCRIPTOR_HEADER * PSCSI_SENSE_DESCRIPTOR_HEADER
struct SRB_ALIGN _SRBEX_DATA_POWER * PSRBEX_DATA_POWER
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS STOR_ADDRESS
#define STOR_FRU_ID_MAX_LENGTH
Definition: storport.h:6104
struct _T2_COMMAND_DURATION_LIMIT_DESCRIPTOR T2_COMMAND_DURATION_LIMIT_DESCRIPTOR
struct _STOR_POFX_POWER_CONTROL STOR_POFX_POWER_CONTROL
struct _STOR_POWER_SETTING_INFO STOR_POWER_SETTING_INFO
struct _STOR_LIST_ENTRY STOR_LIST_ENTRY
struct _STOR_REPORT_INTERNAL_DATA STOR_REPORT_INTERNAL_DATA
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ PUCHAR Buffer, _In_ ULONG Count)
Definition: stubs.c:240
struct _VPD_IDENTIFICATION_DESCRIPTOR VPD_IDENTIFICATION_DESCRIPTOR
struct _DISC_INFORMATION * PDISC_INFORMATION
struct _OPC_TABLE_ENTRY OPC_TABLE_ENTRY
struct SRB_ALIGN _SRBEX_DATA_WMI * PSRBEX_DATA_WMI
struct _AUDIO_OUTPUT * PAUDIO_OUTPUT
struct _TRACK_INFORMATION3 * PTRACK_INFORMATION3
enum _STORPORT_LIVEDUMP_ISSUE_TYPE STORPORT_LIVEDUMP_ISSUE_TYPE
FORCEINLINE ULONG StorPortGetActiveGroupCount(_In_ PVOID HwDeviceExtension, _Out_ PUSHORT NumberGroups)
Definition: storport.h:8215
ULONG_PTR STOR_AFFINITY
Definition: storport.h:6320
struct _NVME_ICE_ENTRY * PNVME_ICE_ENTRY
Definition: storport.h:6186
struct _FORMAT_DESCRIPTOR * PFORMAT_DESCRIPTOR
_STORPORT_ETW_EVENT_OPCODE
Definition: storport.h:5875
@ StorportEtwEventOpcodeDC_Start
Definition: storport.h:5879
@ StorportEtwEventOpcodeReceive
Definition: storport.h:5886
@ StorportEtwEventOpcodeSuspend
Definition: storport.h:5884
@ StorportEtwEventOpcodeResume
Definition: storport.h:5883
@ StorportEtwEventOpcodeStart
Definition: storport.h:5877
@ StorportEtwEventOpcodeStop
Definition: storport.h:5878
@ StorportEtwEventOpcodeDC_Stop
Definition: storport.h:5880
@ StorportEtwEventOpcodeSend
Definition: storport.h:5885
@ StorportEtwEventOpcodeInfo
Definition: storport.h:5876
@ StorportEtwEventOpcodeReply
Definition: storport.h:5882
@ StorportEtwEventOpcodeExtension
Definition: storport.h:5881
union _STOR_SLIST_HEADER STOR_SLIST_HEADER
struct _STOR_POFX_UNIT_POWER_INFO STOR_POFX_UNIT_POWER_INFO
VOID(NTAPI * PStorPortFreePool)(_In_ PVOID PMemory, _In_ PVOID HwDeviceExtension, _In_opt_ PVOID PMdl)
Definition: storport.h:7205
enum _STOR_SYNCHRONIZATION_MODEL STOR_SYNCHRONIZATION_MODEL
struct _STOR_RICH_DEVICE_DESCRIPTION_V2 STOR_RICH_DEVICE_DESCRIPTION_V2
#define STOR_VENDOR_ID_LENGTH
Definition: storport.h:6069
STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortConvertUlong64ToPhysicalAddress(_In_ ULONG64 UlongAddress)
enum _STORPORT_LIVEDUMP_DATA_TYPE STORPORT_LIVEDUMP_DATA_TYPE
struct _STOR_POFX_COMPONENT_PERF_SET * PSTOR_POFX_COMPONENT_PERF_SET
struct SRB_ALIGN _SRBEX_DATA_PNP * PSRBEX_DATA_PNP
struct _CDDA_OUTPUT_PORT CDDA_OUTPUT_PORT
struct SRB_ALIGN _SRBEX_DATA_NVME_COMMAND * PSRBEX_DATA_NVME_COMMAND
FORCEINLINE ULONG StorPortRegistryWriteAdapterKey(_In_ PVOID HwDeviceExtension, _In_opt_ PCWSTR SubKeyName, _In_ PCWSTR ValueName, _In_ ULONG ValueType, _In_ PVOID ValueData, _In_ ULONG ValueDataLength)
Definition: storport.h:8773
struct _MODE_FORMAT_PAGE * PMODE_FORMAT_PAGE
struct _CDVD_INACTIVITY_TIMEOUT_PAGE * PCDVD_INACTIVITY_TIMEOUT_PAGE
ULONG(NTAPI * PHW_FIND_ADAPTER)(IN PVOID DeviceExtension, IN PVOID HwContext, IN PVOID BusInformation, IN PCHAR ArgumentString, IN OUT PPORT_CONFIGURATION_INFORMATION ConfigInfo, OUT PBOOLEAN Again)
Definition: storport.h:7018
struct _MECHANICAL_STATUS_INFORMATION_HEADER * PMECHANICAL_STATUS_INFORMATION_HEADER
struct _VPD_LOGICAL_BLOCK_PROVISIONING_PAGE VPD_LOGICAL_BLOCK_PROVISIONING_PAGE
PVOID(NTAPI * PStorPortGetSystemAddress)(_In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.h:7220
struct _MODE_CDROM_WRITE_PARAMETERS_PAGE * PMODE_CDROM_WRITE_PARAMETERS_PAGE
struct _MINIPORT_DATA * PMINIPORT_DATA
struct _STORPORT_CAPTURE_LIVEDUMP * PSTORPORT_CAPTURE_LIVEDUMP
FORCEINLINE ULONG StorPortRegistryReadAdapterKey(_In_ PVOID HwDeviceExtension, _In_opt_ PCWSTR SubKeyName, _In_ PCWSTR ValueName, _In_ ULONG ValueType, _Inout_ PVOID *ValueData, _Inout_ PULONG ValueDataLength)
Definition: storport.h:8754
FORCEINLINE ULONG StorPortGetActivityIdSrb(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ LPGUID ActivityId)
Definition: storport.h:8497
struct _DISC_INFORMATION DISC_INFORMATION
struct _STOR_DPC * PSTOR_DPC
FORCEINLINE ULONG StorPortInterlockedPushEntrySList(_In_ PVOID HwDeviceExtension, _In_ PSLIST_HEADER SListHead, _In_ PSLIST_ENTRY SListEntry, _Out_ PSLIST_ENTRY *Result)
Definition: storport.h:8432
FORCEINLINE ULONG StorPortFreeContiguousMemorySpecifyCache(_In_ PVOID HwDeviceExtension, _In_ PVOID BaseAddress, _In_ SIZE_T NumberOfBytes, _In_ MEMORY_CACHING_TYPE CacheType)
Definition: storport.h:8297
@ VpdCodeSetBinary
Definition: storport.h:1669
@ VpdCodeSetReserved
Definition: storport.h:1668
@ VpdCodeSetAscii
Definition: storport.h:1670
@ VpdCodeSetUTF8
Definition: storport.h:1671
struct _CDVD_CAPABILITIES_PAGE CDVD_CAPABILITIES_PAGE
FORCEINLINE ULONG StorPortTerminateSystemThread(_In_ PVOID HwDeviceExtension, _In_ ULONG ExitStatus)
Definition: storport.h:9233
enum _STOR_RPMB_FRAME_TYPE * PSTOR_RPMB_FRAME_TYPE
struct _STOR_POFX_COMPONENT_V2 STOR_POFX_COMPONENT_V2
struct _GET_MINIPORT_DUMP_INFO_V1 * PGET_MINIPORT_DUMP_INFO_V1
struct _DATA_BLOCK_HEADER * PDATA_BLOCK_HEADER
NVME_ADAPTER_CONTROL_STATUS(NTAPI * PHW_NVME_ADAPTER_CONTROL)(_In_ PVOID DeviceExtension, _In_ NVME_ADAPTER_CONTROL_TYPE ControlType, _In_ PVOID Parameters)
Definition: storport.h:7078
struct _ACCESS_RANGE * PACCESS_RANGE
FORCEINLINE ULONG StorPortGetCurrentProcessorNumber(_In_ PVOID HwDeviceExtension, _Out_ PPROCESSOR_NUMBER ProcNumber)
Definition: storport.h:8204
#define DUMP_MINIPORT_NAME_LENGTH
Definition: storport.h:6926
enum _STORPORT_ETW_LEVEL * PSTORPORT_ETW_LEVEL
struct _CDVD_KEY_HEADER CDVD_KEY_HEADER
STORPORT_API PVOID NTAPI StorPortGetUncachedExtension(_In_ PVOID HwDeviceExtension, _In_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _In_ ULONG NumberOfBytes)
Definition: storport.c:1307
enum _VPD_IDENTIFIER_TYPE * PVPD_IDENTIFIER_TYPE
struct _STOR_RESET_BUS_SYNCHRONOUS_PARAMETER * PSTOR_RESET_BUS_SYNCHRONOUS_PARAMETER
struct _VPD_EXTENDED_INQUIRY_DATA_PAGE VPD_EXTENDED_INQUIRY_DATA_PAGE
FORCEINLINE ULONG StorPortInterlockedInsertTailList(_In_ PVOID HwDeviceExtension, _In_ PSTOR_LIST_ENTRY ListHead, _In_ PSTOR_LIST_ENTRY ListEntry, _In_ PSTOR_KSPIN_LOCK Lock)
Definition: storport.h:8998
#define STORPORT_API
Definition: storport.h:75
struct _CURRENT_INTERNAL_STATUS_PARAMETER_DATA * PCURRENT_INTERNAL_STATUS_PARAMETER_DATA
struct _VPD_THIRD_PARTY_COPY_PAGE VPD_THIRD_PARTY_COPY_PAGE
struct _STOR_REQUEST_INFO_V2 STOR_REQUEST_INFO_V2
struct _VPD_EXTENDED_INQUIRY_DATA_PAGE * PVPD_EXTENDED_INQUIRY_DATA_PAGE
FORCEINLINE ULONG StorPortEtwEvent4(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG EventId, _In_ PWSTR EventDescription, _In_ ULONGLONG EventKeywords, _In_ STORPORT_ETW_LEVEL EventLevel, _In_ STORPORT_ETW_EVENT_OPCODE EventOpcode, _In_opt_ PSCSI_REQUEST_BLOCK Srb, _In_opt_ PWSTR Parameter1Name, _In_ ULONGLONG Parameter1Value, _In_opt_ PWSTR Parameter2Name, _In_ ULONGLONG Parameter2Value, _In_opt_ PWSTR Parameter3Name, _In_ ULONGLONG Parameter3Value, _In_opt_ PWSTR Parameter4Name, _In_ ULONGLONG Parameter4Value)
Definition: storport.h:8929
struct _STOR_RICH_DEVICE_DESCRIPTION_V2 * PSTOR_RICH_DEVICE_DESCRIPTION_V2
enum _STOR_POFX_PERF_STATE_TYPE * PSTOR_POFX_PERF_STATE_TYPE
STORPORT_API VOID __cdecl StorPortNotification(_In_ SCSI_NOTIFICATION_TYPE NotificationType, _In_ PVOID HwDeviceExtension,...)
Definition: storport.c:1550
enum _STOR_THREAD_PRIORITY * PSTOR_THREAD_PRIORITY
struct _LBA_STATUS_LIST_HEADER * PLBA_STATUS_LIST_HEADER
FORCEINLINE ULONG StorPortMarkDumpMemory(_In_ PVOID HwDeviceExtension, _In_ PVOID Address, _In_ ULONG_PTR Length, _In_ ULONG Flags)
Definition: storport.h:8549
struct _MEMORY_REGION MEMORY_REGION
struct SRB_ALIGN _STORAGE_REQUEST_BLOCK_HEADER STORAGE_REQUEST_BLOCK_HEADER
FORCEINLINE ULONG StorPortGetD3ColdSupport(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _Out_ PBOOLEAN D3ColdSupported)
Definition: storport.h:9389
struct SRB_ALIGN _SRBEX_DATA_MINIPORT_PASSTHROUGH * PSRBEX_DATA_MINIPORT_PASSTHROUGH
enum _SRBEXDATATYPE SRBEXDATATYPE
struct STOR_ADDRESS_ALIGN _STOR_ADDRESS * PSTOR_ADDRESS
FORCEINLINE ULONG StorPortQueryPerformanceCounter(_In_ PVOID HwDeviceExtension, _Out_opt_ PLARGE_INTEGER PerformanceFrequency, _Out_ PLARGE_INTEGER PerformanceCounter)
Definition: storport.h:8564
FORCEINLINE ULONG StorPortPoFxSetComponentResidency(_In_ PVOID HwDeviceExtension, _In_opt_ PSTOR_ADDRESS Address, _In_ ULONG Component, _In_ ULONGLONG Residency)
Definition: storport.h:8664
@ StorPowerDeviceMaximum
Definition: storport.h:1640
@ StorPowerDeviceD3
Definition: storport.h:1639
@ StorPowerDeviceD2
Definition: storport.h:1638
@ StorPowerDeviceUnspecified
Definition: storport.h:1635
@ StorPowerDeviceD1
Definition: storport.h:1637
@ StorPowerDeviceD0
Definition: storport.h:1636
VOID(NTAPI * PHW_REGISTRY_NOTIFICATION_ROUTINE)(_In_ PVOID HwDeviceExtension)
Definition: storport.h:7116
STOR_REQUEST_INFO_V2 * PSTOR_REQUEST_INFO
Definition: storport.h:5847
NVME_NAMESPACE_CONTROL_STATUS(NTAPI * PHW_NAMESPACE_CONTROL)(_In_ PVOID DeviceExtension, _In_ NVME_NAMESPACE_CONTROL_TYPE ControlType, _In_ PVOID Parameters)
Definition: storport.h:7085
struct _NOTIFICATION_EXTERNAL_STATUS NOTIFICATION_EXTERNAL_STATUS
struct _NOTIFICATION_OPERATIONAL_STATUS NOTIFICATION_OPERATIONAL_STATUS
FORCEINLINE ULONG StorPortInitializeHighResolutionTimer(_In_ PVOID HwDeviceExtension, _In_ PHW_TIMER_EX Callback, _In_opt_ PVOID Context, _Out_ PVOID *TimerHandle)
Definition: storport.h:9299
enum _STOR_TELEMETRY_CATEGORY STOR_TELEMETRY_CATEGORY
struct _PRI_REGISTRATION_LIST * PPRI_REGISTRATION_LIST
struct _ERROR_HISTORY_DIRECTORY ERROR_HISTORY_DIRECTORY
struct _DESCRIPTOR_SENSE_DATA DESCRIPTOR_SENSE_DATA
struct _ACCESS_RANGE ACCESS_RANGE
BOOLEAN(STREAMAPI * PHW_INTERRUPT)(IN PVOID DeviceExtension)
Definition: strmini.h:311
Definition: shell.h:41
PRI_FULL_STATUS_DESCRIPTOR_HEADER Header
Definition: storport.h:5154
UCHAR PersistThroughPowerLossActivated
Definition: storport.h:5181
UCHAR PersistThroughPowerLossCapable
Definition: storport.h:5174
UCHAR ReplaceLostReservationCapable
Definition: storport.h:5180
UCHAR WriteExclusiveRegistrantsOnly
Definition: storport.h:5190
UCHAR ExclusiveAccessRegistrantsOnly
Definition: storport.h:5191
UCHAR ExclusiveAccessAllRegistrants
Definition: storport.h:5193
UCHAR SpecifyInitiatorPortsCapable
Definition: storport.h:5177
UCHAR WriteExclusiveAllRegistrants
Definition: storport.h:5192
UCHAR CompatibleReservationHandling
Definition: storport.h:5178
UCHAR CommandTimeoutsDescriptorPresent
Definition: storport.h:5226
UCHAR CommandDurationLimitPage
Definition: storport.h:5227
UCHAR ReadWriteCommandDurationLimitsPage
Definition: storport.h:5229
ULONG RangeLength
Definition: srb.h:42
BOOLEAN RangeInMemory
Definition: srb.h:43
STOR_PHYSICAL_ADDRESS RangeStart
Definition: storport.h:5552
UCHAR ParameterLength
Definition: scsi.h:3240
UCHAR CodePage
Definition: scsi.h:3239
PORT_OUTPUT PortOutput[4]
Definition: scsi.h:3245
UCHAR Immediate
Definition: scsi.h:3241
UCHAR LogicalBlocksPerSecond[2]
Definition: scsi.h:3244
UCHAR LbaFormat
Definition: scsi.h:3243
UCHAR StopOnTrackCrossing
Definition: scsi.h:3103
CDDA_OUTPUT_PORT CDDAOutputPorts[4]
Definition: scsi.h:3108
UCHAR Obsolete[2]
Definition: scsi.h:3107
UCHAR Reserved4[3]
Definition: scsi.h:3106
UCHAR Reserved2[6]
Definition: cdrw_hw.h:645
UCHAR OperationCode
Definition: cdrw_hw.h:634
UCHAR Immediate
Definition: scsi.h:1229
UCHAR AddressOrTrack[4]
Definition: scsi.h:1231
UCHAR Reserved3[5]
Definition: scsi.h:1232
UCHAR TransferBlocksLsb
Definition: scsi.h:1073
UCHAR Reserved2
Definition: cdrw_hw.h:119
UCHAR Control
Definition: cdrw_hw.h:121
UCHAR OperationCode
Definition: cdrw_hw.h:112
UCHAR LogicalBlockByte0
Definition: scsi.h:1067
UCHAR DisablePageOut
Definition: cdrw_hw.h:116
UCHAR RelativeAddress
Definition: cdrw_hw.h:113
UCHAR ForceUnitAccess
Definition: cdrw_hw.h:115
UCHAR TransferBlocksMsb
Definition: scsi.h:1072
UCHAR Reserved1
Definition: cdrw_hw.h:114
UCHAR LogicalBlockByte3
Definition: scsi.h:1070
UCHAR LogicalUnitNumber
Definition: scsi.h:1066
UCHAR LogicalBlockByte2
Definition: scsi.h:1069
UCHAR LogicalBlockByte1
Definition: scsi.h:1068
UCHAR DisablePageOut
Definition: scsi.h:1081
UCHAR ForceUnitAccess
Definition: scsi.h:1080
UCHAR Reserved1
Definition: scsi.h:1079
UCHAR LogicalUnitNumber
Definition: scsi.h:1082
UCHAR Reserved2
Definition: scsi.h:1085
UCHAR TransferLength[4]
Definition: scsi.h:1084
UCHAR LogicalBlock[4]
Definition: scsi.h:1083
UCHAR RelativeAddress
Definition: scsi.h:1078
UCHAR Control
Definition: scsi.h:1086
UCHAR OperationCode
Definition: cdrw_hw.h:780
UCHAR Reserved1
Definition: scsi.h:1090
UCHAR Control
Definition: scsi.h:1097
UCHAR DisablePageOut
Definition: scsi.h:1092
UCHAR ForceUnitAccess
Definition: scsi.h:1091
UCHAR Reserved2
Definition: scsi.h:1096
UCHAR LogicalBlock[8]
Definition: scsi.h:1094
UCHAR Protection
Definition: scsi.h:1093
UCHAR TransferLength[4]
Definition: scsi.h:1095
UCHAR OperationCode
Definition: scsi.h:1089
UCHAR LogicalUnitNumber
Definition: scsi.h:1054
UCHAR InterleaveMsb
Definition: scsi.h:1056
UCHAR FReserved2
Definition: cdrw_hw.h:107
UCHAR FormatControl
Definition: scsi.h:1053
UCHAR OperationCode
Definition: cdrw_hw.h:95
UCHAR FReserved1
Definition: cdrw_hw.h:105
UCHAR InterleaveLsb
Definition: scsi.h:1057
UCHAR OperationCode
Definition: scsi.h:1003
UCHAR LogicalUnitNumber
Definition: scsi.h:1006
UCHAR CommandUniqueBytes[3]
Definition: scsi.h:1007
UCHAR Reserved
Definition: scsi.h:1010
UCHAR Immediate
Definition: scsi.h:1004
UCHAR CommandUniqueBits
Definition: scsi.h:1005
UCHAR VendorUnique
Definition: scsi.h:1011
UCHAR CommandSupportData
Definition: scsi.h:1034
UCHAR OperationCode
Definition: scsi.h:1032
UCHAR AllocationLength
Definition: scsi.h:1038
UCHAR EnableVitalProductData
Definition: scsi.h:1033
UCHAR LogicalUnitNumber
Definition: scsi.h:1025
UCHAR AllocationLength
Definition: cdrw_hw.h:71
UCHAR OperationCode
Definition: cdrw_hw.h:66
UCHAR TransferBlocks
Definition: scsi.h:1019
UCHAR LogicalBlockMsb0
Definition: scsi.h:1017
UCHAR LogicalBlockLsb
Definition: scsi.h:1018
UCHAR LogicalBlockMsb1
Definition: scsi.h:1015
UCHAR LogicalUnitNumber
Definition: scsi.h:1016
UCHAR VerificationLength[3]
Definition: scsi.h:1048
UCHAR LogicalUnitNumber
Definition: scsi.h:1047
UCHAR Immediate
Definition: scsi.h:1045
UCHAR Control
Definition: scsi.h:1049
UCHAR Reserved
Definition: scsi.h:1046
UCHAR ByteCompare
Definition: scsi.h:1044
UCHAR OperationCode
Definition: scsi.h:1042
UCHAR Reserved4[3]
Definition: scsi.h:1175
UCHAR Immediate
Definition: scsi.h:1168
UCHAR Reserved3
Definition: scsi.h:1173
UCHAR Reserved1
Definition: scsi.h:1169
UCHAR Reserved2
Definition: scsi.h:1172
UCHAR TrackNumber[2]
Definition: scsi.h:1174
UCHAR OperationCode
Definition: scsi.h:1167
UCHAR Reserved1
Definition: cdrw_hw.h:81
UCHAR Long
Definition: cdrw_hw.h:79
UCHAR Reserved2[3]
Definition: cdrw_hw.h:83
UCHAR LogicalUnitNumber
Definition: scsi.h:1499
UCHAR Control
Definition: cdrw_hw.h:84
UCHAR OperationCode
Definition: cdrw_hw.h:78
UCHAR Immediate
Definition: cdrw_hw.h:80
UCHAR Destination2ElementAddress[2]
Definition: scsi.h:1648
UCHAR TransportElementAddress[2]
Definition: scsi.h:1645
UCHAR SourceElementAddress[2]
Definition: scsi.h:1646
UCHAR Destination1ElementAddress[2]
Definition: scsi.h:1647
UCHAR LogicalUnitNumber
Definition: scsi.h:1644
UCHAR StartingFeature[2]
Definition: scsi.h:1843
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:734
UCHAR Reserved1[2]
Definition: scsi.h:1743
UCHAR StartingLBA[4]
Definition: scsi.h:1742
UCHAR MaximumNumberOfDescriptors[2]
Definition: scsi.h:1744
UCHAR Reserved4[3]
Definition: cdrw_hw.h:438
UCHAR OperationCode
Definition: cdrw_hw.h:431
UCHAR Reserved5[3]
Definition: cdrw_hw.h:440
UCHAR Reserved2[2]
Definition: cdrw_hw.h:434
UCHAR BTBit
Definition: scsi.h:1444
UCHAR LogicalUnitNumber
Definition: scsi.h:1446
UCHAR Control
Definition: scsi.h:1451
UCHAR OperationCode
Definition: scsi.h:1441
UCHAR Reserved3
Definition: scsi.h:1447
UCHAR Reserved4
Definition: scsi.h:1449
UCHAR Reserved1
Definition: scsi.h:1445
UCHAR Immediate
Definition: scsi.h:1442
UCHAR Partition
Definition: scsi.h:1450
UCHAR CPBit
Definition: scsi.h:1443
UCHAR LogicalBlockAddress[4]
Definition: scsi.h:1448
UCHAR LogicalUnitNumber
Definition: scsi.h:1472
UCHAR Reserved
Definition: scsi.h:1473
UCHAR Reserved1
Definition: scsi.h:1471
UCHAR OperationCode
Definition: scsi.h:1468
UCHAR Control
Definition: scsi.h:1477
UCHAR ParameterListLength[2]
Definition: scsi.h:1476
UCHAR PCRBit
Definition: scsi.h:1470
UCHAR Reserved2[4]
Definition: scsi.h:1475
UCHAR SPBit
Definition: scsi.h:1469
UCHAR PCBit
Definition: scsi.h:1474
UCHAR Control
Definition: cdrw_hw.h:373
UCHAR PageCode
Definition: cdrw_hw.h:367
UCHAR ParameterPointer[2]
Definition: cdrw_hw.h:371
UCHAR LogicalUnitNumber
Definition: scsi.h:1458
UCHAR OperationCode
Definition: cdrw_hw.h:362
UCHAR Reserved2
Definition: cdrw_hw.h:369
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:372
UCHAR Reserved3
Definition: cdrw_hw.h:370
UCHAR Reserved1
Definition: cdrw_hw.h:365
UCHAR PPCBit
Definition: cdrw_hw.h:364
UCHAR Reserved
Definition: scsi.h:1707
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:446
UCHAR OperationCode
Definition: cdrw_hw.h:444
UCHAR Reserved2[2]
Definition: cdrw_hw.h:447
UCHAR Reserved1[6]
Definition: scsi.h:1709
UCHAR Reserved2[2]
Definition: cdrw_hw.h:404
UCHAR LogicalUnitNumber
Definition: scsi.h:1517
UCHAR LogicalUnitNumber
Definition: scsi.h:1435
UCHAR Reserved2[5]
Definition: cdrw_hw.h:356
UCHAR ParameterListLength[2]
Definition: cdrw_hw.h:357
UCHAR OperationCode
Definition: cdrw_hw.h:340
UCHAR Reserved2[2]
Definition: cdrw_hw.h:345
UCHAR ParameterListLength
Definition: cdrw_hw.h:346
UCHAR LogicalUnitNumber
Definition: scsi.h:1425
UCHAR Reserved3[4]
Definition: cdrw_hw.h:333
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:334
UCHAR LogicalUnitNumber
Definition: storport.h:2883
UCHAR OperationCode
Definition: cdrw_hw.h:312
UCHAR AllocationLength
Definition: cdrw_hw.h:320
UCHAR OperationCode
Definition: scsi.h:1630
UCHAR Reserved3
Definition: scsi.h:1638
UCHAR LogicalUnitNumber
Definition: scsi.h:1632
UCHAR DestinationElementAddress[2]
Definition: scsi.h:1635
UCHAR SourceElementAddress[2]
Definition: scsi.h:1634
UCHAR TransportElementAddress[2]
Definition: scsi.h:1633
UCHAR Reserved2[2]
Definition: scsi.h:1636
UCHAR Reserved1
Definition: scsi.h:1631
UCHAR LogicalBlockByte0
Definition: scsi.h:1360
UCHAR LogicalBlockByte1
Definition: scsi.h:1361
UCHAR LogicalBlockByte2
Definition: scsi.h:1362
UCHAR LogicalBlockByte3
Definition: scsi.h:1363
UCHAR TransferBlockByte1
Definition: scsi.h:1366
UCHAR TransferBlockByte0
Definition: scsi.h:1365
UCHAR PartitionSelect
Definition: scsi.h:1547
UCHAR Reserved1[3]
Definition: scsi.h:1548
UCHAR OperationCode
Definition: scsi.h:1544
UCHAR Control
Definition: scsi.h:1549
UCHAR Immediate
Definition: scsi.h:1545
UCHAR LogicalUnitNumber
Definition: scsi.h:1102
UCHAR Reserved2[6]
Definition: cdrw_hw.h:133
UCHAR LogicalUnitNumber
Definition: scsi.h:1215
UCHAR LogicalUnitNumber
Definition: scsi.h:1206
UCHAR Reserved1
Definition: scsi.h:1205
UCHAR Control
Definition: scsi.h:1210
UCHAR StartingBlockAddress[4]
Definition: scsi.h:1207
UCHAR OperationCode
Definition: scsi.h:1204
UCHAR PlayLength[2]
Definition: scsi.h:1209
UCHAR Reserved2
Definition: scsi.h:1208
UCHAR Port1
Definition: scsi.h:1259
UCHAR Speed
Definition: scsi.h:1262
UCHAR Control
Definition: scsi.h:1263
UCHAR CMSF
Definition: scsi.h:1238
struct _CDB::_PLAY_CD::@2635::_LBA LBA
UCHAR Lun
Definition: scsi.h:1240
_ANONYMOUS_UNION union _CDB::_PLAY_CD::@2635 DUMMYUNIONNAME
UCHAR Reserved1
Definition: scsi.h:1237
UCHAR ExpectedSectorType
Definition: scsi.h:1239
UCHAR Reserved2
Definition: scsi.h:1254
UCHAR OperationCode
Definition: scsi.h:1236
UCHAR Port2
Definition: scsi.h:1260
UCHAR Audio
Definition: scsi.h:1257
UCHAR Composite
Definition: scsi.h:1258
struct _CDB::_PLAY_CD::@2635::_MSF MSF
UCHAR LogicalBlockByte3
Definition: scsi.h:1349
UCHAR LogicalBlockByte2
Definition: scsi.h:1348
UCHAR TransferBlockByte2
Definition: scsi.h:1352
UCHAR LogicalUnitNumber
Definition: scsi.h:1345
UCHAR LogicalBlockByte1
Definition: scsi.h:1347
UCHAR TransferBlockByte0
Definition: scsi.h:1350
UCHAR TransferBlockByte3
Definition: scsi.h:1353
UCHAR TransferBlockByte1
Definition: scsi.h:1351
UCHAR LogicalBlockByte0
Definition: scsi.h:1346
UCHAR TransportElementAddress[2]
Definition: scsi.h:1622
UCHAR DestinationElementAddress[2]
Definition: scsi.h:1623
UCHAR Reserved
Definition: scsi.h:1481
UCHAR OperationCode
Definition: scsi.h:1480
UCHAR TransferLength[3]
Definition: scsi.h:1483
UCHAR LogicalUnitNumber
Definition: scsi.h:1482
UCHAR Control
Definition: scsi.h:1484
UCHAR OperationCode
Definition: scsi.h:1863
UCHAR TransferLength[4]
Definition: scsi.h:1870
UCHAR DisablePageOut
Definition: scsi.h:1867
UCHAR Control
Definition: scsi.h:1873
UCHAR LogicalUnitNumber
Definition: scsi.h:1868
UCHAR Streaming
Definition: scsi.h:1872
UCHAR Reserved2
Definition: scsi.h:1871
UCHAR ForceUnitAccess
Definition: scsi.h:1866
UCHAR RelativeAddress
Definition: scsi.h:1864
UCHAR Reserved1
Definition: scsi.h:1865
UCHAR LogicalBlock[4]
Definition: scsi.h:1869
UCHAR TransferLength[4]
Definition: scsi.h:1917
UCHAR Reserved1
Definition: scsi.h:1912
UCHAR Reserved2
Definition: scsi.h:1918
UCHAR ReadProtect
Definition: scsi.h:1915
UCHAR OperationCode
Definition: scsi.h:1911
UCHAR ForceUnitAccess
Definition: scsi.h:1913
UCHAR LogicalBlock[8]
Definition: scsi.h:1916
UCHAR Control
Definition: scsi.h:1920
UCHAR Streaming
Definition: scsi.h:1919
UCHAR DisablePageOut
Definition: scsi.h:1914
UCHAR LogicalBlock[8]
Definition: scsi.h:1962
UCHAR Reserved5
Definition: scsi.h:1339
UCHAR StartingS
Definition: scsi.h:1326
UCHAR IncludeSyncData
Definition: cdrw_hw.h:256
UCHAR StartingM
Definition: scsi.h:1325
UCHAR ExpectedSectorType
Definition: cdrw_hw.h:244
UCHAR IncludeUserData
Definition: cdrw_hw.h:254
UCHAR SubChannelSelection
Definition: cdrw_hw.h:258
UCHAR RelativeAddress
Definition: scsi.h:1320
UCHAR StartingF
Definition: scsi.h:1327
UCHAR OperationCode
Definition: cdrw_hw.h:240
UCHAR RelativeAddress
Definition: scsi.h:1302
UCHAR Reserved3
Definition: cdrw_hw.h:275
UCHAR IncludeUserData
Definition: cdrw_hw.h:278
UCHAR SubChannelSelection
Definition: cdrw_hw.h:282
UCHAR StartingLBA[4]
Definition: scsi.h:1306
UCHAR Lun
Definition: scsi.h:1305
UCHAR IncludeEDC
Definition: cdrw_hw.h:277
UCHAR IncludeSyncData
Definition: cdrw_hw.h:280
UCHAR ExpectedSectorType
Definition: cdrw_hw.h:269
UCHAR HeaderCode
Definition: cdrw_hw.h:279
UCHAR Control
Definition: cdrw_hw.h:285
UCHAR TransferBlocks[3]
Definition: scsi.h:1307
UCHAR Reserved0
Definition: scsi.h:271
UCHAR Reserved2
Definition: scsi.h:1308
UCHAR ErrorFlags
Definition: cdrw_hw.h:276
UCHAR OperationCode
Definition: cdrw_hw.h:265
UCHAR StartingElementAddress[2]
Definition: scsi.h:1659
UCHAR NumberOfElements[2]
Definition: scsi.h:1660
UCHAR AllocationLength[3]
Definition: scsi.h:1662
UCHAR OperationCode
Definition: cdrw_hw.h:172
UCHAR LogicalBlockAddress[4]
Definition: scsi.h:1198
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:180
UCHAR Reserved3
Definition: scsi.h:1199
UCHAR Reserved2[7]
Definition: scsi.h:1583
UCHAR OperationCode
Definition: cdrw_hw.h:149
UCHAR Reserved1
Definition: cdrw_hw.h:152
UCHAR Format
Definition: cdrw_hw.h:158
UCHAR Reserved3[3]
Definition: scsi.h:1115
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:165
UCHAR Reserved2[3]
Definition: cdrw_hw.h:163
UCHAR Control
Definition: cdrw_hw.h:166
UCHAR Reserved0
Definition: cdrw_hw.h:150
UCHAR LogicalUnitNumber
Definition: scsi.h:1112
UCHAR StartingTrack
Definition: scsi.h:1116
UCHAR Format2
Definition: scsi.h:1113
UCHAR TrackNumber[2]
Definition: scsi.h:1162
UCHAR OperationCode
Definition: scsi.h:1158
UCHAR Reserved3[3]
Definition: scsi.h:1163
UCHAR Reserved2[2]
Definition: scsi.h:1161
UCHAR OperationCode
Definition: cdrw_hw.h:668
UCHAR LogicalBlockAddress[4]
Definition: scsi.h:1790
UCHAR Reserved2[2]
Definition: cdrw_hw.h:672
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:673
UCHAR AllocationLength[4]
Definition: scsi.h:700
UCHAR Reserved2[1]
Definition: scsi.h:701
UCHAR Reserved1[5]
Definition: scsi.h:699
UCHAR Control
Definition: scsi.h:702
UCHAR OperationCode
Definition: scsi.h:698
UCHAR ReservationSize[4]
Definition: scsi.h:1143
UCHAR Reserved1
Definition: scsi.h:1268
UCHAR OperationCode
Definition: scsi.h:1266
UCHAR StartingAddress[4]
Definition: scsi.h:1271
UCHAR Reserved3
Definition: scsi.h:1273
UCHAR Reserved2[3]
Definition: scsi.h:1272
UCHAR Reserved4
Definition: scsi.h:1275
UCHAR RelativeAddress
Definition: scsi.h:1267
UCHAR Direct
Definition: scsi.h:1269
UCHAR Type
Definition: scsi.h:1274
UCHAR Control
Definition: scsi.h:1276
UCHAR Lun
Definition: scsi.h:1270
UCHAR Immediate
Definition: scsi.h:1526
UCHAR VendorUnique
Definition: scsi.h:1532
UCHAR OperationCode
Definition: scsi.h:1525
UCHAR BlockAddress[3]
Definition: scsi.h:1528
UCHAR Reserved2
Definition: scsi.h:1531
UCHAR Reserved1
Definition: scsi.h:1527
UCHAR Control
Definition: cdrw_hw.h:382
UCHAR LogicalBlockAddress[4]
Definition: scsi.h:1490
UCHAR OperationCode
Definition: cdrw_hw.h:377
UCHAR Reserved1
Definition: cdrw_hw.h:378
UCHAR Reserved2[3]
Definition: cdrw_hw.h:381
UCHAR LogicalUnitNumber
Definition: scsi.h:1489
UCHAR CueSheetSize[3]
Definition: scsi.h:1189
UCHAR ParameterListLength[2]
Definition: scsi.h:1772
UCHAR Reserved2[6]
Definition: cdrw_hw.h:660
UCHAR KeyFormat
Definition: cdrw_hw.h:662
UCHAR Reserved1
Definition: cdrw_hw.h:658
UCHAR OperationCode
Definition: cdrw_hw.h:657
UCHAR ParameterListLength[2]
Definition: cdrw_hw.h:661
UCHAR Control
Definition: cdrw_hw.h:664
UCHAR ParameterListLength[2]
Definition: scsi.h:1154
UCHAR Reserved4[2]
Definition: scsi.h:1675
UCHAR StartingElementAddress[2]
Definition: scsi.h:1671
UCHAR ParameterListLength[2]
Definition: scsi.h:1676
UCHAR LogicalUnitNumber
Definition: scsi.h:1670
UCHAR Reserved1[6]
Definition: cdrw_hw.h:599
UCHAR WriteSpeed[2]
Definition: cdrw_hw.h:598
_ANONYMOUS_UNION union _CDB::_SET_CD_SPEED::@2638 DUMMYUNIONNAME
_ANONYMOUS_STRUCT struct _CDB::_SET_CD_SPEED::@2638::@2639 DUMMYSTRUCTNAME
UCHAR RotationControl
Definition: scsi.h:1853
UCHAR ReadSpeed[2]
Definition: cdrw_hw.h:597
UCHAR Reserved2[5]
Definition: scsi.h:1859
UCHAR ReadAheadLBA[4]
Definition: cdrw_hw.h:742
UCHAR TriggerLBA[4]
Definition: cdrw_hw.h:741
UCHAR ParameterListLength[2]
Definition: scsi.h:1763
union _CDB::_SPACE_TAPE_MARKS::@2636 Byte6
struct _CDB::_SPACE_TAPE_MARKS::@2636::@2637 Fields
UCHAR OperationCode
Definition: cdrw_hw.h:389
UCHAR LogicalUnitNumber
Definition: scsi.h:1507
UCHAR Reserved2[2]
Definition: cdrw_hw.h:393
UCHAR Reserved2[7]
Definition: scsi.h:1282
UCHAR LogicalUnitNumber
Definition: scsi.h:1290
UCHAR AllocationLength[2]
Definition: cdrw_hw.h:212
UCHAR OperationCode
Definition: cdrw_hw.h:201
UCHAR TrackNumber
Definition: cdrw_hw.h:211
UCHAR Reserved4[2]
Definition: cdrw_hw.h:210
UCHAR LogicalBlockAddress[4]
Definition: scsi.h:1720
UCHAR Control
Definition: scsi.h:1946
UCHAR BlockVerify
Definition: scsi.h:1938
UCHAR LogicalBlock[8]
Definition: scsi.h:1942
UCHAR DisablePageOut
Definition: scsi.h:1940
UCHAR Streaming
Definition: scsi.h:1945
UCHAR Reserved3
Definition: scsi.h:1944
UCHAR VerificationLength[4]
Definition: scsi.h:1943
UCHAR Reserved1
Definition: scsi.h:1936
UCHAR ByteCheck
Definition: scsi.h:1937
UCHAR VerifyProtect
Definition: scsi.h:1941
UCHAR OperationCode
Definition: scsi.h:1935
UCHAR Reserved2
Definition: scsi.h:1939
UCHAR LogicalUnitNumber
Definition: scsi.h:1882
UCHAR Control
Definition: scsi.h:1887
UCHAR DisablePageOut
Definition: scsi.h:1881
UCHAR EBP
Definition: scsi.h:1879
UCHAR RelativeAddress
Definition: scsi.h:1877
UCHAR ForceUnitAccess
Definition: scsi.h:1880
UCHAR TransferLength[4]
Definition: scsi.h:1884
UCHAR Streaming
Definition: scsi.h:1886
UCHAR Reserved1
Definition: scsi.h:1878
UCHAR LogicalBlock[4]
Definition: scsi.h:1883
UCHAR Reserved2
Definition: scsi.h:1885
UCHAR OperationCode
Definition: scsi.h:1876
UCHAR Reserved2
Definition: scsi.h:1930
UCHAR WriteProtect
Definition: scsi.h:1927
UCHAR LogicalBlock[8]
Definition: scsi.h:1928
UCHAR Reserved1
Definition: scsi.h:1924
UCHAR Streaming
Definition: scsi.h:1931
UCHAR DisablePageOut
Definition: scsi.h:1926
UCHAR Control
Definition: scsi.h:1932
UCHAR ForceUnitAccess
Definition: scsi.h:1925
UCHAR TransferLength[4]
Definition: scsi.h:1929
UCHAR OperationCode
Definition: scsi.h:1923
UCHAR TransferLength[3]
Definition: scsi.h:1557
UCHAR Reserved
Definition: scsi.h:3093
UCHAR ChannelSelection
Definition: scsi.h:3092
UCHAR Volume
Definition: scsi.h:3094
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2659 DUMMYUNIONNAME
UCHAR CopyManagementRevision[2]
Definition: scsi.h:3217
UCHAR ReadSpeedCurrent[2]
Definition: scsi.h:3198
UCHAR ReadSpeedMaximum[2]
Definition: scsi.h:3192
UCHAR WriteSpeedMaximum[2]
Definition: scsi.h:3209
UCHAR ReadBarCodeCapable
Definition: scsi.h:3177
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2661 DUMMYUNIONNAME3
UCHAR ObsoleteReserved[2]
Definition: scsi.h:3193
UCHAR ObsoleteReserved4[2]
Definition: scsi.h:3210
UCHAR BufferUnderrunFree
Definition: scsi.h:3169
UCHAR LoadingMechanismType
Definition: scsi.h:3183
UCHAR WriteSpeedCurrent[2]
Definition: scsi.h:3213
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2660 DUMMYUNIONNAME2
UCHAR ObsoleteReserved2[2]
Definition: scsi.h:3199
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2663 DUMMYUNIONNAME5
UCHAR SeperateChannelMute
Definition: scsi.h:3185
UCHAR Reserved10[2]
Definition: scsi.h:3218
UCHAR SupportsDiskPresent
Definition: scsi.h:3186
_ANONYMOUS_UNION union _CDVD_CAPABILITIES_PAGE::@2662 DUMMYUNIONNAME4
UCHAR ObsoleteReserved11[2]
Definition: scsi.h:3214
UCHAR RWInLeadInReadable
Definition: scsi.h:3189
UCHAR NumberVolumeLevels[2]
Definition: scsi.h:3195
UCHAR ChallengeKeyValue[10]
Definition: cdrw_hw.h:3594
UCHAR EventStatusNotification[2]
Definition: scsi.h:3120
UCHAR KeyExchange[2]
Definition: scsi.h:3125
UCHAR EmbeddedChanger[2]
Definition: scsi.h:3117
UCHAR DVDSequentialRecordable[2]
Definition: scsi.h:3123
UCHAR CDAudio[2]
Definition: scsi.h:3116
UCHAR Reserved2[2]
Definition: scsi.h:3126
UCHAR DigitalOutput[2]
Definition: scsi.h:3121
UCHAR PersistantPrevent[2]
Definition: scsi.h:3119
UCHAR RandomRecordable[2]
Definition: scsi.h:3124
UCHAR CDSequentialRecordable[2]
Definition: scsi.h:3122
UCHAR PacketSMART[2]
Definition: scsi.h:3118
UCHAR GroupOneMinimumTimeout[2]
Definition: scsi.h:3139
UCHAR GroupTwoMinimumTimeout[2]
Definition: scsi.h:3140
CDVD_KEY_DATA TitleKey
Definition: cdrw_hw.h:3619
UCHAR CurrentInternalStatusData[ANYSIZE_ARRAY]
Definition: storport.h:4946
UCHAR Reserved[4]
Definition: scsi.h:2244
struct _DATA_BLOCK_HEADER::@2642::@2643 MSF
UCHAR DataMode
Definition: scsi.h:2243
_ANONYMOUS_UNION union _DATA_BLOCK_HEADER::@2642 DUMMYUNIONNAME
UCHAR LogicalBlockAddress[4]
Definition: scsi.h:2246
UCHAR AdditionalSenseLength
Definition: scsi.h:2779
UCHAR DescriptorBuffer[ANYSIZE_ARRAY]
Definition: scsi.h:2780
UCHAR Reserved3[3]
Definition: scsi.h:2778
UCHAR AdditionalSenseCodeQualifier
Definition: scsi.h:2777
UCHAR AdditionalSenseCode
Definition: scsi.h:2776
UCHAR LastPossibleLeadOutStartTime[4]
Definition: scsi.h:2210
UCHAR LastSessionLastTrackLsb
Definition: scsi.h:2197
UCHAR MrwStatus
Definition: scsi.h:2198
UCHAR LastSessionFirstTrackMsb
Definition: scsi.h:2206
UCHAR Reserved2
Definition: scsi.h:2200
UCHAR MrwDirtyBit
Definition: scsi.h:2199
OPC_TABLE_ENTRY OPCTable[1]
Definition: scsi.h:2214
UCHAR LastSessionLastTrackMsb
Definition: scsi.h:2207
UCHAR NumberOfSessionsLsb
Definition: scsi.h:2195
UCHAR Reserved4
Definition: scsi.h:2212
UCHAR DiscStatus
Definition: scsi.h:2190
UCHAR FirstTrackNumber
Definition: scsi.h:2194
UCHAR DiscType
Definition: scsi.h:2204
UCHAR NumberOfSessionsMsb
Definition: scsi.h:2205
UCHAR LastSessionStatus
Definition: scsi.h:2191
UCHAR Erasable
Definition: scsi.h:2192
UCHAR LastSessionFirstTrackLsb
Definition: scsi.h:2196
UCHAR DiskIdentification[4]
Definition: scsi.h:2208
UCHAR DiskBarCode[8]
Definition: scsi.h:2211
UCHAR Reserved1
Definition: scsi.h:2193
UCHAR NumberOPCEntries
Definition: scsi.h:2213
UCHAR LastSessionLeadIn[4]
Definition: scsi.h:2209
UCHAR Reserved1
Definition: scsi.h:2222
UCHAR LastSessionLeadIn[4]
Definition: scsi.h:2234
UCHAR NumberOPCEntries
Definition: scsi.h:2238
UCHAR LastSessionLastTrack
Definition: scsi.h:2226
UCHAR DiskStatus
Definition: scsi.h:2219
UCHAR NumberOfSessions
Definition: scsi.h:2224
UCHAR FirstTrackNumber
Definition: scsi.h:2223
UCHAR Reserved4
Definition: scsi.h:2237
OPC_TABLE_ENTRY OPCTable[0]
Definition: scsi.h:2239
UCHAR Reserved2
Definition: scsi.h:2227
UCHAR Reserved3[3]
Definition: scsi.h:2232
UCHAR LastPossibleStartTime[4]
Definition: scsi.h:2235
UCHAR LastSessionFirstTrack
Definition: scsi.h:2225
UCHAR DiskBarCode[8]
Definition: scsi.h:2236
UCHAR Erasable
Definition: scsi.h:2221
UCHAR LastSessionStatus
Definition: scsi.h:2220
UCHAR DiskType
Definition: scsi.h:2231
UCHAR DiskIdentification[4]
Definition: scsi.h:2233
PVOID DeferredRoutine
Definition: storport.h:5695
PVOID DpcData
Definition: storport.h:5699
PVOID DeferredContext
Definition: storport.h:5696
PVOID SystemArgument1
Definition: storport.h:5697
UCHAR Number
Definition: storport.h:5688
CSHORT Type
Definition: storport.h:5687
PVOID SystemArgument2
Definition: storport.h:5698
UCHAR Importance
Definition: storport.h:5689
Definition: storport.h:4912
UCHAR BufferFormat
Definition: storport.h:4914
UCHAR SupportedBufferId
Definition: storport.h:4913
UCHAR MaxAvailableLength[4]
Definition: storport.h:4918
UCHAR Reserved1
Definition: storport.h:4917
UCHAR BufferSource
Definition: storport.h:4915
UCHAR Reserved0
Definition: storport.h:4916
ERROR_HISTORY_DIRECTORY_ENTRY ErrorHistoryDirectoryList[ANYSIZE_ARRAY]
Definition: storport.h:4931
FORMATTED_CAPACITY_DESCRIPTOR Descriptors[0]
Definition: scsi.h:2180
UCHAR NumberOfBlocks[4]
Definition: scsi.h:2149
UCHAR FormatSubType
Definition: scsi.h:2150
UCHAR BlockLength[3]
Definition: scsi.h:2152
UCHAR FormatType
Definition: scsi.h:2151
FORMAT_DESCRIPTOR Descriptors[0]
Definition: scsi.h:2166
UCHAR VendorSpecific
Definition: scsi.h:2157
UCHAR FormatDescriptorLength[2]
Definition: cdrw_hw.h:1909
UCHAR Byte0
Definition: tools.h:16
UCHAR Byte1
Definition: tools.h:17
UCHAR Byte2
Definition: tools.h:18
UCHAR Byte3
Definition: tools.h:19
ULONG AsULong
Definition: scsi.h:3485
_Field_range_(FREE_DUMP_INFO_SIGNATURE, FREE_DUMP_INFO_SIGNATURE) ULONG Signature
_Field_range_(GET_DUMP_INFO_VERSION_1, GET_DUMP_INFO_VERSION_1) ULONG Version
_Field_range_(GET_DUMP_INFO_SIGNATURE_EXT, GET_DUMP_INFO_SIGNATURE_EXT) ULONG Signature
_Field_size_bytes_(DiskCount *AddressSize) UCHAR Addresses[ANYSIZE_ARRAY]
PHW_INITIALIZE_TRACING HwInitializeTracing
Definition: storport.h:7283
PHW_CLEANUP_TRACING HwCleanupTracing
Definition: storport.h:7284
USHORT ReservedUshort
Definition: srb.h:588
PHW_INTERRUPT HwInterrupt
Definition: srb.h:569
PHW_COMPLETE_SERVICE_IRP HwCompleteServiceIrp
Definition: storport.h:7282
PHW_ADAPTER_CONTROL HwAdapterControl
Definition: srb.h:777
BOOLEAN TaggedQueuing
Definition: srb.h:582
BOOLEAN ReceiveEvent
Definition: srb.h:585
PHW_ADAPTER_STATE HwAdapterState
Definition: srb.h:573
PHW_DMA_STARTED HwDmaStarted
Definition: srb.h:572
USHORT PortVersionFlags
Definition: srb.h:773
BOOLEAN AutoRequestSense
Definition: srb.h:583
PHW_RESET_BUS HwResetBus
Definition: srb.h:571
USHORT VendorIdLength
Definition: srb.h:586
PHW_NAMESPACE_CONTROL HwNamespaceControl
Definition: storport.h:7294
PHW_STARTIO HwStartIo
Definition: srb.h:568
PHW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest
Definition: storport.h:7281
PHW_NVME_ADAPTER_CONTROL HwNvmeAdapterControl
Definition: storport.h:7273
BOOLEAN MultipleRequestPerLu
Definition: srb.h:584
BOOLEAN NeedPhysicalAddresses
Definition: srb.h:581
PHW_FREE_ADAPTER_RESOURCES HwFreeAdapterResources
Definition: storport.h:7280
PHW_TRACING_ENABLED HwTracingEnabled
Definition: storport.h:7285
ULONG SpecificLuExtensionSize
Definition: srb.h:575
ULONG SrbExtensionSize
Definition: srb.h:576
ULONG HwInitializationDataSize
Definition: srb.h:550
PHW_BUILDIO HwBuildIo
Definition: storport.h:7278
USHORT DeviceIdLength
Definition: srb.h:589
PHW_INITIALIZE HwInitialize
Definition: srb.h:567
ULONG DeviceExtensionSize
Definition: srb.h:574
PHW_UNIT_CONTROL HwUnitControl
Definition: storport.h:7293
INTERFACE_TYPE AdapterInterfaceType
Definition: srb.h:565
ULONG NumberOfAccessRanges
Definition: srb.h:577
UCHAR Versions
Definition: cdrw_hw.h:1120
UCHAR CommandQueue
Definition: cdrw_hw.h:1125
UCHAR NormACA
Definition: minitape.h:92
UCHAR TransferDisable
Definition: minitape.h:107
UCHAR MultiPort
Definition: minitape.h:101
UCHAR Synchronous
Definition: cdrw_hw.h:1128
UCHAR Addr32
Definition: minitape.h:98
UCHAR Reserved2
Definition: cdrw_hw.h:1126
UCHAR ECMAVersion
Definition: minitape.h:86
UCHAR RemovableMedia
Definition: cdrw_hw.h:1119
UCHAR AERC
Definition: minitape.h:94
UCHAR ProductId[16]
Definition: cdrw_hw.h:1133
UCHAR ReservedBit3
Definition: minitape.h:104
UCHAR LinkedCommands
Definition: cdrw_hw.h:1127
UCHAR ProductRevisionLevel[4]
Definition: cdrw_hw.h:1134
UCHAR DeviceTypeModifier
Definition: cdrw_hw.h:1118
UCHAR TerminateTask
Definition: minitape.h:93
UCHAR AckReqQ
Definition: minitape.h:99
UCHAR ISOVersion
Definition: minitape.h:87
UCHAR EnclosureServices
Definition: minitape.h:103
UCHAR RelativeAddressing
Definition: cdrw_hw.h:1131
UCHAR Wide16Bit
Definition: cdrw_hw.h:1129
UCHAR ReservedBit2
Definition: minitape.h:102
UCHAR Wide32Bit
Definition: cdrw_hw.h:1130
UCHAR VendorId[8]
Definition: cdrw_hw.h:1132
UCHAR ResponseDataFormat
Definition: cdrw_hw.h:1121
UCHAR Reserved[2]
Definition: cdrw_hw.h:1123
UCHAR DeviceType
Definition: cdrw_hw.h:1116
UCHAR DeviceTypeQualifier
Definition: cdrw_hw.h:1117
UCHAR Addr16
Definition: minitape.h:97
UCHAR MediumChanger
Definition: minitape.h:100
UCHAR VendorSpecific[20]
Definition: cdrw_hw.h:1135
UCHAR HiSupport
Definition: minitape.h:91
UCHAR SoftReset
Definition: cdrw_hw.h:1124
UCHAR ANSIVersion
Definition: minitape.h:85
UCHAR AdditionalLength
Definition: cdrw_hw.h:1122
UCHAR Reserved3[40]
Definition: cdrw_hw.h:1136
UCHAR Reserved2[3]
Definition: scsi.h:2823
ULONGLONG StartingLBA
Definition: scsi.h:2819
UCHAR ProvisioningStatus
Definition: scsi.h:2821
ULONG LogicalBlockCount
Definition: scsi.h:2820
LBA_STATUS_DESCRIPTOR Descriptors[0]
Definition: scsi.h:2829
UCHAR SPF
Definition: scsi.h:3393
UCHAR PageCode
Definition: scsi.h:3392
UCHAR DS
Definition: scsi.h:3394
UCHAR SubPageCode
Definition: scsi.h:3395
UCHAR PageLength[2]
Definition: scsi.h:3396
UCHAR ParameterLength
Definition: scsi.h:3331
UCHAR ParameterCode[2]
Definition: scsi.h:3319
UCHAR FormatAndLinking
Definition: scsi.h:3323
LOG_PARAMETER_HEADER Header
Definition: scsi.h:3413
struct _LOG_PARAMETER::@2668::_TEMPERATURE TEMPERATURE
struct _LOG_PARAMETER::@2668::_SELF_TEST_RESULTS SELF_TEST_RESULTS
UCHAR AsByte[0]
Definition: scsi.h:3338
struct _LOG_PARAMETER::@2668::_DATE_OF_MANUFACTURE DATE_OF_MANUFACTURE
struct _LOG_PARAMETER::@2668::_INFORMATIONAL_EXCEPTIONS INFORMATIONAL_EXCEPTIONS
struct _LOG_PARAMETER::@2668::_THRESHOLD_RESOURCE_COUNT THRESHOLD_RESOURCE_COUNT
LOG_PARAMETER_HEADER Header
Definition: scsi.h:3335
struct _LOG_PARAMETER::@2668::_SOLID_STATE_MEDIA SOLID_STATE_MEDIA
struct _LOG_PARAMETER::@2668::_BACKGROUND_SCAN_STATUS BACKGROUND_SCAN_STATUS
UCHAR LunListLength[4]
Definition: scsi.h:3223
UCHAR Lun[0][8]
Definition: scsi.h:3225
MECHANICAL_STATUS_INFORMATION_HEADER MechanicalStatusHeader
Definition: cdrw_hw.h:3178
SLOT_TABLE_INFORMATION SlotTableInfo[1]
Definition: cdrw_hw.h:3179
PUCHAR VirtualBase
Definition: storport.h:5559
PHYSICAL_ADDRESS PhysicalBase
Definition: storport.h:5560
STOR_PHYSICAL_ADDRESS MessageAddress
Definition: storport.h:5786
KINTERRUPT_MODE InterruptMode
Definition: storport.h:5789
DATA_TYPE Type
Definition: storport.h:6495
USHORT ArrayLength
Definition: storport.h:6497
_Field_range_(MINIPORT_DUMP_INFO_SIGNATURE, MINIPORT_DUMP_INFO_SIGNATURE) ULONG Signature
UCHAR Reserved0[4]
Definition: storport.h:6576
ACCESS_RANGE(* AccessRanges)[]
Definition: storport.h:6956
WCHAR DriverName[DUMP_MINIPORT_NAME_LENGTH]
Definition: storport.h:6943
INTERFACE_TYPE AdapterInterfaceType
Definition: storport.h:6951
struct _ADAPTER_OBJECT * AdapterObject
Definition: storport.h:6944
ULONG NumberOfAdditionalNic
Definition: storport.h:6934
UCHAR WriteRetensionPriority
Definition: storport.h:5023
UCHAR DisablePrefetchTransfer[2]
Definition: storport.h:5025
UCHAR CacheSegmentSize[2]
Definition: storport.h:5036
UCHAR MaximumPrefetch[2]
Definition: storport.h:5027
UCHAR MaximumPrefetchCeiling[2]
Definition: storport.h:5028
UCHAR CachingAnalysisPermitted
Definition: storport.h:5020
UCHAR MinimumPrefetch[2]
Definition: storport.h:5026
UCHAR LogicalBlockCacheSegmentSize
Definition: storport.h:5033
UCHAR MultiplicationFactor
Definition: cdrw_hw.h:2778
UCHAR Reserved
Definition: scsi.h:2891
UCHAR WriteCacheEnable
Definition: cdrw_hw.h:2779
UCHAR MinimumPrefetch[2]
Definition: cdrw_hw.h:2786
UCHAR WriteRetensionPriority
Definition: cdrw_hw.h:2782
UCHAR ReadRetensionPriority
Definition: cdrw_hw.h:2783
UCHAR MaximumPrefetchCeiling[2]
Definition: cdrw_hw.h:2788
UCHAR DisablePrefetchTransfer[2]
Definition: cdrw_hw.h:2785
UCHAR ReadDisableCache
Definition: cdrw_hw.h:2777
UCHAR MaximumPrefetch[2]
Definition: cdrw_hw.h:2787
T2_COMMAND_DURATION_LIMIT_DESCRIPTOR T2CommandDurationLimitDescriptors[DURATION_LIMIT_T2_DESCRIPTOR_COUNT]
Definition: storport.h:5069
T2_COMMAND_DURATION_LIMIT_DESCRIPTOR T2CommandDurationLimitDescriptors[DURATION_LIMIT_T2_DESCRIPTOR_COUNT]
Definition: storport.h:5082
UCHAR ExtendeSelfTestCompletionTime[2]
Definition: scsi.h:3459
UCHAR AutoloadMode
Definition: scsi.h:3451
UCHAR TMF_ONLY
Definition: scsi.h:3440
UCHAR Obsolete2
Definition: scsi.h:3446
UCHAR Obsolete1
Definition: scsi.h:3442
UCHAR PageLength
Definition: scsi.h:3435
UCHAR Reserved2
Definition: scsi.h:3452
UCHAR PageSavable
Definition: scsi.h:3434
UCHAR Reserved1
Definition: scsi.h:3433
UCHAR Obsolete3[2]
Definition: scsi.h:3457
UCHAR BusyTimeoutPeriod[2]
Definition: scsi.h:3458
UCHAR QueueAlgorithmModifier
Definition: scsi.h:3445
UCHAR UA_INTLCK_CTRL
Definition: scsi.h:3448
UCHAR PageCode
Definition: scsi.h:3432
UCHAR Reserved2[3]
Definition: scsi.h:2886
UCHAR BusConnectTime[2]
Definition: scsi.h:2883
UCHAR BusDisconnectTime[2]
Definition: scsi.h:2882
UCHAR BufferEmptyRatio
Definition: scsi.h:2880
UCHAR MaximumBurstSize[2]
Definition: scsi.h:2884
UCHAR DataTransferDisconnect
Definition: scsi.h:2885
UCHAR BusInactivityLimit[2]
Definition: scsi.h:2881
UCHAR BufferFullRatio
Definition: scsi.h:2879
UCHAR StepPlusePerCyclynder
Definition: scsi.h:2967
UCHAR HeadSettleDelay[2]
Definition: scsi.h:2960
UCHAR NumberOfCylinders[2]
Definition: scsi.h:2955
UCHAR BytesPerSector[2]
Definition: scsi.h:2954
UCHAR MediumRotationRate[2]
Definition: scsi.h:2976
UCHAR StartReducedCurrent[2]
Definition: scsi.h:2957
UCHAR TransferRate[2]
Definition: scsi.h:2951
UCHAR StartWritePrecom[2]
Definition: scsi.h:2956
UCHAR SurfaceFirst
Definition: scsi.h:2995
UCHAR HardSectorFormating
Definition: scsi.h:2997
UCHAR PageLength
Definition: scsi.h:2984
UCHAR Reserved2
Definition: scsi.h:2994
UCHAR CylinderSkewFactor[2]
Definition: scsi.h:2993
UCHAR PageSavable
Definition: scsi.h:2983
UCHAR SectorsPerTrack[2]
Definition: scsi.h:2989
UCHAR Interleave[2]
Definition: scsi.h:2991
UCHAR TrackSkewFactor[2]
Definition: scsi.h:2992
UCHAR TracksPerZone[2]
Definition: scsi.h:2985
UCHAR RemovableMedia
Definition: scsi.h:2996
UCHAR BytesPerPhysicalSector[2]
Definition: scsi.h:2990
UCHAR AlternateTracksPerZone[2]
Definition: scsi.h:2987
UCHAR AlternateTracksPerLogicalUnit[2]
Definition: scsi.h:2988
UCHAR Reserved3[3]
Definition: scsi.h:2999
UCHAR AlternateSectorsPerZone[2]
Definition: scsi.h:2986
UCHAR SoftSectorFormating
Definition: scsi.h:2998
UCHAR Reserved
Definition: scsi.h:2982
UCHAR PageCode
Definition: scsi.h:2981
_ANONYMOUS_STRUCT struct _MODE_INFO_EXCEPTIONS::@2657::@2658 DUMMYSTRUCTNAME
UCHAR ReportCount[4]
Definition: scsi.h:3075
UCHAR IntervalTimer[4]
Definition: scsi.h:3074
_ANONYMOUS_UNION union _MODE_INFO_EXCEPTIONS::@2657 DUMMYUNIONNAME
UCHAR PageSavable
Definition: scsi.h:2938
UCHAR Reserved2
Definition: cdrw_hw.h:3189
UCHAR Reserved3[4]
Definition: cdrw_hw.h:3195
UCHAR PageCode
Definition: cdrw_hw.h:3183
UCHAR Reserved1
Definition: cdrw_hw.h:3184
UCHAR Reserved
Definition: scsi.h:2937
UCHAR PageLength
Definition: cdrw_hw.h:3187
UCHAR LbaSpace
Definition: scsi.h:2941
UCHAR BlockLength[3]
Definition: cdrw_hw.h:2531
UCHAR NumberOfBlocks[3]
Definition: cdrw_hw.h:2529
UCHAR BlockDescriptorLength[2]
Definition: cdrw_hw.h:2516
UCHAR DeviceSpecificParameter
Definition: cdrw_hw.h:2507
MODE_PARAMETER_HEADER ParameterListHeader
Definition: cdrw_hw.h:2536
MODE_PARAMETER_BLOCK ParameterListBlock
Definition: cdrw_hw.h:2537
UCHAR RotationalPositionLock
Definition: scsi.h:3013
UCHAR DriveStepRate[2]
Definition: scsi.h:3011
UCHAR NumberOfCylinders[3]
Definition: scsi.h:3007
UCHAR StartReducedCurrent[3]
Definition: scsi.h:3010
UCHAR StartWritePrecom[3]
Definition: scsi.h:3009
UCHAR LandZoneCyclinder[3]
Definition: scsi.h:3012
_ANONYMOUS_UNION union _NOTIFICATION_MEDIA_STATUS::@2640 DUMMYUNIONNAME
_ANONYMOUS_STRUCT struct _NOTIFICATION_MEDIA_STATUS::@2640::@2641 DUMMYSTRUCTNAME
Definition: scsi.h:2183
UCHAR OPCValue[6]
Definition: scsi.h:2185
UCHAR Speed[2]
Definition: scsi.h:2184
UCHAR InitializationPatternLength[2]
Definition: storport.h:4977
UCHAR InitializationPattern[ANYSIZE_ARRAY]
Definition: storport.h:4979
UCHAR WriteRotationControl
Definition: scsi.h:2339
UCHAR WriteTime[4]
Definition: scsi.h:2347
UCHAR WriteSize[4]
Definition: scsi.h:2346
PGROUP_AFFINITY MessageTargets
Definition: storport.h:5771
ULONG FirstRedirectionMessageNumber
Definition: storport.h:5767
ULONG LastRedirectionMessageNumber
Definition: storport.h:5768
PHYSICAL_ELEMENT_STATUS_DATA_DESCRIPTOR Descriptors[ANYSIZE_ARRAY]
Definition: storport.h:4908
ACCESS_RANGE(* AccessRanges)[]
Definition: srb.h:74
BOOLEAN AtdiskSecondaryClaimed
Definition: srb.h:83
BOOLEAN BufferAccessScsiPortControlled
Definition: srb.h:94
KINTERRUPT_MODE InterruptMode
Definition: srb.h:64
INTERFACE_TYPE AdapterInterfaceType
Definition: srb.h:59
KINTERRUPT_MODE InterruptMode2
Definition: srb.h:101
STOR_SYNCHRONIZATION_MODEL SynchronizationModel
Definition: storport.h:5632
INTERRUPT_SYNCHRONIZATION_MODE InterruptSynchronizationMode
Definition: storport.h:5634
PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE HwMSInterruptRoutine
Definition: storport.h:5633
UCHAR ChannelSelection
Definition: scsi.h:3234
UCHAR Volume
Definition: scsi.h:3235
UCHAR IdleTimer[4]
Definition: scsi.h:3087
UCHAR StandbyTimer[4]
Definition: scsi.h:3088
UCHAR AdditionalLength[4]
Definition: scsi.h:2684
UCHAR Generation[4]
Definition: scsi.h:2683
UCHAR ReservationKeyList[0][8]
Definition: scsi.h:2685
UCHAR ScopeSpecificAddress[4]
Definition: scsi.h:2690
UCHAR Generation[4]
Definition: scsi.h:2698
PRI_RESERVATION_DESCRIPTOR Reservations[0]
Definition: scsi.h:2700
UCHAR AdditionalLength[4]
Definition: scsi.h:2699
UCHAR ReservationKey[8]
Definition: scsi.h:2704
UCHAR Obsolete[2]
Definition: scsi.h:2710
UCHAR ActivatePersistThroughPowerLoss
Definition: scsi.h:2707
UCHAR ScopeSpecificAddress[4]
Definition: scsi.h:2706
UCHAR ServiceActionReservationKey[8]
Definition: scsi.h:2705
UCHAR BlockMinimumSize[2]
Definition: scsi.h:2840
UCHAR BlockMaximumSize[3]
Definition: scsi.h:2839
UCHAR Reserved
Definition: scsi.h:2838
UCHAR AvailableBufferSize[4]
Definition: scsi.h:2849
UCHAR TotalBufferSize[4]
Definition: scsi.h:2848
UCHAR ProtectionInfoExponent
Definition: scsi.h:2810
UCHAR ProtectionType
Definition: scsi.h:2806
UCHAR LogicalPerPhysicalExponent
Definition: scsi.h:2809
UCHAR LowestAlignedBlock_MSB
Definition: scsi.h:2811
UCHAR LowestAlignedBlock_LSB
Definition: scsi.h:2814
UCHAR Reserved3[16]
Definition: scsi.h:2815
UCHAR ProtectionEnable
Definition: scsi.h:2805
ULONGLONG LogicalBlockAddress
Definition: scsi.h:1431
LARGE_INTEGER LogicalBlockAddress
Definition: scsi.h:2795
ULONG LogicalBlockAddress
Definition: cdrw_hw.h:1471
UCHAR Reserved3[48]
Definition: storport.h:4885
UCHAR Reserved2[3]
Definition: storport.h:4883
UCHAR ZoneListLength[4]
Definition: storport.h:4880
ZONE_DESCRIPTIOR ZoneDescriptors[ANYSIZE_ARRAY]
Definition: storport.h:4887
UCHAR SavedInternalStatusData[ANYSIZE_ARRAY]
Definition: storport.h:4961
union _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS ExtendedArguments
PVOID SenseInfoBuffer
Definition: srb.h:436
ULONG DataTransferLength
Definition: srb.h:433
UCHAR PnPSubFunction
Definition: srb.h:427
STOR_PNP_ACTION PnPAction
Definition: srb.h:431
UCHAR Reserved4[16]
Definition: srb.h:444
struct _SCSI_REQUEST_BLOCK * NextSrb
Definition: srb.h:437
PVOID OriginalRequest
Definition: srb.h:438
STOR_POWER_ACTION PowerAction
Definition: srb.h:392
UCHAR Reserved5[16]
Definition: srb.h:396
struct _SCSI_REQUEST_BLOCK * NextSrb
Definition: srb.h:389
ULONG DataTransferLength
Definition: srb.h:385
STOR_DEVICE_POWER_STATE DevicePowerState
Definition: srb.h:383
UCHAR QueueTag
Definition: srb.h:256
ULONG TimeOutValue
Definition: srb.h:262
UCHAR TargetId
Definition: srb.h:254
PVOID OriginalRequest
Definition: srb.h:266
UCHAR SenseInfoBufferLength
Definition: srb.h:259
PVOID DataBuffer
Definition: srb.h:263
UCHAR PathId
Definition: srb.h:253
UCHAR QueueAction
Definition: srb.h:257
UCHAR CdbLength
Definition: srb.h:258
UCHAR Cdb[16]
Definition: srb.h:279
PVOID SenseInfoBuffer
Definition: srb.h:264
ULONG QueueSortKey
Definition: srb.h:270
UCHAR Function
Definition: srb.h:250
UCHAR ScsiStatus
Definition: srb.h:252
ULONG DataTransferLength
Definition: srb.h:261
PVOID SrbExtension
Definition: srb.h:267
ULONG InternalStatus
Definition: srb.h:269
struct _SCSI_REQUEST_BLOCK * NextSrb
Definition: srb.h:265
ULONG SrbFlags
Definition: srb.h:260
USHORT Length
Definition: srb.h:249
UCHAR SrbStatus
Definition: srb.h:251
ULONG LinkTimeoutValue
Definition: srb.h:319
SCSI_SENSE_DESCRIPTOR_HEADER Header
Definition: scsi.h:2753
SCSI_SENSE_DESCRIPTOR_HEADER Header
Definition: scsi.h:2745
SCSI_SENSE_DESCRIPTOR_HEADER Header
Definition: scsi.h:2737
OUT BOOLEAN SupportedTypeList[0]
Definition: srb.h:221
UCHAR WMISubFunction
Definition: srb.h:292
UCHAR Reserved5[16]
Definition: srb.h:308
UCHAR Reserved2[2]
Definition: srb.h:298
ULONG DataTransferLength
Definition: srb.h:300
PVOID OriginalRequest
Definition: srb.h:305
UCHAR AdditionalSenseLength
Definition: cdrw_hw.h:1173
UCHAR AdditionalSenseCode
Definition: cdrw_hw.h:1175
UCHAR Reserved
Definition: cdrw_hw.h:1168
UCHAR FileMark
Definition: cdrw_hw.h:1171
UCHAR FieldReplaceableUnitCode
Definition: cdrw_hw.h:1177
UCHAR SenseKeySpecific[3]
Definition: cdrw_hw.h:1178
UCHAR ErrorCode
Definition: cdrw_hw.h:1164
UCHAR AdditionalSenseCodeQualifier
Definition: cdrw_hw.h:1176
UCHAR EndOfMedia
Definition: cdrw_hw.h:1170
UCHAR SegmentNumber
Definition: cdrw_hw.h:1166
UCHAR IncorrectLength
Definition: cdrw_hw.h:1169
UCHAR SenseKey
Definition: cdrw_hw.h:1167
UCHAR Valid
Definition: cdrw_hw.h:1165
UCHAR CommandSpecificInformation[4]
Definition: cdrw_hw.h:1174
_Field_size_bytes_full_(DataInTransferLength) PVOID POINTER_ALIGN DataInBuffer
_Field_range_(SrbExDataTypeBidirectional, SrbExDataTypeBidirectional) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_BIDIRECTIONAL_LENGTH, SRBEX_DATA_BIDIRECTIONAL_LENGTH) ULONG Length
_Field_range_(SRBEX_DATA_IO_INFO_LENGTH, SRBEX_DATA_IO_INFO_LENGTH) ULONG Length
_Field_range_(SrbExDataTypeIoInfo, SrbExDataTypeIoInfo) SRBEXDATATYPE Type
_Field_range_(SrbExDataTypeMiniportPassthrough, SrbExDataTypeMiniportPassthrough) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_MINIPORT_PASSTHROUGH_LENGTH, SRBEX_DATA_MINIPORT_PASSTHROUGH_LENGTH) ULONG Length
_Field_range_(SrbExDataTypeNvmeofOperation, SrbExDataTypeNvmeofOperation) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_NVMEOF_OPERATION_LENGTH, SRBEX_DATA_NVMEOF_OPERATION_LENGTH) ULONG Length
_Field_range_(STOR_NVMEOF_OPERATION_V1, STOR_NVMEOF_OPERATION_V1) USHORT Version
_Field_range_(SRBEX_DATA_NVME_COMMAND_LENGTH, SRBEX_DATA_NVME_COMMAND_LENGTH) ULONG Length
_Field_range_(SrbExDataTypeNvmeCommand, SrbExDataTypeNvmeCommand) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_PNP_LENGTH, SRBEX_DATA_PNP_LENGTH) ULONG Length
_Field_range_(SrbExDataTypePnP, SrbExDataTypePnP) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_POWER_LENGTH, SRBEX_DATA_POWER_LENGTH) ULONG Length
_Field_range_(SrbExDataTypePower, SrbExDataTypePower) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_SCSI_CDB16_LENGTH, SRBEX_DATA_SCSI_CDB16_LENGTH) ULONG Length
_Field_size_bytes_full_(SenseInfoBufferLength) PVOID POINTER_ALIGN SenseInfoBuffer
_Field_range_(SrbExDataTypeScsiCdb16, SrbExDataTypeScsiCdb16) SRBEXDATATYPE Type
_Field_range_(SrbExDataTypeScsiCdb32, SrbExDataTypeScsiCdb32) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_SCSI_CDB32_LENGTH, SRBEX_DATA_SCSI_CDB32_LENGTH) ULONG Length
_Field_size_bytes_full_(SenseInfoBufferLength) PVOID POINTER_ALIGN SenseInfoBuffer
_Field_size_bytes_full_(CdbLength) UCHAR POINTER_ALIGN Cdb[ANYSIZE_ARRAY]
_Field_range_(SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MIN, SRBEX_DATA_SCSI_CDB_VAR_LENGTH_MAX) ULONG Length
_Field_size_bytes_full_(SenseInfoBufferLength) PVOID POINTER_ALIGN SenseInfoBuffer
_Field_range_(SrbExDataTypeScsiCdbVar, SrbExDataTypeScsiCdbVar) SRBEXDATATYPE Type
_Field_range_(SrbExDataTypeWmi, SrbExDataTypeWmi) SRBEXDATATYPE Type
_Field_range_(SRBEX_DATA_WMI_LENGTH, SRBEX_DATA_WMI_LENGTH) ULONG Length
_Field_size_bytes_(Length) UCHAR Data[ANYSIZE_ARRAY]
PROCESSOR_NUMBER InitiatingProcessor
Definition: storport.h:6238
_Field_range_(SRB_FUNCTION_STORAGE_REQUEST_BLOCK, SRB_FUNCTION_STORAGE_REQUEST_BLOCK) UCHAR Function
STORPORT_LIVEDUMP_ISSUE_TYPE IssueType
Definition: storport.h:6539
STORPORT_LIVEDUMP_DATA_TYPE DataType
Definition: storport.h:6541
STORPORT_CAPTURE_LIVEDUMP_TYPE LiveDumpType
Definition: storport.h:6538
PStorPortAllocatePool AllocatePool
Definition: storport.h:7230
PStorPortGetSystemAddress GetSystemAddress
Definition: storport.h:7231
PStorPortFreePool FreePool
Definition: storport.h:7229
PStorPortPutScatterGatherList PutScatterGatherList
Definition: storport.h:7227
PStorPortGetMessageInterruptInformation GetMessageInterruptInformation
Definition: storport.h:7226
PStorPortBuildScatterGatherList BuildScatterGatherList
Definition: storport.h:7228
UCHAR BucketId[STORPORT_LIVEDUMP_BUCKET_ID_LENGTH]
Definition: storport.h:6527
_Field_size_bytes_(EventBufferLength) PUCHAR EventBuffer
UCHAR ParameterName1[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6454
UCHAR ParameterName0[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6452
UCHAR ParameterName6[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6464
UCHAR ParameterName4[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6460
UCHAR ParameterName7[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6466
UCHAR EventName[EVENT_NAME_MAX_LENGTH]
Definition: storport.h:6445
UCHAR ParameterName3[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6458
_Field_range_(0, EVENT_BUFFER_MAX_LENGTH) ULONG EventBufferLength
UCHAR ParameterName5[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6462
UCHAR ParameterName2[EVENT_MAX_PARAM_NAME_LEN]
Definition: storport.h:6456
STOR_POWER_ACTION PowerAction
Definition: storport.h:5911
STOR_POWER_CONTROL_HEADER Header
Definition: storport.h:5910
STOR_DEVICE_POWER_STATE PowerState
Definition: storport.h:5912
_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
ULONG NamespaceId
Definition: storport.h:2316
_Field_range_(STOR_ADDR_NVME_ADDRESS_LENGTH, STOR_ADDR_NVME_ADDRESS_LENGTH) ULONG AddressLength
_Field_range_(STOR_ADDRESS_TYPE_NVME, STOR_ADDRESS_TYPE_NVME) USHORT Type
PVOID Controller
Definition: storport.h:2315
_Field_size_(NumCryptoCapabilities) STOR_CRYPTO_CAPABILITY CryptoCapabilities[ANYSIZE_ARRAY]
STORAGE_CRYPTO_ALGORITHM_ID AlgorithmId
Definition: storport.h:6873
STORAGE_SECURITY_COMPLIANCE_BITMASK SecurityComplianceBitmask
Definition: storport.h:6879
STORAGE_CRYPTO_KEY_SIZE KeySize
Definition: storport.h:6874
PHYSICAL_ADDRESS KeyPhysicalAddress
Definition: storport.h:6174
STOR_CRYPTO_OPERATION_TYPE OperationType
Definition: storport.h:6157
volatile LONG Lock
Definition: storport.h:6347
STOR_LIST_ENTRY WaitListHead
Definition: storport.h:6350
struct _STOR_DISPATCHER_HEADER::@2746::@2748 Data
ULONG_PTR Lock
Definition: storport.h:5705
DPC_BUFFER Dpc
Definition: storport.h:5704
STOR_DISPATCHER_HEADER Header
Definition: storport.h:6355
PSTOR_EXT_DELETE_CALLBACK DeleteCallback
Definition: storport.h:6228
PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementsList
Definition: storport.h:6015
UCHAR FruId[STOR_FRU_ID_MAX_LENGTH+1]
Definition: storport.h:6113
PSTOR_ADDRESS Address
Definition: storport.h:6112
STOR_AFFINITY Mask
Definition: storport.h:6324
Definition: storport.h:6313
struct _STOR_LIST_ENTRY * Blink
Definition: storport.h:6315
struct _STOR_LIST_ENTRY * Flink
Definition: storport.h:6314
STOR_SPINLOCK Lock
Definition: storport.h:5710
struct _STOR_LOCK_HANDLE::@2743::@2744 LockQueue
struct _STOR_LOCK_HANDLE::@2743 Context
BOOLEAN StorportSpecificErrorCode
Definition: storport.h:5731
STOR_EVENT_ASSOCIATION_ENUM EventAssociation
Definition: storport.h:5727
STOR_POWER_CONTROL_HEADER Header
Definition: storport.h:5939
STOR_POFX_PERF_STATE_TYPE PStateType
Definition: storport.h:6735
struct _STOR_POFX_COMPONENT_PERF_SET::@2753::@2755 Range
union _STOR_POFX_COMPONENT_PERF_SET::@2753 PStates
struct _STOR_POFX_COMPONENT_PERF_SET::@2753::@2754 Discrete
STOR_POFX_PERF_STATE_UNIT PStateUnit
Definition: storport.h:6734
ULONG DeepestAdapterPowerRequiredFState
Definition: storport.h:6657
ULONG DeepestCrashDumpReadyFState
Definition: storport.h:6658
_Field_size_full_(FStateCount) STOR_POFX_COMPONENT_IDLE_STATE FStates[ANYSIZE_ARRAY]
_Field_size_full_(FStateCount) STOR_POFX_COMPONENT_IDLE_STATE FStates[ANYSIZE_ARRAY]
ULONG DeepestWakeableFState
Definition: storport.h:6638
ULONG UnitMinIdleTimeoutInMS
Definition: storport.h:6693
ULONG AdapterIdleTimeoutInMS
Definition: storport.h:6694
_Field_size_full_(ComponentCount) STOR_POFX_COMPONENT Components[ANYSIZE_ARRAY]
ULONG UnitMinIdleTimeoutInMS
Definition: storport.h:6773
ULONG MinimumPowerCyclePeriodInMS
Definition: storport.h:6776
ULONG AdapterIdleTimeoutInMS
Definition: storport.h:6774
_Field_size_full_(ComponentCount) STOR_POFX_COMPONENT Components[ANYSIZE_ARRAY]
_Field_size_full_(ComponentCount) STOR_POFX_COMPONENT Components[ANYSIZE_ARRAY]
ULONG ComponentCount
Definition: storport.h:6673
STOR_POWER_CONTROL_HEADER Header
Definition: storport.h:5947
STOR_POWER_CONTROL_HEADER Header
Definition: storport.h:5955
STOR_POWER_CONTROL_HEADER Header
Definition: storport.h:5932
STOR_POWER_CONTROL_HEADER Header
Definition: storport.h:5925
_Field_size_bytes_(ValueLength) PVOID Value
INTERNAL_DATA_SCOPE Scope
Definition: storport.h:6132
STOR_IO_PRIORITY_HINT PriorityHint
Definition: storport.h:5820
STOR_IO_PRIORITY_HINT PriorityHint
Definition: storport.h:5837
PSTOR_UNICODE_STRING FileName
Definition: storport.h:5843
CHAR ModelNumber[STOR_MODEL_NUMBER_LENGTH+1]
Definition: storport.h:6092
CHAR FirmwareRevision[STOR_FIRMWARE_REVISION_LENGTH+1]
Definition: storport.h:6093
CHAR VendorId[STOR_VENDOR_ID_LENGTH+1]
Definition: storport.h:6091
CHAR FirmwareRevision[STOR_FIRMWARE_REVISION_LENGTH+1]
Definition: storport.h:6082
CHAR VendorId[STOR_VENDOR_ID_LENGTH+1]
Definition: storport.h:6080
CHAR ModelNumber[STOR_MODEL_NUMBER_LENGTH+1]
Definition: storport.h:6081
STOR_RPMB_FRAME_TYPE FrameFormat
Definition: storport.h:6563
STOR_PHYSICAL_ADDRESS PhysicalAddress
Definition: storport.h:5673
UCHAR SerialNumber[STOR_SERIAL_NUMBER_MAX_SIZE]
Definition: storport.h:6047
STORPORT_ETW_EVENT_CHANNEL Channel
Definition: storport.h:6427
Definition: storport.h:6295
struct _STOR_SLIST_ENTRY * Next
Definition: storport.h:6296
RAID_SYSTEM_POWER SystemPower
Definition: storport.h:5999
PSTOR_ADDRESS Address
Definition: storport.h:6064
SCSI_UC_DEVICE_USAGE_TYPE UsageType
Definition: storport.h:6065
_Field_size_bytes_part_(MaximumLength, Length) PWCH Buffer
ULONG DeviceAttentionSupported
Definition: storport.h:5851
ULONG AsyncNotificationSupported
Definition: storport.h:5852
PSTOR_ADDRESS Address
Definition: storport.h:5917
STOR_POWER_ACTION PowerAction
Definition: storport.h:5918
STOR_DEVICE_POWER_STATE PowerState
Definition: storport.h:5919
PNVME_ICE_ENTRY NvmeIceEntry
Definition: storport.h:6196
UCHAR NumberOfBlocks[3]
Definition: scsi.h:3284
UCHAR PartitionNumber
Definition: scsi.h:3279
UCHAR EndOfPartition
Definition: scsi.h:3277
UCHAR NumberOfBytes[4]
Definition: scsi.h:3285
UCHAR BeginningOfPartition
Definition: scsi.h:3278
UCHAR LastBlock[4]
Definition: scsi.h:3282
UCHAR BlockPositionUnsupported
Definition: scsi.h:3275
UCHAR FirstBlock[4]
Definition: scsi.h:3281
USHORT Reserved3
Definition: scsi.h:3280
UCHAR NextWritableAddress[4]
Definition: scsi.h:2296
UCHAR TrackNumberLsb
Definition: scsi.h:2280
UCHAR FixedPacketSize[4]
Definition: scsi.h:2298
UCHAR LastRecordedAddress[4]
Definition: scsi.h:2300
UCHAR TrackNumberMsb
Definition: scsi.h:2301
UCHAR FixedPacket
Definition: scsi.h:2288
UCHAR FreeBlocks[4]
Definition: scsi.h:2297
UCHAR SessionNumberLsb
Definition: scsi.h:2281
UCHAR ReservedTrack
Definition: scsi.h:2291
UCHAR TrackSize[4]
Definition: scsi.h:2299
UCHAR Reserved7[2]
Definition: scsi.h:2303
UCHAR SessionNumberMsb
Definition: scsi.h:2302
UCHAR TrackStartAddress[4]
Definition: scsi.h:2295
UCHAR TrackSize[4]
Definition: scsi.h:2327
UCHAR SessionNumberLsb
Definition: scsi.h:2309
UCHAR TrackNumberLsb
Definition: scsi.h:2308
UCHAR TrackNumberMsb
Definition: scsi.h:2329
UCHAR ReadCompatibilityLba[4]
Definition: scsi.h:2332
UCHAR SessionNumberMsb
Definition: scsi.h:2330
UCHAR FreeBlocks[4]
Definition: scsi.h:2325
UCHAR FixedPacket
Definition: scsi.h:2316
UCHAR FixedPacketSize[4]
Definition: scsi.h:2326
UCHAR NextWritableAddress[4]
Definition: scsi.h:2324
UCHAR LastRecordedAddress[4]
Definition: scsi.h:2328
UCHAR ReservedTrack
Definition: scsi.h:2319
UCHAR TrackStartAddress[4]
Definition: scsi.h:2323
UCHAR Reserved7[2]
Definition: scsi.h:2331
UCHAR NextWritableAddress[4]
Definition: scsi.h:2273
UCHAR DataMode
Definition: scsi.h:2265
UCHAR SessionNumber
Definition: scsi.h:2259
UCHAR Reserved3
Definition: scsi.h:2271
UCHAR Reserved1
Definition: scsi.h:2260
UCHAR FixedPacketSize[4]
Definition: scsi.h:2275
UCHAR Reserved2
Definition: scsi.h:2264
UCHAR TrackMode
Definition: scsi.h:2261
UCHAR FreeBlocks[4]
Definition: scsi.h:2274
UCHAR TrackNumber
Definition: scsi.h:2258
UCHAR TrackStartAddress[4]
Definition: scsi.h:2272
UCHAR StartingLba[8]
Definition: scsi.h:3290
UCHAR BlockDescrDataLength[2]
Definition: scsi.h:3297
UNMAP_BLOCK_DESCRIPTOR Descriptors[0]
Definition: scsi.h:3300
PHW_COMPLETE_SERVICE_IRP HwCompleteServiceIrp
Definition: storport.h:7343
PHW_CLEANUP_TRACING HwCleanupTracing
Definition: storport.h:7345
PHW_FREE_ADAPTER_RESOURCES HwFreeAdapterResources
Definition: storport.h:7341
PHW_ADAPTER_CONTROL HwAdapterControl
Definition: storport.h:7339
PHW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest
Definition: storport.h:7342
PHW_UNIT_CONTROL HwUnitControl
Definition: storport.h:7351
PHW_TRACING_ENABLED HwTracingEnabled
Definition: storport.h:7346
PVIRTUAL_HW_FIND_ADAPTER HwFindAdapter
Definition: storport.h:7315
PHW_INITIALIZE_TRACING HwInitializeTracing
Definition: storport.h:7344
INTERFACE_TYPE AdapterInterfaceType
Definition: storport.h:7311
UCHAR DeviceSignature[20]
Definition: scsi.h:2541
UCHAR IdentifyDeviceData[512]
Definition: scsi.h:2544
UCHAR ProductRevisionLevel[4]
Definition: scsi.h:2540
UCHAR MaximumTransferLength[4]
Definition: scsi.h:2583
UCHAR UnmapGranularityAlignmentByte2
Definition: scsi.h:2593
UCHAR OptimalUnmapGranularity[4]
Definition: scsi.h:2588
UCHAR OptimalTransferLengthGranularity[2]
Definition: scsi.h:2582
UCHAR MaximumUnmapLBACount[4]
Definition: scsi.h:2586
UCHAR Descriptors[0]
Definition: scsi.h:2602
UCHAR Reserved1[28]
Definition: scsi.h:2599
UCHAR PageLength[2]
Definition: scsi.h:2577
UCHAR UnmapGranularityAlignmentByte3
Definition: scsi.h:2591
UCHAR OptimalTransferLength[4]
Definition: scsi.h:2584
UCHAR MaximumUnmapBlockDescriptorCount[4]
Definition: scsi.h:2587
UCHAR DeviceTypeQualifier
Definition: scsi.h:2575
UCHAR UnmapGranularityAlignmentByte1
Definition: scsi.h:2594
UCHAR MaximumCompareAndWriteLength
Definition: scsi.h:2581
UCHAR MaxPrefetchXDReadXDWriteTransferLength[4]
Definition: scsi.h:2585
UCHAR UnmapGranularityAlignmentByte0
Definition: scsi.h:2595
UCHAR UnmapGranularityAlignment[4]
Definition: scsi.h:2597
UCHAR ExtendedSelfTestCompletionMinutes[2]
Definition: storport.h:5121
UCHAR Descriptors[0]
Definition: scsi.h:2529
UCHAR DeviceTypeQualifier
Definition: scsi.h:2478
UCHAR SerialNumber[0]
Definition: scsi.h:2482
UCHAR SupportedPageList[0]
Definition: scsi.h:2679
UCHAR ThirdPartyCopyDescriptors[ANYSIZE_ARRAY]
Definition: scsi.h:2554
UCHAR OptimalNumberOfNonSequentiallyWrittenSequentialWritePreferredZone[4]
Definition: scsi.h:2668
UCHAR ZoneStartLBA[8]
Definition: storport.h:4873
UCHAR ZoneLength[8]
Definition: storport.h:4872
UCHAR Reserved4[32]
Definition: storport.h:4875
UCHAR Reserved3[6]
Definition: storport.h:4871
UCHAR WritePointerLBA[8]
Definition: storport.h:4874
@ Reserved7
Definition: tvratings.idl:14
ULONG_PTR * PSIZE_T
Definition: typedefs.h:80
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
char * PSTR
Definition: typedefs.h:51
const uint16_t * PCWSTR
Definition: typedefs.h:57
unsigned char UCHAR
Definition: typedefs.h:53
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
int64_t LONGLONG
Definition: typedefs.h:68
#define NTAPI
Definition: typedefs.h:36
void * PVOID
Definition: typedefs.h:50
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint64_t ULONGLONG
Definition: typedefs.h:67
uint16_t * PUSHORT
Definition: typedefs.h:56
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
int32_t * PLONG
Definition: typedefs.h:58
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
char CCHAR
Definition: typedefs.h:51
char * PCHAR
Definition: typedefs.h:51
_In_ PGUID _In_ ULONG OutputBufferLength
Definition: ucxcontroller.h:81
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
_Must_inspect_result_ _In_ UCXENDPOINT _In_ PVOID Tag
Definition: ucxendpoint.h:325
short CSHORT
Definition: umtypes.h:127
Definition: cdrw_hw.h:28
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
UCHAR AsByte[16]
Definition: scsi.h:2034
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::_CDB6VERIFY CDB6VERIFY
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::_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
ULONG AsUlong[4]
Definition: scsi.h:2033
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::_READ_POSITION READ_POSITION
struct _CDB::_SEEK SEEK
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
UCHAR Byte2
Definition: scsi.h:3468
ULONGLONG AsULongLong
Definition: scsi.h:3475
UCHAR Byte0
Definition: scsi.h:3466
UCHAR Byte5
Definition: scsi.h:3471
UCHAR Byte7
Definition: scsi.h:3473
UCHAR Byte1
Definition: scsi.h:3467
UCHAR Byte3
Definition: scsi.h:3469
UCHAR Byte6
Definition: scsi.h:3472
UCHAR Byte4
Definition: scsi.h:3470
struct _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS::@1004 Synchronous
struct _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS::@1005 Wide
struct _SCSI_EXTENDED_MESSAGE::_EXTENDED_ARGUMENTS::@1003 Modify
FIXED_SENSE_DATA FixedData
Definition: scsi.h:2784
DESCRIPTOR_SENSE_DATA DescriptorData
Definition: scsi.h:2785
STOR_SLIST_ENTRY Next
Definition: storport.h:6304
struct _STOR_SLIST_HEADER::@2745 DUMMYSTRUCTNAME
ULONGLONG Alignment
Definition: storport.h:6301
UCHAR Byte0
Definition: scsi.h:3490
USHORT AsUShort
Definition: scsi.h:3493
UCHAR Byte1
Definition: scsi.h:3491
USHORT Count
Definition: userreq.cpp:200
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_In_ WDF_POWER_DEVICE_STATE PreviousState
Definition: wdfdevice.h:829
_In_ WDF_SPECIAL_FILE_TYPE NotificationType
Definition: wdfdevice.h:1024
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3777
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
Definition: wdfdevice.h:3921
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION _In_ PSCATTER_GATHER_LIST SgList
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG _Out_opt_ PULONG _Out_opt_ PULONG ValueType
Definition: wdfregistry.h:282
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_ ULONG ValueLength
Definition: wdfregistry.h:275
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFIOTARGET Target
Definition: wdfrequest.h:306
_In_ WDFREQUEST _In_ NTSTATUS _In_ ULONG_PTR Information
Definition: wdfrequest.h:1049
_Must_inspect_result_ _In_ WDFCMRESLIST List
Definition: wdfresource.h:550
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFSPINLOCK * SpinLock
Definition: wdfsync.h:228
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
Definition: wdfsync.h:127
#define FORCEINLINE
Definition: wdftypes.h:67
_In_ ULONG OutBufferSize
Definition: wdfwmi.h:87
_In_ ULONG InBufferSize
Definition: wdfwmi.h:106
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_In_ PCEVENT_DESCRIPTOR _In_opt_ LPCGUID ActivityId
Definition: wmifuncs.h:120
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:697
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
Definition: halfuncs.h:174
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:159
_In_ PDEVICE_OBJECT _In_ ULONG _In_ PDRIVER_CONTROL ExecutionRoutine
Definition: iofuncs.h:1717
_Out_ PUSHORT NodeNumber
Definition: iofuncs.h:2863
_Out_ PBOOLEAN D3ColdSupported
Definition: iotypes.h:7546
_In_ struct _IRP _In_ struct _SCATTER_GATHER_LIST * ScatterGather
Definition: iotypes.h:2390
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
Definition: iotypes.h:1036
_Out_opt_ PGROUP_AFFINITY PreviousAffinity
Definition: kefuncs.h:1287
_In_ LARGE_INTEGER _In_ ULONG _In_ ULONG TolerableDelay
Definition: kefuncs.h:1305
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
Definition: kefuncs.h:778
*LockHandle LockHandle _Out_ PKLOCK_QUEUE_HANDLE LockHandle
Definition: kefuncs.h:717
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT _Inout_ PNTSTATUS OperationStatus
Definition: ketypes.h:425
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:756
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:757
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS BoundaryAddressMultiple
Definition: mmfuncs.h:216
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE _In_ NODE_REQUIREMENT PreferredNode
Definition: mmfuncs.h:419
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS LowestAcceptableAddress
Definition: mmfuncs.h:214
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE
_In_ ULONGLONG IdleTimeout
Definition: pofuncs.h:273
_In_ ULONG Component
Definition: potypes.h:499
_In_ LPCGUID PowerControlCode
Definition: potypes.h:548
#define PSLIST_ENTRY
Definition: rtltypes.h:134