ReactOS 0.4.17-dev-1218-gfae4549
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 SCSISTAT_GOOD 0x00
321#define SCSISTAT_CHECK_CONDITION 0x02
322#define SCSISTAT_CONDITION_MET 0x04
323#define SCSISTAT_BUSY 0x08
324#define SCSISTAT_INTERMEDIATE 0x10
325#define SCSISTAT_INTERMEDIATE_COND_MET 0x14
326#define SCSISTAT_RESERVATION_CONFLICT 0x18
327#define SCSISTAT_COMMAND_TERMINATED 0x22
328#define SCSISTAT_QUEUE_FULL 0x28
329
330#define SETBITON 1
331#define SETBITOFF 0
332
333#define SP_RETURN_NOT_FOUND 0
334#define SP_RETURN_FOUND 1
335#define SP_RETURN_ERROR 2
336#define SP_RETURN_BAD_CONFIG 3
337
338/* SCSI_REQUEST_BLOCK.Function constants */
339#define SRB_FUNCTION_EXECUTE_SCSI 0x00
340#define SRB_FUNCTION_CLAIM_DEVICE 0x01
341#define SRB_FUNCTION_IO_CONTROL 0x02
342#define SRB_FUNCTION_RECEIVE_EVENT 0x03
343#define SRB_FUNCTION_RELEASE_QUEUE 0x04
344#define SRB_FUNCTION_ATTACH_DEVICE 0x05
345#define SRB_FUNCTION_RELEASE_DEVICE 0x06
346#define SRB_FUNCTION_SHUTDOWN 0x07
347#define SRB_FUNCTION_FLUSH 0x08
348#define SRB_FUNCTION_ABORT_COMMAND 0x10
349#define SRB_FUNCTION_RELEASE_RECOVERY 0x11
350#define SRB_FUNCTION_RESET_BUS 0x12
351#define SRB_FUNCTION_RESET_DEVICE 0x13
352#define SRB_FUNCTION_TERMINATE_IO 0x14
353#define SRB_FUNCTION_FLUSH_QUEUE 0x15
354#define SRB_FUNCTION_REMOVE_DEVICE 0x16
355#define SRB_FUNCTION_WMI 0x17
356#define SRB_FUNCTION_LOCK_QUEUE 0x18
357#define SRB_FUNCTION_UNLOCK_QUEUE 0x19
358#define SRB_FUNCTION_RESET_LOGICAL_UNIT 0x20
359#define SRB_FUNCTION_SET_LINK_TIMEOUT 0x21
360#define SRB_FUNCTION_LINK_TIMEOUT_OCCURRED 0x22
361#define SRB_FUNCTION_LINK_TIMEOUT_COMPLETE 0x23
362#define SRB_FUNCTION_POWER 0x24
363#define SRB_FUNCTION_PNP 0x25
364#define SRB_FUNCTION_DUMP_POINTERS 0x26
365
366/* SCSI_REQUEST_BLOCK.SrbStatus constants */
367#define SRB_STATUS_PENDING 0x00
368#define SRB_STATUS_SUCCESS 0x01
369#define SRB_STATUS_ABORTED 0x02
370#define SRB_STATUS_ABORT_FAILED 0x03
371#define SRB_STATUS_ERROR 0x04
372#define SRB_STATUS_BUSY 0x05
373#define SRB_STATUS_INVALID_REQUEST 0x06
374#define SRB_STATUS_INVALID_PATH_ID 0x07
375#define SRB_STATUS_NO_DEVICE 0x08
376#define SRB_STATUS_TIMEOUT 0x09
377#define SRB_STATUS_SELECTION_TIMEOUT 0x0A
378#define SRB_STATUS_COMMAND_TIMEOUT 0x0B
379#define SRB_STATUS_MESSAGE_REJECTED 0x0D
380#define SRB_STATUS_BUS_RESET 0x0E
381#define SRB_STATUS_PARITY_ERROR 0x0F
382#define SRB_STATUS_REQUEST_SENSE_FAILED 0x10
383#define SRB_STATUS_NO_HBA 0x11
384#define SRB_STATUS_DATA_OVERRUN 0x12
385#define SRB_STATUS_UNEXPECTED_BUS_FREE 0x13
386#define SRB_STATUS_PHASE_SEQUENCE_FAILURE 0x14
387#define SRB_STATUS_BAD_SRB_BLOCK_LENGTH 0x15
388#define SRB_STATUS_REQUEST_FLUSHED 0x16
389#define SRB_STATUS_INVALID_LUN 0x20
390#define SRB_STATUS_INVALID_TARGET_ID 0x21
391#define SRB_STATUS_BAD_FUNCTION 0x22
392#define SRB_STATUS_ERROR_RECOVERY 0x23
393#define SRB_STATUS_NOT_POWERED 0x24
394#define SRB_STATUS_LINK_DOWN 0x25
395#define SRB_STATUS_INTERNAL_ERROR 0x30
396#define SRB_STATUS_QUEUE_FROZEN 0x40
397#define SRB_STATUS_AUTOSENSE_VALID 0x80
398#define SRB_STATUS(Status) (Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
399
400/* SCSI_REQUEST_BLOCK.SrbFlags constants */
401#define SRB_FLAGS_QUEUE_ACTION_ENABLE 0x00000002
402#define SRB_FLAGS_DISABLE_DISCONNECT 0x00000004
403#define SRB_FLAGS_DISABLE_SYNCH_TRANSFER 0x00000008
404
405#define SRB_FLAGS_BYPASS_FROZEN_QUEUE 0x00000010
406#define SRB_FLAGS_DISABLE_AUTOSENSE 0x00000020
407#define SRB_FLAGS_DATA_IN 0x00000040
408#define SRB_FLAGS_DATA_OUT 0x00000080
409#define SRB_FLAGS_NO_DATA_TRANSFER 0x00000000
410#define SRB_FLAGS_UNSPECIFIED_DIRECTION (SRB_FLAGS_DATA_IN | SRB_FLAGS_DATA_OUT)
411
412#define SRB_FLAGS_NO_QUEUE_FREEZE 0x00000100
413#define SRB_FLAGS_ADAPTER_CACHE_ENABLE 0x00000200
414#define SRB_FLAGS_FREE_SENSE_BUFFER 0x00000400
415
416#define SRB_FLAGS_IS_ACTIVE 0x00010000
417#define SRB_FLAGS_ALLOCATED_FROM_ZONE 0x00020000
418#define SRB_FLAGS_SGLIST_FROM_POOL 0x00040000
419#define SRB_FLAGS_BYPASS_LOCKED_QUEUE 0x00080000
420
421#define SRB_FLAGS_NO_KEEP_AWAKE 0x00100000
422#define SRB_FLAGS_PORT_DRIVER_ALLOCSENSE 0x00200000
423
424#define SRB_FLAGS_PORT_DRIVER_SENSEHASPORT 0x00400000
425#define SRB_FLAGS_DONT_START_NEXT_PACKET 0x00800000
426
427#define SRB_FLAGS_PORT_DRIVER_RESERVED 0x0F000000
428#define SRB_FLAGS_CLASS_DRIVER_RESERVED 0xF0000000
429
430#define SRB_SIMPLE_TAG_REQUEST 0x20
431#define SRB_HEAD_OF_QUEUE_TAG_REQUEST 0x21
432#define SRB_ORDERED_QUEUE_TAG_REQUEST 0x22
433
434#define SRB_WMI_FLAGS_ADAPTER_REQUEST 0x01
435#define SRB_POWER_FLAGS_ADAPTER_REQUEST 0x01
436#define SRB_PNP_FLAGS_ADAPTER_REQUEST 0x01
437
438#define STOR_MAP_NO_BUFFERS (0)
439#define STOR_MAP_ALL_BUFFERS (1)
440#define STOR_MAP_NON_READ_WRITE_BUFFERS (2)
441
442/* Status codes returned by the StorPortXxx routines */
443#define STOR_STATUS_SUCCESS (0x00000000L)
444#define STOR_STATUS_UNSUCCESSFUL (0xC1000001L)
445#define STOR_STATUS_NOT_IMPLEMENTED (0xC1000002L)
446#define STOR_STATUS_INSUFFICIENT_RESOURCES (0xC1000003L)
447#define STOR_STATUS_BUFFER_TOO_SMALL (0xC1000004L)
448#define STOR_STATUS_ACCESS_DENIED (0xC1000005L)
449#define STOR_STATUS_INVALID_PARAMETER (0xC1000006L)
450#define STOR_STATUS_INVALID_DEVICE_REQUEST (0xC1000007L)
451#define STOR_STATUS_INVALID_IRQL (0xC1000008L)
452#define STOR_STATUS_INVALID_DEVICE_STATE (0xC1000009L)
453#define STOR_STATUS_INVALID_BUFFER_SIZE (0xC100000AL)
454#define STOR_STATUS_UNSUPPORTED_VERSION (0xC100000BL)
455#define STOR_STATUS_BUSY (0xC100000CL)
456
457#define VPD_SUPPORTED_PAGES 0x00
458#define VPD_SERIAL_NUMBER 0x80
459#define VPD_DEVICE_IDENTIFIERS 0x83
460#define VPD_MEDIA_SERIAL_NUMBER 0x84
461#define VPD_SOFTWARE_INTERFACE_IDENTIFIERS 0x84
462#define VPD_NETWORK_MANAGEMENT_ADDRESSES 0x85
463#define VPD_EXTENDED_INQUIRY_DATA 0x86
464#define VPD_MODE_PAGE_POLICY 0x87
465#define VPD_SCSI_PORTS 0x88
466
467#define SCSI_SENSE_NO_SENSE 0x00
468#define SCSI_SENSE_RECOVERED_ERROR 0x01
469#define SCSI_SENSE_NOT_READY 0x02
470#define SCSI_SENSE_MEDIUM_ERROR 0x03
471#define SCSI_SENSE_HARDWARE_ERROR 0x04
472#define SCSI_SENSE_ILLEGAL_REQUEST 0x05
473#define SCSI_SENSE_UNIT_ATTENTION 0x06
474#define SCSI_SENSE_DATA_PROTECT 0x07
475#define SCSI_SENSE_BLANK_CHECK 0x08
476#define SCSI_SENSE_UNIQUE 0x09
477#define SCSI_SENSE_COPY_ABORTED 0x0A
478#define SCSI_SENSE_ABORTED_COMMAND 0x0B
479#define SCSI_SENSE_EQUAL 0x0C
480#define SCSI_SENSE_VOL_OVERFLOW 0x0D
481#define SCSI_SENSE_MISCOMPARE 0x0E
482#define SCSI_SENSE_RESERVED 0x0F
483
485{
489
491{
496
497typedef enum _STOR_DMA_WIDTH
498{
504
505typedef enum _STOR_SPINLOCK
506{
511
513{
522
524{
528
530{
553
555{
563
565{
575
577{
586
587typedef enum _VPD_CODE_SET
588{
594
596{
603
605{
616
618{
636#if (NTDDI_VERSION >= NTDDI_WIN7)
646#endif
647 /* Pinned value, as the codes above are only declared on newer targets */
658
660{
666
667typedef enum _GETSGSTATUS
668{
672
673typedef struct _SCSI_REQUEST_BLOCK
674{
681 UCHAR Lun;
694 union
695 {
699 };
700#if defined(_WIN64)
702#endif
703 UCHAR Cdb[16];
705
706typedef struct _SCSI_WMI_REQUEST_BLOCK
707{
714 UCHAR Lun;
717 UCHAR Reserved2[2];
727#if (NTDDI_VERSION >= NTDDI_WS03SP1) && defined(_WIN64)
728 ULONG Reserved6;
729#endif
730 UCHAR Reserved5[16];
732
733typedef struct _SCSI_POWER_REQUEST_BLOCK
734{
741 UCHAR Lun;
752#if defined(_WIN64)
754#endif
755 UCHAR Reserved5[16];
757
758typedef struct _STOR_DEVICE_CAPABILITIES
759{
761 ULONG DeviceD1:1;
762 ULONG DeviceD2:1;
767 ULONG UniqueID:1;
772
773typedef struct _SCSI_PNP_REQUEST_BLOCK
774{
781 UCHAR Lun;
792#if defined(_WIN64)
794#endif
795 UCHAR Reserved4[16];
797
798#include <pshpack1.h>
799typedef union _CDB
800{
801 struct _CDB6GENERIC
802 {
808 UCHAR Link:1;
809 UCHAR Flag:1;
810 UCHAR Reserved:4;
813 struct _CDB6READWRITE
814 {
823 struct _CDB6INQUIRY
824 {
833 struct _CDB6INQUIRY3
834 {
844 struct _CDB6VERIFY
845 {
847 UCHAR Fixed:1;
850 UCHAR Reserved:2;
855 struct _CDB6FORMAT
856 {
865 struct _CDB10
866 {
881 } CDB10, *PCDB10;
882 struct _CDB12
883 {
894 } CDB12, *PCDB12;
895 struct _CDB16
896 {
906 } CDB16, *PCDB16;
907 struct _PAUSE_RESUME
908 {
912 UCHAR Reserved2[6];
916 struct _READ_TOC
917 {
920 UCHAR Msf:1;
923 UCHAR Format2:4;
925 UCHAR Reserved3[3];
928 UCHAR Control:6;
929 UCHAR Format:2;
931 struct _READ_DISK_INFORMATION
932 {
935 UCHAR Lun:3;
936 UCHAR Reserved2[5];
940 struct _READ_TRACK_INFORMATION
941 {
943 UCHAR Track:1;
946 UCHAR Lun:3;
952 struct _RESERVE_TRACK_RZONE
953 {
955 UCHAR Reserved1[4];
959 struct _SEND_OPC_INFORMATION
960 {
962 UCHAR DoOpc:1;
964 UCHAR Exclude0:1;
965 UCHAR Exclude1:1;
967 UCHAR Reserved3[4];
971 struct _REPAIR_TRACK
972 {
976 UCHAR Reserved2[2];
978 UCHAR Reserved3[3];
981 struct _CLOSE_TRACK
982 {
986 UCHAR Track:1;
987 UCHAR Session:1;
991 UCHAR Reserved4[3];
994 struct _READ_BUFFER_CAPACITY
995 {
999 UCHAR Reserved2[5];
1001 UCHAR Control;
1003 struct _SEND_CUE_SHEET
1004 {
1006 UCHAR Reserved[5];
1008 UCHAR Control;
1010 struct _READ_HEADER
1011 {
1013 UCHAR Reserved1:1;
1014 UCHAR Msf:1;
1015 UCHAR Reserved2:3;
1016 UCHAR Lun:3;
1020 UCHAR Control;
1022 struct _PLAY_AUDIO
1023 {
1025 UCHAR Reserved1:5;
1029 UCHAR PlayLength[2];
1030 UCHAR Control;
1032 struct _PLAY_AUDIO_MSF
1033 {
1035 UCHAR Reserved1:5;
1041 UCHAR EndingM;
1042 UCHAR EndingS;
1043 UCHAR EndingF;
1044 UCHAR Control;
1046 struct _BLANK_MEDIA
1047 {
1049 UCHAR BlankType:3;
1050 UCHAR Reserved1:1;
1051 UCHAR Immediate:1;
1052 UCHAR Reserved2:3;
1054 UCHAR Reserved3[5];
1055 UCHAR Control;
1057 struct _PLAY_CD
1058 {
1060 UCHAR Reserved1:1;
1061 UCHAR CMSF:1;
1063 UCHAR Lun:3;
1064 _ANONYMOUS_UNION union
1065 {
1066 struct _LBA
1067 {
1068 UCHAR StartingBlockAddress[4];
1069 UCHAR PlayLength[4];
1071 struct _MSF
1072 {
1074 UCHAR StartingM;
1075 UCHAR StartingS;
1076 UCHAR StartingF;
1077 UCHAR EndingM;
1078 UCHAR EndingS;
1079 UCHAR EndingF;
1083 UCHAR Audio:1;
1084 UCHAR Composite:1;
1085 UCHAR Port1:1;
1086 UCHAR Port2:1;
1087 UCHAR Reserved2:3;
1088 UCHAR Speed:1;
1089 UCHAR Control;
1090 } PLAY_CD, *PPLAY_CD;
1091 struct _SCAN_CD
1092 {
1095 UCHAR Reserved1:3;
1096 UCHAR Direct:1;
1097 UCHAR Lun:3;
1099 UCHAR Reserved2[3];
1100 UCHAR Reserved3:6;
1101 UCHAR Type:2;
1103 UCHAR Control;
1104 } SCAN_CD, *PSCAN_CD;
1105 struct _STOP_PLAY_SCAN
1106 {
1108 UCHAR Reserved1:5;
1109 UCHAR Lun:3;
1110 UCHAR Reserved2[7];
1111 UCHAR Control;
1113 struct _SUBCHANNEL
1114 {
1116 UCHAR Reserved0:1;
1117 UCHAR Msf:1;
1118 UCHAR Reserved1:3;
1120 UCHAR Reserved2:6;
1121 UCHAR SubQ:1;
1122 UCHAR Reserved3:1;
1123 UCHAR Format;
1124 UCHAR Reserved4[2];
1127 UCHAR Control;
1129 struct _READ_CD
1130 {
1133 UCHAR Reserved0:1;
1135 UCHAR Lun:3;
1136 UCHAR StartingLBA[4];
1138 UCHAR Reserved2:1;
1139 UCHAR ErrorFlags:2;
1140 UCHAR IncludeEDC:1;
1142 UCHAR HeaderCode:2;
1145 UCHAR Reserved3:5;
1146 UCHAR Control;
1147 } READ_CD, *PREAD_CD;
1148 struct _READ_CD_MSF
1149 {
1152 UCHAR Reserved1:1;
1154 UCHAR Lun:3;
1159 UCHAR EndingM;
1160 UCHAR EndingS;
1161 UCHAR EndingF;
1163 UCHAR Reserved4:1;
1164 UCHAR ErrorFlags:2;
1165 UCHAR IncludeEDC:1;
1167 UCHAR HeaderCode:2;
1170 UCHAR Reserved5:5;
1171 UCHAR Control;
1173 struct _PLXTR_READ_CDDA
1174 {
1176 UCHAR Reserved0:5;
1186 UCHAR SubCode;
1187 UCHAR Control;
1189 struct _NEC_READ_CDDA
1190 {
1200 UCHAR Control;
1202 struct _MODE_SENSE
1203 {
1205 UCHAR Reserved1:3;
1206 UCHAR Dbd:1;
1207 UCHAR Reserved2:1;
1209 UCHAR PageCode:6;
1210 UCHAR Pc:2;
1213 UCHAR Control;
1215 struct _MODE_SENSE10
1216 {
1218 UCHAR Reserved1:3;
1219 UCHAR Dbd:1;
1220 UCHAR Reserved2:1;
1222 UCHAR PageCode:6;
1223 UCHAR Pc:2;
1224 UCHAR Reserved3[4];
1226 UCHAR Control;
1228 struct _MODE_SELECT
1229 {
1231 UCHAR SPBit:1;
1232 UCHAR Reserved1:3;
1233 UCHAR PFBit:1;
1235 UCHAR Reserved2[2];
1237 UCHAR Control;
1239 struct _MODE_SELECT10
1240 {
1242 UCHAR SPBit:1;
1243 UCHAR Reserved1:3;
1244 UCHAR PFBit:1;
1246 UCHAR Reserved2[5];
1248 UCHAR Control;
1250 struct _LOCATE
1251 {
1253 UCHAR Immediate:1;
1254 UCHAR CPBit:1;
1255 UCHAR BTBit:1;
1256 UCHAR Reserved1:2;
1262 UCHAR Control;
1263 } LOCATE, *PLOCATE;
1264 struct _LOGSENSE
1265 {
1267 UCHAR SPBit:1;
1268 UCHAR PPCBit:1;
1269 UCHAR Reserved1:3;
1271 UCHAR PageCode:6;
1272 UCHAR PCBit:2;
1277 UCHAR Control;
1278 } LOGSENSE, *PLOGSENSE;
1279 struct _LOGSELECT
1280 {
1282 UCHAR SPBit:1;
1283 UCHAR PCRBit:1;
1284 UCHAR Reserved1:3;
1286 UCHAR Reserved:6;
1287 UCHAR PCBit:2;
1288 UCHAR Reserved2[4];
1290 UCHAR Control;
1292 struct _PRINT
1293 {
1295 UCHAR Reserved:5;
1298 UCHAR Control;
1299 } PRINT, *PPRINT;
1300 struct _SEEK
1301 {
1303 UCHAR Reserved1:5;
1306 UCHAR Reserved2[3];
1307 UCHAR Control;
1308 } SEEK, *PSEEK;
1309 struct _ERASE
1310 {
1312 UCHAR Long:1;
1313 UCHAR Immediate:1;
1314 UCHAR Reserved1:3;
1316 UCHAR Reserved2[3];
1317 UCHAR Control;
1318 } ERASE, *PERASE;
1319 struct _START_STOP
1320 {
1322 UCHAR Immediate:1;
1323 UCHAR Reserved1:4;
1325 UCHAR Reserved2[2];
1326 UCHAR Start:1;
1327 UCHAR LoadEject:1;
1328 UCHAR Reserved3:6;
1329 UCHAR Control;
1331 struct _MEDIA_REMOVAL
1332 {
1334 UCHAR Reserved1:5;
1336 UCHAR Reserved2[2];
1337 UCHAR Prevent:1;
1338 UCHAR Persistant:1;
1339 UCHAR Reserved3:6;
1340 UCHAR Control;
1342 struct _SEEK_BLOCK
1343 {
1345 UCHAR Immediate:1;
1346 UCHAR Reserved1:7;
1348 UCHAR Link:1;
1349 UCHAR Flag:1;
1350 UCHAR Reserved2:4;
1353 struct _REQUEST_BLOCK_ADDRESS
1354 {
1356 UCHAR Reserved1[3];
1358 UCHAR Link:1;
1359 UCHAR Flag:1;
1360 UCHAR Reserved2:4;
1363 struct _PARTITION
1364 {
1366 UCHAR Immediate:1;
1367 UCHAR Sel:1;
1369 UCHAR Reserved1[3];
1370 UCHAR Control;
1372 struct _WRITE_TAPE_MARKS
1373 {
1375 UCHAR Immediate:1;
1377 UCHAR Reserved:3;
1380 UCHAR Control;
1382 struct _SPACE_TAPE_MARKS
1383 {
1385 UCHAR Code:3;
1386 UCHAR Reserved:2;
1391 union
1392 {
1393 UCHAR value;
1394 struct
1395 {
1396 UCHAR Link:1;
1397 UCHAR Flag:1;
1398 UCHAR Reserved:4;
1403 struct _READ_POSITION
1404 {
1406 UCHAR BlockType:1;
1407 UCHAR Reserved1:4;
1408 UCHAR Lun:3;
1409 UCHAR Reserved2[7];
1410 UCHAR Control;
1412 struct _CDB6READWRITETAPE
1413 {
1416 UCHAR Reserved:3;
1420 UCHAR Link:1;
1421 UCHAR Flag:1;
1422 UCHAR Reserved1:4;
1425 struct _INIT_ELEMENT_STATUS
1426 {
1428 UCHAR Reserved1:5;
1430 UCHAR Reserved2[3];
1431 UCHAR Reserved3:7;
1432 UCHAR NoBarCode:1;
1434 struct _INITIALIZE_ELEMENT_RANGE
1435 {
1437 UCHAR Range:1;
1438 UCHAR Reserved1:4;
1441 UCHAR Reserved2[2];
1444 UCHAR Reserved4:7;
1445 UCHAR NoBarCode:1;
1447 struct _POSITION_TO_ELEMENT
1448 {
1450 UCHAR Reserved1:5;
1454 UCHAR Reserved2[2];
1455 UCHAR Flip:1;
1456 UCHAR Reserved3:7;
1457 UCHAR Control;
1459 struct _MOVE_MEDIUM
1460 {
1462 UCHAR Reserved1:5;
1467 UCHAR Reserved2[2];
1468 UCHAR Flip:1;
1469 UCHAR Reserved3:7;
1470 UCHAR Control;
1472 struct _EXCHANGE_MEDIUM
1473 {
1475 UCHAR Reserved1:5;
1481 UCHAR Flip1:1;
1482 UCHAR Flip2:1;
1483 UCHAR Reserved3:6;
1484 UCHAR Control;
1486 struct _READ_ELEMENT_STATUS
1487 {
1490 UCHAR VolTag:1;
1497 UCHAR Control;
1499 struct _SEND_VOLUME_TAG
1500 {
1503 UCHAR Reserved1:1;
1507 UCHAR ActionCode:5;
1508 UCHAR Reserved3:3;
1509 UCHAR Reserved4[2];
1512 UCHAR Control;
1514 struct _REQUEST_VOLUME_ELEMENT_ADDRESS
1515 {
1518 UCHAR VolTag:1;
1525 UCHAR Control;
1527 struct _LOAD_UNLOAD
1528 {
1530 UCHAR Immediate:1;
1531 UCHAR Reserved1:4;
1532 UCHAR Lun:3;
1533 UCHAR Reserved2[2];
1534 UCHAR Start:1;
1535 UCHAR LoadEject:1;
1536 UCHAR Reserved3:6;
1537 UCHAR Reserved4[3];
1538 UCHAR Slot;
1539 UCHAR Reserved5[3];
1541 struct _MECH_STATUS
1542 {
1544 UCHAR Reserved:5;
1545 UCHAR Lun:3;
1546 UCHAR Reserved1[6];
1548 UCHAR Reserved2[1];
1549 UCHAR Control;
1551 struct _SYNCHRONIZE_CACHE10
1552 {
1554 UCHAR RelAddr:1;
1555 UCHAR Immediate:1;
1556 UCHAR Reserved:3;
1557 UCHAR Lun:3;
1560 UCHAR BlockCount[2];
1561 UCHAR Control;
1563 struct _GET_EVENT_STATUS_NOTIFICATION
1564 {
1566 UCHAR Immediate:1;
1567 UCHAR Reserved:4;
1568 UCHAR Lun:3;
1569 UCHAR Reserved2[2];
1571 UCHAR Reserved3[2];
1573 UCHAR Control;
1575 struct _GET_PERFORMANCE
1576 {
1578 UCHAR Except:2;
1579 UCHAR Write:1;
1580 UCHAR Tolerance:2;
1581 UCHAR Reserved0:3;
1582 UCHAR StartingLBA[4];
1583 UCHAR Reserved1[2];
1585 UCHAR Type;
1586 UCHAR Control;
1588 struct _READ_DVD_STRUCTURE
1589 {
1591 UCHAR Reserved1:5;
1592 UCHAR Lun:3;
1595 UCHAR Format;
1597 UCHAR Reserved3:6;
1598 UCHAR AGID:2;
1599 UCHAR Control;
1601 struct _SET_STREAMING
1602 {
1604 UCHAR Reserved[8];
1606 UCHAR Control;
1607 } SET_STREAMING;
1608 struct _SEND_DVD_STRUCTURE
1609 {
1611 UCHAR Reserved1:5;
1612 UCHAR Lun:3;
1613 UCHAR Reserved2[5];
1614 UCHAR Format;
1617 UCHAR Control;
1619 struct _SEND_KEY
1620 {
1622 UCHAR Reserved1:5;
1623 UCHAR Lun:3;
1624 UCHAR Reserved2[6];
1626 UCHAR KeyFormat:6;
1627 UCHAR AGID:2;
1628 UCHAR Control;
1629 } SEND_KEY, *PSEND_KEY;
1630 struct _REPORT_KEY
1631 {
1633 UCHAR Reserved1:5;
1634 UCHAR Lun:3;
1636 UCHAR Reserved2[2];
1638 UCHAR KeyFormat:6;
1639 UCHAR AGID:2;
1640 UCHAR Control;
1642 struct _SET_READ_AHEAD
1643 {
1645 UCHAR Reserved1:5;
1646 UCHAR Lun:3;
1647 UCHAR TriggerLBA[4];
1650 UCHAR Control;
1652 struct _READ_FORMATTED_CAPACITIES
1653 {
1655 UCHAR Reserved1:5;
1656 UCHAR Lun:3;
1657 UCHAR Reserved2[5];
1659 UCHAR Control;
1661 struct _REPORT_LUNS
1662 {
1664 UCHAR Reserved1[5];
1666 UCHAR Reserved2[1];
1667 UCHAR Control;
1669 struct _PERSISTENT_RESERVE_IN
1670 {
1673 UCHAR Reserved1:3;
1674 UCHAR Reserved2[5];
1676 UCHAR Control;
1678 struct _PERSISTENT_RESERVE_OUT
1679 {
1682 UCHAR Reserved1:3;
1683 UCHAR Type:4;
1684 UCHAR Scope:4;
1685 UCHAR Reserved2[4];
1687 UCHAR Control;
1689 struct _GET_CONFIGURATION
1690 {
1693 UCHAR Reserved1:7;
1695 UCHAR Reserved2[3];
1697 UCHAR Control;
1699 struct _SET_CD_SPEED
1700 {
1702 _ANONYMOUS_UNION union
1703 {
1705 _ANONYMOUS_STRUCT struct
1706 {
1708 UCHAR Reserved3:6;
1711 UCHAR ReadSpeed[2];
1712 UCHAR WriteSpeed[2];
1713 UCHAR Reserved2[5];
1714 UCHAR Control;
1716 struct _READ12
1717 {
1720 UCHAR Reserved1:2;
1726 UCHAR Reserved2:7;
1727 UCHAR Streaming:1;
1728 UCHAR Control;
1729 } READ12;
1730 struct _WRITE12
1731 {
1734 UCHAR Reserved1:1;
1735 UCHAR EBP:1;
1741 UCHAR Reserved2:7;
1742 UCHAR Streaming:1;
1743 UCHAR Control;
1744 } WRITE12;
1745 struct _READ16
1746 {
1748 UCHAR Reserved1:3;
1754 UCHAR Reserved2:7;
1755 UCHAR Streaming:1;
1756 UCHAR Control;
1757 } READ16;
1758 struct _WRITE16
1759 {
1761 UCHAR Reserved1:3;
1767 UCHAR Reserved2:7;
1768 UCHAR Streaming:1;
1769 UCHAR Control;
1770 } WRITE16;
1771 struct _VERIFY16
1772 {
1774 UCHAR Reserved1:1;
1775 UCHAR ByteCheck:1;
1777 UCHAR Reserved2: 1;
1782 UCHAR Reserved3:7;
1783 UCHAR Streaming:1;
1784 UCHAR Control;
1785 } VERIFY16;
1786 struct _SYNCHRONIZE_CACHE16
1787 {
1789 UCHAR Reserved1:1;
1790 UCHAR Immediate:1;
1791 UCHAR Reserved2:6;
1793 UCHAR BlockCount[4];
1795 UCHAR Control;
1797 struct _READ_CAPACITY16
1798 {
1801 UCHAR Reserved1:3;
1804 UCHAR PMI:1;
1805 UCHAR Reserved2:7;
1806 UCHAR Control;
1808 ULONG AsUlong[4];
1809 UCHAR AsByte[16];
1811
1812typedef union _EIGHT_BYTE
1813{
1814 struct
1815 {
1816 UCHAR Byte0;
1817 UCHAR Byte1;
1818 UCHAR Byte2;
1819 UCHAR Byte3;
1820 UCHAR Byte4;
1821 UCHAR Byte5;
1822 UCHAR Byte6;
1823 UCHAR Byte7;
1824 };
1827
1828typedef union _FOUR_BYTE
1829{
1830 struct
1831 {
1832 UCHAR Byte0;
1833 UCHAR Byte1;
1834 UCHAR Byte2;
1835 UCHAR Byte3;
1836 };
1837 ULONG AsULong;
1839
1840typedef union _TWO_BYTE
1841{
1842 struct
1843 {
1844 UCHAR Byte0;
1845 UCHAR Byte1;
1846 };
1849#include <poppack.h>
1850
1851#if (NTDDI_VERSION < NTDDI_WINXP)
1852typedef struct _INQUIRYDATA
1853{
1854 UCHAR DeviceType:5;
1860 UCHAR HiSupport:1;
1861 UCHAR NormACA:1;
1862 UCHAR ReservedBit:1;
1863 UCHAR AERC:1;
1865 UCHAR Reserved[2];
1866 UCHAR SoftReset:1;
1868 UCHAR Reserved2:1;
1871 UCHAR Wide16Bit:1;
1872 UCHAR Wide32Bit:1;
1874 UCHAR VendorId[8];
1875 UCHAR ProductId[16];
1878 UCHAR Reserved3[40];
1880#else
1881#include <pshpack1.h>
1882typedef struct _INQUIRYDATA
1883{
1884 UCHAR DeviceType:5;
1888 union
1889 {
1891 struct
1892 {
1895 UCHAR ISOVersion:2;
1896 };
1897 };
1899 UCHAR HiSupport:1;
1900 UCHAR NormACA:1;
1902 UCHAR AERC:1;
1905 UCHAR Addr16:1;
1906 UCHAR Addr32:1;
1907 UCHAR AckReqQ:1;
1909 UCHAR MultiPort:1;
1913 UCHAR SoftReset:1;
1918 UCHAR Wide16Bit:1;
1919 UCHAR Wide32Bit:1;
1921 UCHAR VendorId[8];
1922 UCHAR ProductId[16];
1925 UCHAR Reserved3[40];
1927#include <poppack.h>
1928#endif
1929
1930typedef struct _VPD_MEDIA_SERIAL_NUMBER_PAGE
1931{
1932 UCHAR DeviceType:5;
1939
1940typedef struct _VPD_SERIAL_NUMBER_PAGE
1941{
1942 UCHAR DeviceType:5;
1949
1950typedef struct _VPD_IDENTIFICATION_DESCRIPTOR
1951{
1952 UCHAR CodeSet:4;
1953 UCHAR Reserved:4;
1956 UCHAR Reserved2:2;
1959 UCHAR Identifier[0];
1961
1962typedef struct _VPD_IDENTIFICATION_PAGE
1963{
1964 UCHAR DeviceType:5;
1969 UCHAR Descriptors[0];
1971
1972typedef struct _VPD_SUPPORTED_PAGES_PAGE
1973{
1974 UCHAR DeviceType:5;
1981
1982#include <pshpack1.h>
1983typedef struct _READ_CAPACITY_DATA
1984{
1988
1989typedef struct _READ_CAPACITY_DATA_EX
1990{
1994
1995typedef struct _MODE_PARAMETER_HEADER
1996{
2002
2003typedef struct _MODE_PARAMETER_HEADER10
2004{
2008 UCHAR Reserved[2];
2011
2012typedef struct _MODE_PARAMETER_BLOCK
2013{
2017 UCHAR BlockLength[3];
2019
2020typedef struct _LUN_LIST
2021{
2023 UCHAR Reserved[4];
2024#if !defined(__midl)
2025 UCHAR Lun[0][8];
2026#endif
2028
2029typedef struct _SENSE_DATA
2030{
2031 UCHAR ErrorCode:7;
2032 UCHAR Valid:1;
2034 UCHAR SenseKey:4;
2035 UCHAR Reserved:1;
2037 UCHAR EndOfMedia:1;
2038 UCHAR FileMark:1;
2039 UCHAR Information[4];
2047
2048#include <poppack.h>
2049
2051
2052typedef struct _ACCESS_RANGE
2053{
2058
2059typedef struct _MEMORY_REGION
2060{
2065
2066typedef
2069 _In_ PVOID DeviceExtension,
2070 _In_ ULONG MessageId);
2071
2073{
2074 ULONG Length;
2083 ULONG DmaPort;
2139
2141{
2146
2148{
2153
2154typedef struct _DPC_BUFFER
2155{
2159 struct
2160 {
2163 };
2170
2171typedef struct _STOR_DPC
2172{
2176
2177typedef struct _STOR_LOCK_HANDLE
2178{
2180 struct
2181 {
2182 struct
2183 {
2190
2192{
2208
2210{
2221
2223{
2229
2231{
2239
2240typedef
2243 _In_ PVOID DeviceExtension);
2244
2245typedef
2248 _In_ PVOID DeviceExtension,
2250
2251typedef
2254 _In_ PVOID DeviceExtension,
2256
2257typedef
2260 _In_ PVOID DeviceExtension);
2261
2262typedef
2264(NTAPI *PHW_TIMER)(
2265 _In_ PVOID DeviceExtension);
2266
2267typedef
2270 _In_ PVOID DeviceExtension,
2272
2273typedef
2276 _In_ PVOID DeviceExtension);
2277
2278typedef
2281 IN PVOID DeviceExtension,
2284 IN PCHAR ArgumentString,
2286 OUT PBOOLEAN Again);
2287
2288typedef
2291 IN PVOID DeviceExtension,
2292 IN ULONG PathId);
2293
2294typedef
2297 IN PVOID DeviceExtension,
2300
2301typedef
2304 IN PVOID DeviceExtension,
2305 IN SCSI_ADAPTER_CONTROL_TYPE ControlType,
2307
2308typedef
2311 _In_ PVOID DeviceExtension);
2312
2313typedef
2317 _In_ PVOID HwDeviceExtension,
2320
2321typedef
2323(NTAPI STOR_SYNCHRONIZED_ACCESS)(
2324 _In_ PVOID HwDeviceExtension,
2326
2327typedef STOR_SYNCHRONIZED_ACCESS *PSTOR_SYNCHRONIZED_ACCESS;
2328
2329typedef
2333 _In_ PVOID *Irp,
2336
2337typedef
2340 _In_ PVOID HwDeviceExtension,
2341 _In_ ULONG MessageId,
2343
2344typedef
2347 _In_ PVOID HwDeviceExtension,
2348 _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList,
2350
2351typedef
2354 _In_ PVOID HwDeviceExtension,
2355 _In_ PVOID Mdl,
2356 _In_ PVOID CurrentVa,
2361 _Inout_ PVOID ScatterGatherBuffer,
2362 _In_ ULONG ScatterGatherBufferLength);
2363
2364typedef
2368 _In_ PVOID HwDeviceExtension,
2369 _In_opt_ PVOID PMdl);
2370
2371typedef
2375 _In_ ULONG Tag,
2376 _In_ PVOID HwDeviceExtension,
2377 _Out_ PVOID *PMdl);
2378
2379typedef
2383
2385{
2394
2395typedef struct _HW_INITIALIZATION_DATA
2396{
2425
2426
2427
2428#define REVERSE_BYTES_QUAD(Destination, Source) { \
2429 PEIGHT_BYTE d = (PEIGHT_BYTE)(Destination); \
2430 PEIGHT_BYTE s = (PEIGHT_BYTE)(Source); \
2431 d->Byte7 = s->Byte0; \
2432 d->Byte6 = s->Byte1; \
2433 d->Byte5 = s->Byte2; \
2434 d->Byte4 = s->Byte3; \
2435 d->Byte3 = s->Byte4; \
2436 d->Byte2 = s->Byte5; \
2437 d->Byte1 = s->Byte6; \
2438 d->Byte0 = s->Byte7; \
2439}
2440
2441#define REVERSE_BYTES(Destination, Source) { \
2442 PFOUR_BYTE d = (PFOUR_BYTE)(Destination); \
2443 PFOUR_BYTE s = (PFOUR_BYTE)(Source); \
2444 d->Byte3 = s->Byte0; \
2445 d->Byte2 = s->Byte1; \
2446 d->Byte1 = s->Byte2; \
2447 d->Byte0 = s->Byte3; \
2448}
2449
2450#define REVERSE_BYTES_SHORT(Destination, Source) { \
2451 PTWO_BYTE d = (PTWO_BYTE)(Destination); \
2452 PTWO_BYTE s = (PTWO_BYTE)(Source); \
2453 d->Byte1 = s->Byte0; \
2454 d->Byte0 = s->Byte1; \
2455}
2456
2457#define StorPortCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length))
2458
2460PUCHAR
2461NTAPI
2463 _In_ PVOID HwDeviceExtension,
2465
2467BOOLEAN
2468NTAPI
2470 _In_ PVOID HwDeviceExtension,
2471 _In_ ULONG RequestsToComplete);
2472
2474VOID
2475NTAPI
2477 _In_ PVOID HwDeviceExtension,
2480 _In_ UCHAR Lun,
2481 _In_ UCHAR SrbStatus);
2482
2484ULONG64
2485NTAPI
2488
2491NTAPI
2493 _In_ ULONG64 UlongAddress);
2494
2496VOID
2497__cdecl
2499 _In_ ULONG DebugPrintLevel,
2500 _In_ PCCHAR DebugMessage,
2501 ...);
2502
2504BOOLEAN
2505NTAPI
2507 _In_ PVOID HwDeviceExtension,
2510 _In_ UCHAR Lun,
2511 _In_ ULONG RequestsToComplete);
2512
2514BOOLEAN
2515NTAPI
2517 _In_ PVOID HwDeviceExtension,
2520 _In_ UCHAR Lun);
2521
2523VOID
2524NTAPI
2526 _In_ PVOID HwDeviceExtension,
2527 _In_ PVOID MappedAddress);
2528
2530VOID
2531NTAPI
2533 _In_ PVOID HwDeviceExtension,
2535
2537ULONG
2538NTAPI
2540 _In_ PVOID DeviceExtension,
2541 _In_ ULONG BusDataType,
2542 _In_ ULONG SystemIoBusNumber,
2545 _In_ ULONG Length);
2546
2548PVOID
2549NTAPI
2551 _In_ PVOID HwDeviceExtension,
2553 _In_ ULONG SystemIoBusNumber,
2554 _In_ STOR_PHYSICAL_ADDRESS IoAddress,
2556 _In_ BOOLEAN InIoSpace);
2557
2559PVOID
2560NTAPI
2562 _In_ PVOID HwDeviceExtension,
2565 _In_ UCHAR Lun);
2566
2569NTAPI
2571 _In_ PVOID HwDeviceExtension,
2574 _Out_ ULONG *Length);
2575
2578NTAPI
2580 _In_ PVOID DeviceExtension,
2582
2585NTAPI
2587 _In_ PVOID DeviceExtension,
2590 _In_ UCHAR Lun,
2591 _In_ LONG QueueTag);
2592
2594PVOID
2595NTAPI
2597 _In_ PVOID HwDeviceExtension,
2600
2602PVOID
2603NTAPI
2605 _In_ PVOID HwDeviceExtension,
2607
2609ULONG
2610NTAPI
2616
2618VOID
2619NTAPI
2621 _In_ PVOID HwDeviceExtension,
2625 _In_ UCHAR Lun,
2627 _In_ ULONG UniqueId);
2628
2630VOID
2631NTAPI
2635 _In_ ULONG Length);
2636
2638VOID
2639__cdecl
2642 _In_ PVOID HwDeviceExtension,
2643 ...);
2644
2646VOID
2647NTAPI
2649 _Out_ PLARGE_INTEGER CurrentTime);
2650
2652BOOLEAN
2653NTAPI
2655 _In_ PVOID HwDeviceExtension,
2656 _In_ ULONG TimeOut);
2657
2659BOOLEAN
2660NTAPI
2662 _In_ PVOID HwDeviceExtension,
2665 _In_ UCHAR Lun,
2666 _In_ ULONG TimeOut);
2667
2669VOID
2670NTAPI
2672 _In_ PVOID HwDeviceExtension,
2675 _In_ ULONG Count);
2676
2678VOID
2679NTAPI
2681 _In_ PVOID HwDeviceExtension,
2684 _In_ ULONG Count);
2685
2687VOID
2688NTAPI
2690 _In_ PVOID HwDeviceExtension,
2693 _In_ ULONG Count);
2694
2696UCHAR
2697NTAPI
2699 _In_ PVOID HwDeviceExtension,
2700 _In_ PUCHAR Port);
2701
2703ULONG
2704NTAPI
2706 _In_ PVOID HwDeviceExtension,
2707 _In_ PULONG Port);
2708
2710USHORT
2711NTAPI
2713 _In_ PVOID HwDeviceExtension,
2714 _In_ PUSHORT Port);
2715
2717VOID
2718NTAPI
2720 _In_ PVOID HwDeviceExtension,
2723 _In_ ULONG Count);
2724
2726VOID
2727NTAPI
2729 _In_ PVOID HwDeviceExtension,
2732 _In_ ULONG Count);
2733
2735VOID
2736NTAPI
2738 _In_ PVOID HwDeviceExtension,
2741 _In_ ULONG Count);
2742
2744UCHAR
2745NTAPI
2747 _In_ PVOID HwDeviceExtension,
2749
2751ULONG
2752NTAPI
2754 _In_ PVOID HwDeviceExtension,
2756
2758USHORT
2759NTAPI
2761 _In_ PVOID HwDeviceExtension,
2763
2765BOOLEAN
2766NTAPI
2768 _In_ PVOID HwDeviceExtension);
2769
2771BOOLEAN
2772NTAPI
2774 _In_ PVOID HwDeviceExtension,
2777 _In_ ULONG Type,
2780
2782BOOLEAN
2783NTAPI
2785 _In_ PVOID HwDeviceExtension,
2788 _In_ ULONG Type,
2791
2793BOOLEAN
2794NTAPI
2796 _In_ PVOID HwDeviceExtension);
2797
2799BOOLEAN
2800NTAPI
2802 _In_ PVOID HwDeviceExtension,
2805 _In_ UCHAR Lun);
2806
2808ULONG
2809NTAPI
2811 _In_ PVOID DeviceExtension,
2812 _In_ ULONG BusDataType,
2813 _In_ ULONG SystemIoBusNumber,
2817 _In_ ULONG Length);
2818
2820BOOLEAN
2821NTAPI
2823 _In_ PVOID HwDeviceExtension,
2826 _In_ UCHAR Lun,
2827 _In_ ULONG Depth);
2828
2830VOID
2831NTAPI
2833 _In_ ULONG Delay);
2834
2836VOID
2837NTAPI
2839 _In_ PVOID HwDeviceExtension,
2840 _In_ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
2842
2844BOOLEAN
2845NTAPI
2847 _In_ PVOID HwDeviceExtension,
2849 _In_ ULONG SystemIoBusNumber,
2850 _In_ STOR_PHYSICAL_ADDRESS IoAddress,
2852 _In_ BOOLEAN InIoSpace);
2853
2855VOID
2856NTAPI
2858 _In_ PVOID HwDeviceExtension,
2861 _In_ ULONG Count);
2862
2864VOID
2865NTAPI
2867 _In_ PVOID HwDeviceExtension,
2870 _In_ ULONG Count);
2871
2873VOID
2874NTAPI
2876 _In_ PVOID HwDeviceExtension,
2879 _In_ ULONG Count);
2880
2882VOID
2883NTAPI
2885 _In_ PVOID HwDeviceExtension,
2887 _In_ UCHAR Value);
2888
2890VOID
2891NTAPI
2893 _In_ PVOID HwDeviceExtension,
2895 _In_ ULONG Value);
2896
2898VOID
2899NTAPI
2901 _In_ PVOID HwDeviceExtension,
2903 _In_ USHORT Value);
2904
2906VOID
2907NTAPI
2909 _In_ PVOID HwDeviceExtension,
2912 _In_ ULONG Count);
2913
2915VOID
2916NTAPI
2918 _In_ PVOID HwDeviceExtension,
2921 _In_ ULONG Count);
2922
2924VOID
2925NTAPI
2927 _In_ PVOID HwDeviceExtension,
2930 _In_ ULONG Count);
2931
2933VOID
2934NTAPI
2936 _In_ PVOID HwDeviceExtension,
2938 _In_ UCHAR Value);
2939
2941VOID
2942NTAPI
2944 _In_ PVOID HwDeviceExtension,
2946 _In_ ULONG Value);
2947
2949VOID
2950NTAPI
2952 _In_ PVOID HwDeviceExtension,
2954 _In_ USHORT Value);
2955
2956
2958BOOLEAN
2960 _In_ PVOID DeviceExtension,
2961 _In_ PHW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine)
2962{
2963 LONG Succ;
2964 Succ = FALSE;
2966 DeviceExtension,
2967 HwPassiveInitializeRoutine,
2968 &Succ);
2969 return (BOOLEAN)Succ;
2970}
2971
2973VOID
2975 _In_ PVOID DeviceExtension,
2977 _In_ PHW_DPC_ROUTINE HwDpcRoutine)
2978{
2980 DeviceExtension,
2981 Dpc,
2982 HwDpcRoutine);
2983}
2984
2986BOOLEAN
2988 _In_ PVOID DeviceExtension,
2992{
2993 LONG Succ;
2994 Succ = FALSE;
2996 DeviceExtension,
2997 Dpc,
3000 &Succ);
3001 return (BOOLEAN)Succ;
3002}
3003
3005VOID
3007 _In_ PVOID DeviceExtension,
3009 _In_ PVOID LockContext,
3011{
3013 DeviceExtension,
3014 SpinLock,
3015 LockContext,
3016 LockHandle);
3017}
3018
3020VOID
3022 _In_ PVOID DeviceExtension,
3024{
3026 DeviceExtension,
3027 LockHandle);
3028}
3029
3031ULONG
3033 _In_ STORPORT_FUNCTION_CODE FunctionCode,
3034 _In_ PVOID HwDeviceExtension,
3035 ...);
3036
3038ULONG
3040 _In_ PVOID HwDeviceExtension,
3042 _In_ ULONG Tag,
3043 _Out_ PVOID *BufferPointer
3044 )
3045{
3047 HwDeviceExtension,
3049 Tag,
3050 BufferPointer);
3051}
3052
3054ULONG
3056 _In_ PVOID HwDeviceExtension,
3057 _In_ PVOID BufferPointer)
3058{
3060 HwDeviceExtension,
3061 BufferPointer);
3062}
3063
3065ULONG
3067 _In_ PVOID HwDeviceExtension,
3068 _In_ PVOID BufferPointer,
3070 _Out_ PVOID *Mdl)
3071{
3073 HwDeviceExtension,
3074 BufferPointer,
3076 Mdl);
3077}
3078
3080ULONG
3082 _In_ PVOID HwDeviceExtension,
3083 _In_ PVOID Mdl)
3084{
3086 HwDeviceExtension,
3087 Mdl);
3088}
3089
3091ULONG
3093 _In_ PVOID HwDeviceExtension,
3095{
3097 HwDeviceExtension,
3098 Mdl);
3099}
3100
3102ULONG
3104 _In_ PVOID HwDeviceExtension,
3106 _Out_ PVOID *SystemAddress)
3107{
3109 HwDeviceExtension,
3110 Srb,
3111 SystemAddress);
3112}
3113
3115ULONG
3117 _In_ PVOID HwDeviceExtension,
3119 _Out_ PVOID *Mdl)
3120{
3122 HwDeviceExtension,
3123 Srb,
3124 Mdl);
3125}
3126
3128ULONG
3130 _In_ PVOID HwDeviceExtension,
3131 _In_ PVOID Irp)
3132{
3134 HwDeviceExtension,
3135 Irp);
3136}
3137
3139ULONG
3141 _In_ PVOID HwDeviceExtension,
3142 _Out_ PVOID *AdapterDeviceObject,
3145{
3147 HwDeviceExtension,
3148 AdapterDeviceObject,
3151}
3152
3154ULONG
3156 _In_ PVOID HwDeviceExtension,
3157 _In_ PVOID Mdl,
3158 _In_ PVOID CurrentVa,
3163 _Inout_ PVOID ScatterGatherBuffer,
3164 _In_ ULONG ScatterGatherBufferLength)
3165{
3167 HwDeviceExtension,
3168 Mdl,
3169 CurrentVa,
3170 Length,
3172 Context,
3174 ScatterGatherBuffer,
3175 ScatterGatherBufferLength);
3176}
3177
3179ULONG
3181 _In_ PVOID HwDeviceExtension,
3182 _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList,
3184{
3186 HwDeviceExtension,
3187 ScatterGatherList,
3189}
3190
3192ULONG
3194 _In_ PVOID HwDeviceExtension,
3195 _In_ ULONG MessageId,
3197{
3199 HwDeviceExtension,
3200 MessageId,
3201 OldIrql);
3202}
3203
3205ULONG
3207 _In_ PVOID HwDeviceExtension,
3208 _In_ ULONG MessageId,
3210{
3212 HwDeviceExtension,
3213 MessageId,
3214 OldIrql);
3215}
3216
3218ULONG
3220 _In_ PVOID HwDeviceExtension,
3221 _In_ ULONG MessageId,
3223{
3225 HwDeviceExtension,
3226 MessageId,
3227 InterruptInfo);
3228}
3229
3231ULONG
3233 _In_ PVOID HwDeviceExtension,
3235 _Inout_ PPERF_CONFIGURATION_DATA PerfConfigData)
3236{
3238 HwDeviceExtension,
3239 Query,
3240 PerfConfigData);
3241}
3242
3244ULONG
3246 _In_ PVOID HwDeviceExtension,
3248 _Inout_ PSTARTIO_PERFORMANCE_PARAMETERS StartIoPerfParams)
3249{
3251 HwDeviceExtension,
3252 Srb,
3253 StartIoPerfParams);
3254}
3255
3257ULONG
3259 _In_ PVOID HwDeviceExtension,
3262{
3264 HwDeviceExtension,
3265 LogDetails,
3266 MaximumSize);
3267}
3268
3269#if DBG
3270#define DebugPrint(x) StorPortDebugPrint x
3271#else
3272#define DebugPrint(x)
3273#endif
3274
3275#ifdef __cplusplus
3276}
3277#endif
3278
3279#endif /* _NTSTORPORT_ */
#define SaveState(State)
Type
Definition: Type.h:7
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
#define WriteBuffer(BaseIoAddress, Buffer, Count)
Definition: atapi.h:344
#define ReadBuffer(BaseIoAddress, Buffer, Count)
Definition: atapi.h:339
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
Definition: query.c:292
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 WriteToDevice
Definition: cdrom.h:992
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
UINT Depth
Definition: d3d12.idl:4644
_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
#define FALSE
Definition: types.h:117
#define __cdecl
Definition: corecrt.h:121
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
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: srb.h:468
BOOLEAN(NTAPI * PHW_INITIALIZE)(IN PVOID DeviceExtension)
Definition: srb.h:437
UCHAR KIRQL
Definition: env_spec_w32.h:591
_Must_inspect_result_ __in_opt PWDF_OBJECT_ATTRIBUTES __in PVOID __in __out WDFMEMORY * PMemory
CPPORT Port[4]
Definition: headless.c:38
_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
_In_ NDIS_ERROR_CODE ErrorCode
Definition: ndis.h:4436
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_opt_ PLARGE_INTEGER MaximumSize
Definition: mmfuncs.h:366
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
#define _When_(c, a)
Definition: no_sal2.h:38
int Count
Definition: noreturn.cpp:7
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
#define _ANONYMOUS_UNION
Definition: pecoff.h:89
#define _ANONYMOUS_STRUCT
Definition: pecoff.h:115
#define BOOLEAN
Definition: pedump.c:73
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
static WCHAR Address[46]
Definition: ping.c:68
enum _INTERFACE_TYPE INTERFACE_TYPE
@ Reserved2
Definition: sacdrv.h:1470
@ Reserved1
Definition: sacdrv.h:1464
enum _KINTERRUPT_MODE KINTERRUPT_MODE
enum _DMA_SPEED DMA_SPEED
enum _DMA_WIDTH DMA_WIDTH
_VPD_ASSOCIATION
Definition: scsi.h:2492
_VPD_IDENTIFIER_TYPE
Definition: scsi.h:2500
_VPD_CODE_SET
Definition: scsi.h:2485
_STOR_POWER_ACTION
Definition: srb.h:364
enum _STOR_PNP_ACTION STOR_PNP_ACTION
_STOR_PNP_ACTION
Definition: srb.h:399
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA _In_ PVOID HwContext
Definition: srb.h:907
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
_Must_inspect_result_ _In_ PVOID _In_ struct _HW_INITIALIZATION_DATA * HwInitializationData
Definition: srb.h:906
enum _STOR_POWER_ACTION STOR_POWER_ACTION
_STOR_DEVICE_POWER_STATE
Definition: srb.h:355
VOID(NTAPI * PHW_DMA_STARTED)(_In_ PVOID DeviceExtension)
Definition: storport.h:2275
STORPORT_API BOOLEAN NTAPI StorPortSetDeviceQueueDepth(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG Depth)
Definition: storport.c:1739
FORCEINLINE VOID StorPortReleaseSpinLock(_In_ PVOID DeviceExtension, _Inout_ PSTOR_LOCK_HANDLE LockHandle)
Definition: storport.h:3021
BOOLEAN(NTAPI * PHW_BUILDIO)(_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.h:2247
union _TWO_BYTE TWO_BYTE
@ StorPowerActionWarmEject
Definition: storport.h:573
@ StorPowerActionShutdown
Definition: storport.h:570
@ StorPowerActionReserved
Definition: storport.h:567
@ StorPowerActionNone
Definition: storport.h:566
@ StorPowerActionShutdownReset
Definition: storport.h:571
@ StorPowerActionSleep
Definition: storport.h:568
@ StorPowerActionHibernate
Definition: storport.h:569
@ StorPowerActionShutdownOff
Definition: storport.h:572
struct _SCSI_REQUEST_BLOCK SCSI_REQUEST_BLOCK
struct _STARTIO_PERFORMANCE_PARAMETERS STARTIO_PERFORMANCE_PARAMETERS
VOID(NTAPI * PStorPortPutScatterGatherList)(_In_ PVOID HwDeviceExtension, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList, _In_ BOOLEAN WriteToDevice)
Definition: storport.h:2346
struct _ACCESS_RANGE ACCESS_RANGE
union _EIGHT_BYTE EIGHT_BYTE
enum _STOR_PNP_ACTION STOR_PNP_ACTION
struct _INQUIRYDATA * PINQUIRYDATA
struct _SCSI_PNP_REQUEST_BLOCK * PSCSI_PNP_REQUEST_BLOCK
struct _STOR_SCATTER_GATHER_LIST STOR_SCATTER_GATHER_LIST
FORCEINLINE ULONG StorPortReleaseMSISpinLock(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _In_ ULONG OldIrql)
Definition: storport.h:3206
struct _READ_CAPACITY_DATA_EX READ_CAPACITY_DATA_EX
STORPORT_API VOID __cdecl StorPortDebugPrint(_In_ ULONG DebugPrintLevel, _In_ PCCHAR DebugMessage,...)
FORCEINLINE ULONG StorPortGetSystemAddress(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *SystemAddress)
Definition: storport.h:3103
STORPORT_API UCHAR NTAPI StorPortReadPortUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port)
Definition: stubs.c:60
STORPORT_API VOID NTAPI StorPortWritePortUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ ULONG Value)
Definition: stubs.c:216
FORCEINLINE ULONG StorPortAllocateMdl(_In_ PVOID HwDeviceExtension, _In_ PVOID BufferPointer, _In_ ULONG NumberOfBytes, _Out_ PVOID *Mdl)
Definition: storport.h:3066
enum _STOR_PNP_ACTION * PSTOR_PNP_ACTION
@ ScsiRestartAdapter
Definition: storport.h:516
@ ScsiQuerySupportedControlTypes
Definition: storport.h:514
@ ScsiAdapterControlMax
Definition: storport.h:519
@ ScsiSetBootConfig
Definition: storport.h:517
@ ScsiStopAdapter
Definition: storport.h:515
@ MakeAdapterControlTypeSizeOfUlong
Definition: storport.h:520
@ ScsiSetRunningConfig
Definition: storport.h:518
struct _READ_CAPACITY_DATA * PREAD_CAPACITY_DATA
struct _STOR_SCATTER_GATHER_ELEMENT * PSTOR_SCATTER_GATHER_ELEMENT
BOOLEAN(NTAPI * PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE)(_In_ PVOID DeviceExtension, _In_ ULONG MessageId)
Definition: storport.h:2068
BOOLEAN(NTAPI * PHW_STARTIO)(_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.h:2253
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:668
@ SG_BUFFER_TOO_SMALL
Definition: storport.h:670
@ SG_ALLOCATED
Definition: storport.h:669
STORPORT_API UCHAR NTAPI StorPortReadRegisterUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register)
Definition: stubs.c:132
struct _STOR_LOG_EVENT_DETAILS * PSTOR_LOG_EVENT_DETAILS
STORPORT_API VOID NTAPI StorPortWritePortUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ USHORT Value)
Definition: stubs.c:228
FORCEINLINE ULONG StorPortGetMSIInfo(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _Out_ PMESSAGE_INTERRUPT_INFORMATION InterruptInfo)
Definition: storport.h:3219
STORPORT_API BOOLEAN NTAPI StorPortBusy(_In_ PVOID HwDeviceExtension, _In_ ULONG RequestsToComplete)
Definition: storport.c:541
struct _VPD_IDENTIFICATION_PAGE VPD_IDENTIFICATION_PAGE
FORCEINLINE ULONG StorPortGetStartIoPerfParams(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Inout_ PSTARTIO_PERFORMANCE_PARAMETERS StartIoPerfParams)
Definition: storport.h:3245
PVOID(NTAPI * PStorPortAllocatePool)(_In_ ULONG NumberOfBytes, _In_ ULONG Tag, _In_ PVOID HwDeviceExtension, _Out_ PVOID *PMdl)
Definition: storport.h:2373
struct _VPD_SERIAL_NUMBER_PAGE VPD_SERIAL_NUMBER_PAGE
FORCEINLINE BOOLEAN StorPortIssueDpc(_In_ PVOID DeviceExtension, _In_ PSTOR_DPC Dpc, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
Definition: storport.h:2987
@ StorRemoveDevice
Definition: storport.h:579
@ StorQueryCapabilities
Definition: storport.h:581
@ StorQueryResourceRequirements
Definition: storport.h:582
@ StorFilterResourceRequirements
Definition: storport.h:583
@ StorStopDevice
Definition: storport.h:580
@ StorStartDevice
Definition: storport.h:578
@ StorSurpriseRemoval
Definition: storport.h:584
FORCEINLINE ULONG StorPortAllocatePool(_In_ PVOID HwDeviceExtension, _In_ ULONG NumberOfBytes, _In_ ULONG Tag, _Out_ PVOID *BufferPointer)
Definition: storport.h:3039
struct _VPD_SERIAL_NUMBER_PAGE * PVPD_SERIAL_NUMBER_PAGE
struct _PORT_CONFIGURATION_INFORMATION * PPORT_CONFIGURATION_INFORMATION
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:1645
enum _SCSI_NOTIFICATION_TYPE * PSCSI_NOTIFICATION_TYPE
struct _VPD_MEDIA_SERIAL_NUMBER_PAGE VPD_MEDIA_SERIAL_NUMBER_PAGE
struct _VPD_SUPPORTED_PAGES_PAGE VPD_SUPPORTED_PAGES_PAGE
enum _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE
enum _VPD_IDENTIFIER_TYPE VPD_IDENTIFIER_TYPE
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:630
struct _LUN_LIST LUN_LIST
FORCEINLINE ULONG StorPortCompleteServiceIrp(_In_ PVOID HwDeviceExtension, _In_ PVOID Irp)
Definition: storport.h:3129
VOID(NTAPI * PHW_TIMER_EX)(_In_ PVOID DeviceExtension, _In_opt_ PVOID Context)
Definition: storport.h:2269
struct _PERF_CONFIGURATION_DATA PERF_CONFIGURATION_DATA
_STORPORT_FUNCTION_CODE
Definition: storport.h:618
@ ExtFunctionFreeContiguousMemorySpecifyCache
Definition: storport.h:645
@ ExtFunctionGetGroupAffinity
Definition: storport.h:639
@ ExtFunctionFreeWorker
Definition: storport.h:653
@ ExtFunctionGetNodeAffinity
Definition: storport.h:641
@ ExtFunctionCompleteServiceIrp
Definition: storport.h:626
@ ExtFunctionAllocateMdl
Definition: storport.h:621
@ ExtFunctionInitializeTimer
Definition: storport.h:654
@ ExtFunctionRequestTimer
Definition: storport.h:655
@ ExtFunctionAllocateContiguousMemorySpecifyCacheNode
Definition: storport.h:644
@ ExtFunctionInvokeAcpiMethod
Definition: storport.h:649
@ ExtFunctionGetOriginalMdl
Definition: storport.h:625
@ ExtFunctionSetPowerSettingNotificationGuids
Definition: storport.h:648
@ ExtFunctionFreePool
Definition: storport.h:620
@ ExtFunctionGetDeviceObjects
Definition: storport.h:627
@ ExtFunctionAcquireMSISpinLock
Definition: storport.h:630
@ ExtFunctionFreeTimer
Definition: storport.h:656
@ ExtFunctionInitializePerformanceOptimizations
Definition: storport.h:633
@ ExtFunctionGetLogicalProcessorRelationship
Definition: storport.h:643
@ ExtFunctionGetMessageInterruptInformation
Definition: storport.h:632
@ ExtFunctionGetSystemAddress
Definition: storport.h:624
@ ExtFunctionGetStartIoPerformanceParameters
Definition: storport.h:634
@ ExtFunctionLogSystemEvent
Definition: storport.h:635
@ ExtFunctionGetRequestInfo
Definition: storport.h:650
@ ExtFunctionBuildScatterGatherList
Definition: storport.h:628
@ ExtFunctionPutScatterGatherList
Definition: storport.h:629
@ ExtFunctionReleaseMSISpinLock
Definition: storport.h:631
@ ExtFunctionFreeMdl
Definition: storport.h:622
@ ExtFunctionQueueWorkItem
Definition: storport.h:652
@ ExtFunctionGetActiveGroupCount
Definition: storport.h:638
@ ExtFunctionBuildMdlForNonPagedPool
Definition: storport.h:623
@ ExtFunctionGetCurrentProcessorNumber
Definition: storport.h:637
@ ExtFunctionGetHighestNodeNumber
Definition: storport.h:642
@ ExtFunctionAllocatePool
Definition: storport.h:619
@ ExtFunctionInitializeWorker
Definition: storport.h:651
@ ExtFunctionGetActiveNodeCount
Definition: storport.h:640
enum _STOR_EVENT_ASSOCIATION_ENUM STOR_EVENT_ASSOCIATION_ENUM
union _CDB CDB
FORCEINLINE ULONG StorPortGetDeviceObjects(_In_ PVOID HwDeviceExtension, _Out_ PVOID *AdapterDeviceObject, _Out_ PVOID *PhysicalDeviceObject, _Out_ PVOID *LowerDeviceObject)
Definition: storport.h:3140
@ ScsiAdapterControlSuccess
Definition: storport.h:525
@ ScsiAdapterControlUnsuccessful
Definition: storport.h:526
struct _STOR_LOCK_HANDLE STOR_LOCK_HANDLE
struct _HW_INITIALIZATION_DATA * PHW_INITIALIZATION_DATA
_STOR_SYNCHRONIZATION_MODEL
Definition: storport.h:485
@ StorSynchronizeFullDuplex
Definition: storport.h:487
@ StorSynchronizeHalfDuplex
Definition: storport.h:486
@ VpdAssocPort
Definition: storport.h:598
@ VpdAssocTarget
Definition: storport.h:599
@ VpdAssocReserved1
Definition: storport.h:600
@ VpdAssocDevice
Definition: storport.h:597
@ VpdAssocReserved2
Definition: storport.h:601
STORPORT_API PVOID NTAPI StorPortGetLogicalUnit(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
Definition: storport.c:1019
STORPORT_API ULONG NTAPI StorPortInitialize(_In_ PVOID Argument1, _In_ PVOID Argument2, _In_ PHW_INITIALIZATION_DATA HwInitializationData, _In_opt_ PVOID Unused)
struct _READ_CAPACITY_DATA READ_CAPACITY_DATA
struct _SCSI_WMI_REQUEST_BLOCK SCSI_WMI_REQUEST_BLOCK
STORPORT_API ULONG NTAPI StorPortReadRegisterUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Register)
Definition: stubs.c:143
enum _SCSI_ADAPTER_CONTROL_TYPE SCSI_ADAPTER_CONTROL_TYPE
BOOLEAN(NTAPI * PStorPortGetMessageInterruptInformation)(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _Out_ PMESSAGE_INTERRUPT_INFORMATION InterruptInfo)
Definition: storport.h:2339
FORCEINLINE ULONG StorPortBuildMdlForNonPagedPool(_In_ PVOID HwDeviceExtension, _Inout_ PVOID Mdl)
Definition: storport.h:3092
STORPORT_API VOID NTAPI StorPortReadPortBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:34
_STOR_EVENT_ASSOCIATION_ENUM
Definition: storport.h:660
@ StorEventTargetAssociation
Definition: storport.h:663
@ StorEventInvalidAssociation
Definition: storport.h:664
@ StorEventAdapterAssociation
Definition: storport.h:661
@ StorEventLunAssociation
Definition: storport.h:662
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
enum _STOR_DEVICE_POWER_STATE STOR_DEVICE_POWER_STATE
STORPORT_API VOID NTAPI StorPortMoveMemory(_Out_writes_bytes_(Length) PVOID WriteBuffer, _In_reads_bytes_(Length) PVOID ReadBuffer, _In_ ULONG Length)
Definition: storport.c:1354
FORCEINLINE VOID StorPortAcquireSpinLock(_In_ PVOID DeviceExtension, _In_ STOR_SPINLOCK SpinLock, _In_ PVOID LockContext, _Inout_ PSTOR_LOCK_HANDLE LockHandle)
Definition: storport.h:3006
STORPORT_API VOID NTAPI StorPortSynchronizeAccess(_In_ PVOID HwDeviceExtension, _In_ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine, _In_opt_ PVOID Context)
Definition: storport.c:1791
enum _VPD_CODE_SET VPD_CODE_SET
enum _GETSGSTATUS * PGETSGSTATUS
struct _VPD_SUPPORTED_PAGES_PAGE * PVPD_SUPPORTED_PAGES_PAGE
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:906
union _EIGHT_BYTE * PEIGHT_BYTE
struct _STOR_DEVICE_CAPABILITIES STOR_DEVICE_CAPABILITIES
struct _SCSI_PNP_REQUEST_BLOCK SCSI_PNP_REQUEST_BLOCK
struct _STOR_DPC STOR_DPC
struct _VPD_IDENTIFICATION_PAGE * PVPD_IDENTIFICATION_PAGE
_STOR_SPINLOCK
Definition: storport.h:506
@ StartIoLock
Definition: storport.h:508
@ InterruptLock
Definition: storport.h:509
@ DpcLock
Definition: storport.h:507
struct _MEMORY_REGION * PMEMORY_REGION
struct _MODE_PARAMETER_HEADER10 MODE_PARAMETER_HEADER10
struct _DPC_BUFFER DPC_BUFFER
enum _STORPORT_FUNCTION_CODE STORPORT_FUNCTION_CODE
_STOR_DMA_WIDTH
Definition: storport.h:498
@ Dma64BitScatterGather
Definition: storport.h:501
@ DmaUnknown
Definition: storport.h:499
@ Dma32Bit
Definition: storport.h:500
@ Dma64Bit
Definition: storport.h:502
union _FOUR_BYTE FOUR_BYTE
struct _STOR_DEVICE_CAPABILITIES * PSTOR_DEVICE_CAPABILITIES
struct _HW_INITIALIZATION_DATA HW_INITIALIZATION_DATA
struct _SCSI_POWER_REQUEST_BLOCK SCSI_POWER_REQUEST_BLOCK
struct _SENSE_DATA * PSENSE_DATA
STORPORT_API VOID NTAPI StorPortWriteRegisterUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ USHORT Value)
Definition: stubs.c:303
struct _STORPORT_EXTENDED_FUNCTIONS STORPORT_EXTENDED_FUNCTIONS
struct _SCSI_POWER_REQUEST_BLOCK * PSCSI_POWER_REQUEST_BLOCK
VOID(NTAPI * PHW_TIMER)(_In_ PVOID DeviceExtension)
Definition: storport.h:2264
STORPORT_API VOID NTAPI StorPortWritePortBufferUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port, _In_ PUSHORT Buffer, _In_ ULONG Count)
Definition: stubs.c:191
struct _STOR_SCATTER_GATHER_ELEMENT STOR_SCATTER_GATHER_ELEMENT
struct _MODE_PARAMETER_HEADER MODE_PARAMETER_HEADER
FORCEINLINE ULONG StorPortInitializePerfOpts(_In_ PVOID HwDeviceExtension, _In_ BOOLEAN Query, _Inout_ PPERF_CONFIGURATION_DATA PerfConfigData)
Definition: storport.h:3232
BOOLEAN(NTAPI * PHW_INTERRUPT)(_In_ PVOID DeviceExtension)
Definition: storport.h:2259
STORPORT_API VOID NTAPI StorPortFreeRegistryBuffer(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Buffer)
Definition: storport.c:891
struct _LUN_LIST * PLUN_LIST
struct _VPD_IDENTIFICATION_DESCRIPTOR * PVPD_IDENTIFICATION_DESCRIPTOR
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:1807
STORPORT_API PSTOR_SCATTER_GATHER_LIST NTAPI StorPortGetScatterGatherList(_In_ PVOID DeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.c:1092
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ PUCHAR Buffer, _In_ ULONG Count)
Definition: stubs.c:93
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:1037
union _TWO_BYTE * PTWO_BYTE
union _FOUR_BYTE * PFOUR_BYTE
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:1625
FORCEINLINE BOOLEAN StorPortEnablePassiveInitialization(_In_ PVOID DeviceExtension, _In_ PHW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine)
Definition: storport.h:2959
STORPORT_API ULONG NTAPI StorPortReadPortUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port)
Definition: stubs.c:71
FORCEINLINE ULONG StorPortFreeMdl(_In_ PVOID HwDeviceExtension, _In_ PVOID Mdl)
Definition: storport.h:3081
struct _MODE_PARAMETER_HEADER10 * PMODE_PARAMETER_HEADER10
STORPORT_API BOOLEAN NTAPI StorPortPauseDevice(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ ULONG TimeOut)
Definition: storport.c:1572
STORPORT_API VOID NTAPI StorPortWritePortUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ UCHAR Value)
Definition: stubs.c:204
struct _STORPORT_EXTENDED_FUNCTIONS * PSTORPORT_EXTENDED_FUNCTIONS
VOID(NTAPI * PpostScaterGatherExecute)(_In_ PVOID *DeviceObject, _In_ PVOID *Irp, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGather, _In_ PVOID Context)
Definition: storport.h:2331
BOOLEAN(NTAPI * PHW_ADAPTER_STATE)(IN PVOID DeviceExtension, IN PVOID Context, IN BOOLEAN SaveState)
Definition: storport.h:2296
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:3155
STORPORT_API PUCHAR NTAPI StorPortAllocateRegistryBuffer(_In_ PVOID HwDeviceExtension, _In_ PULONG Length)
Definition: storport.c:525
STOR_SYNCHRONIZED_ACCESS * PSTOR_SYNCHRONIZED_ACCESS
Definition: storport.h:2327
enum _STOR_SPINLOCK STOR_SPINLOCK
BOOLEAN(* PHW_PASSIVE_INITIALIZE_ROUTINE)(_In_ PVOID DeviceExtension)
Definition: storport.h:2310
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:1610
BOOLEAN(NTAPI * PHW_RESET_BUS)(IN PVOID DeviceExtension, IN ULONG PathId)
Definition: storport.h:2290
struct _SENSE_DATA SENSE_DATA
STORPORT_API ULONG64 NTAPI StorPortConvertPhysicalAddressToUlong64(_In_ STOR_PHYSICAL_ADDRESS Address)
struct _STOR_SCATTER_GATHER_LIST * PSTOR_SCATTER_GATHER_LIST
STORPORT_API ULONG StorPortExtendedFunction(_In_ STORPORT_FUNCTION_CODE FunctionCode, _In_ PVOID HwDeviceExtension,...)
Definition: storport.c:695
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:3258
BOOLEAN(NTAPI * PHW_INITIALIZE)(_In_ PVOID DeviceExtension)
Definition: storport.h:2242
STORPORT_API VOID NTAPI StorPortWritePortBufferUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Port, _In_ PUCHAR Buffer, _In_ ULONG Count)
Definition: stubs.c:165
struct _MESSAGE_INTERRUPT_INFORMATION * PMESSAGE_INTERRUPT_INFORMATION
struct _SCSI_REQUEST_BLOCK * PSCSI_REQUEST_BLOCK
STORPORT_API VOID NTAPI StorPortCompleteRequest(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun, _In_ UCHAR SrbStatus)
Definition: storport.c:557
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:1698
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:947
VOID(* PHW_DPC_ROUTINE)(_In_ PSTOR_DPC Dpc, _In_ PVOID HwDeviceExtension, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
Definition: storport.h:2315
struct _STOR_LOCK_HANDLE * PSTOR_LOCK_HANDLE
struct _MESSAGE_INTERRUPT_INFORMATION MESSAGE_INTERRUPT_INFORMATION
STORPORT_API VOID NTAPI StorPortQuerySystemTime(_Out_ PLARGE_INTEGER CurrentTime)
STORPORT_API USHORT NTAPI StorPortReadPortUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Port)
Definition: stubs.c:82
struct _VPD_MEDIA_SERIAL_NUMBER_PAGE * PVPD_MEDIA_SERIAL_NUMBER_PAGE
struct _STOR_LOG_EVENT_DETAILS STOR_LOG_EVENT_DETAILS
enum _STOR_DMA_WIDTH STOR_DMA_WIDTH
struct _PORT_CONFIGURATION_INFORMATION PORT_CONFIGURATION_INFORMATION
STORPORT_API BOOLEAN NTAPI StorPortDeviceReady(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
Definition: storport.c:664
enum _STOR_POWER_ACTION * PSTOR_POWER_ACTION
STORPORT_API VOID NTAPI StorPortReadRegisterBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:106
STORPORT_API BOOLEAN NTAPI StorPortPause(_In_ PVOID HwDeviceExtension, _In_ ULONG TimeOut)
Definition: storport.c:1556
enum _STOR_POWER_ACTION STOR_POWER_ACTION
STORPORT_API PVOID NTAPI StorPortGetVirtualAddress(_In_ PVOID HwDeviceExtension, _In_ STOR_PHYSICAL_ADDRESS PhysicalAddress)
Definition: storport.c:1207
FORCEINLINE ULONG StorPortGetOriginalMdl(_In_ PVOID HwDeviceExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Out_ PVOID *Mdl)
Definition: storport.h:3116
STORPORT_API VOID NTAPI StorPortWritePortBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Port, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:178
STORPORT_API VOID NTAPI StorPortWriteRegisterUchar(_In_ PVOID HwDeviceExtension, _In_ PUCHAR Register, _In_ UCHAR Value)
Definition: stubs.c:279
struct _SCSI_WMI_REQUEST_BLOCK * PSCSI_WMI_REQUEST_BLOCK
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:1112
SCSI_ADAPTER_CONTROL_STATUS(NTAPI * PHW_ADAPTER_CONTROL)(IN PVOID DeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters)
Definition: storport.h:2303
@ VpdIdentifierTypeSCSINameString
Definition: storport.h:614
@ VpdIdentifierTypeVendorId
Definition: storport.h:607
@ VpdIdentifierTypeMD5LogicalUnitId
Definition: storport.h:613
@ VpdIdentifierTypeTargetPortGroup
Definition: storport.h:611
@ VpdIdentifierTypeLogicalUnitGroup
Definition: storport.h:612
@ VpdIdentifierTypeFCPHName
Definition: storport.h:609
@ VpdIdentifierTypePortRelative
Definition: storport.h:610
@ VpdIdentifierTypeEUI64
Definition: storport.h:608
@ VpdIdentifierTypeVendorSpecific
Definition: storport.h:606
STORPORT_API USHORT NTAPI StorPortReadRegisterUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register)
Definition: stubs.c:154
STORPORT_API VOID NTAPI StorPortStallExecution(_In_ ULONG Delay)
Definition: storport.c:1778
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
FORCEINLINE ULONG StorPortPutScatterGatherList(_In_ PVOID HwDeviceExtension, _In_ PSTOR_SCATTER_GATHER_LIST ScatterGatherList, _In_ BOOLEAN WriteToDevice)
Definition: storport.h:3180
STORPORT_API BOOLEAN NTAPI StorPortResume(_In_ PVOID HwDeviceExtension)
Definition: storport.c:1665
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUshort(_In_ PVOID HwDeviceExtension, _In_ PUSHORT Register, _In_ PUSHORT Buffer, _In_ ULONG Count)
Definition: stubs.c:266
struct _INQUIRYDATA INQUIRYDATA
enum _INTERRUPT_SYNCHRONIZATION_MODE INTERRUPT_SYNCHRONIZATION_MODE
enum _SCSI_ADAPTER_CONTROL_TYPE * PSCSI_ADAPTER_CONTROL_TYPE
struct _PERF_CONFIGURATION_DATA * PPERF_CONFIGURATION_DATA
PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS
Definition: storport.h:2050
enum _STORPORT_FUNCTION_CODE * PSTORPORT_FUNCTION_CODE
union _CDB * PCDB
struct _MODE_PARAMETER_BLOCK * PMODE_PARAMETER_BLOCK
enum _VPD_CODE_SET * PVPD_CODE_SET
_In_ PVOID Context
Definition: storport.h:2325
STORPORT_API VOID NTAPI StorPortWriteRegisterBufferUlong(_In_ PVOID HwDeviceExtension, _In_ PULONG Register, _In_ PULONG Buffer, _In_ ULONG Count)
Definition: stubs.c:253
STORPORT_API VOID NTAPI StorPortFreeDeviceBase(_In_ PVOID HwDeviceExtension, _In_ PVOID MappedAddress)
Definition: storport.c:876
STORPORT_API BOOLEAN NTAPI StorPortResumeDevice(_In_ PVOID HwDeviceExtension, _In_ UCHAR PathId, _In_ UCHAR TargetId, _In_ UCHAR Lun)
Definition: storport.c:1680
@ InitializeDpc
Definition: storport.h:548
@ AcquireSpinLock
Definition: storport.h:550
@ ResetDetected
Definition: storport.h:534
@ _obsolete2
Definition: storport.h:536
@ WMIEvent
Definition: storport.h:539
@ QueryTickCount
Definition: storport.h:543
@ _obsolete1
Definition: storport.h:535
@ RequestTimerCall
Definition: storport.h:537
@ IssueDpc
Definition: storport.h:549
@ RequestComplete
Definition: storport.h:531
@ ReleaseSpinLock
Definition: storport.h:551
@ BufferOverrunDetected
Definition: storport.h:544
@ WMIReregister
Definition: storport.h:540
@ LinkUp
Definition: storport.h:541
@ NextRequest
Definition: storport.h:532
@ BusChangeDetected
Definition: storport.h:538
@ NextLuRequest
Definition: storport.h:533
@ TraceNotification
Definition: storport.h:545
@ LinkDown
Definition: storport.h:542
@ GetExtendedFunctionTable
Definition: storport.h:546
@ EnablePassiveInitialization
Definition: storport.h:547
FORCEINLINE ULONG StorPortAcquireMSISpinLock(_In_ PVOID HwDeviceExtension, _In_ ULONG MessageId, _In_ PULONG OldIrql)
Definition: storport.h:3193
enum _SCSI_ADAPTER_CONTROL_STATUS * PSCSI_ADAPTER_CONTROL_STATUS
enum _GETSGSTATUS GETSGSTATUS
_INTERRUPT_SYNCHRONIZATION_MODE
Definition: storport.h:491
@ InterruptSynchronizePerMessage
Definition: storport.h:494
@ InterruptSynchronizeAll
Definition: storport.h:493
@ InterruptSupportNone
Definition: storport.h:492
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:2353
enum _VPD_ASSOCIATION VPD_ASSOCIATION
FORCEINLINE VOID StorPortInitializeDpc(_In_ PVOID DeviceExtension, _Out_ PSTOR_DPC Dpc, _In_ PHW_DPC_ROUTINE HwDpcRoutine)
Definition: storport.h:2974
struct _STARTIO_PERFORMANCE_PARAMETERS * PSTARTIO_PERFORMANCE_PARAMETERS
struct _MODE_PARAMETER_BLOCK MODE_PARAMETER_BLOCK
FORCEINLINE ULONG StorPortFreePool(_In_ PVOID HwDeviceExtension, _In_ PVOID BufferPointer)
Definition: storport.h:3055
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:1331
struct _MODE_PARAMETER_HEADER * PMODE_PARAMETER_HEADER
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
VOID(NTAPI * PStorPortFreePool)(_In_ PVOID PMemory, _In_ PVOID HwDeviceExtension, _In_opt_ PVOID PMdl)
Definition: storport.h:2366
enum _STOR_SYNCHRONIZATION_MODEL STOR_SYNCHRONIZATION_MODEL
STORPORT_API STOR_PHYSICAL_ADDRESS NTAPI StorPortConvertUlong64ToPhysicalAddress(_In_ ULONG64 UlongAddress)
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:2280
PVOID(NTAPI * PStorPortGetSystemAddress)(_In_ PSCSI_REQUEST_BLOCK Srb)
Definition: storport.h:2381
struct _STOR_DPC * PSTOR_DPC
@ VpdCodeSetBinary
Definition: storport.h:590
@ VpdCodeSetReserved
Definition: storport.h:589
@ VpdCodeSetAscii
Definition: storport.h:591
@ VpdCodeSetUTF8
Definition: storport.h:592
struct _ACCESS_RANGE * PACCESS_RANGE
STORPORT_API PVOID NTAPI StorPortGetUncachedExtension(_In_ PVOID HwDeviceExtension, _In_ PPORT_CONFIGURATION_INFORMATION ConfigInfo, _In_ ULONG NumberOfBytes)
Definition: storport.c:1130
enum _VPD_IDENTIFIER_TYPE * PVPD_IDENTIFIER_TYPE
#define STORPORT_API
Definition: storport.h:75
STORPORT_API VOID __cdecl StorPortNotification(_In_ SCSI_NOTIFICATION_TYPE NotificationType, _In_ PVOID HwDeviceExtension,...)
Definition: storport.c:1368
struct _MEMORY_REGION MEMORY_REGION
@ StorPowerDeviceMaximum
Definition: storport.h:561
@ StorPowerDeviceD3
Definition: storport.h:560
@ StorPowerDeviceD2
Definition: storport.h:559
@ StorPowerDeviceUnspecified
Definition: storport.h:556
@ StorPowerDeviceD1
Definition: storport.h:558
@ StorPowerDeviceD0
Definition: storport.h:557
struct _ACCESS_RANGE ACCESS_RANGE
BOOLEAN(STREAMAPI * PHW_INTERRUPT)(IN PVOID DeviceExtension)
Definition: strmini.h:311
ULONG RangeLength
Definition: srb.h:42
BOOLEAN RangeInMemory
Definition: srb.h:43
STOR_PHYSICAL_ADDRESS RangeStart
Definition: storport.h:2054
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:1208
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
struct _CDB::_PLAY_CD::@2626::_LBA LBA
UCHAR CMSF
Definition: scsi.h:1238
UCHAR Lun
Definition: scsi.h:1240
UCHAR Reserved1
Definition: scsi.h:1237
UCHAR ExpectedSectorType
Definition: scsi.h:1239
UCHAR Reserved2
Definition: scsi.h:1254
UCHAR OperationCode
Definition: scsi.h:1236
_ANONYMOUS_UNION union _CDB::_PLAY_CD::@2626 DUMMYUNIONNAME
UCHAR Port2
Definition: scsi.h:1260
UCHAR Audio
Definition: scsi.h:1257
UCHAR Composite
Definition: scsi.h:1258
struct _CDB::_PLAY_CD::@2626::_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
_ANONYMOUS_UNION union _CDB::_SET_CD_SPEED::@2629 DUMMYUNIONNAME
UCHAR Reserved1[6]
Definition: cdrw_hw.h:599
UCHAR WriteSpeed[2]
Definition: cdrw_hw.h:598
UCHAR RotationControl
Definition: scsi.h:1853
UCHAR ReadSpeed[2]
Definition: cdrw_hw.h:597
UCHAR Reserved2[5]
Definition: scsi.h:1859
_ANONYMOUS_STRUCT struct _CDB::_SET_CD_SPEED::@2629::@2630 DUMMYSTRUCTNAME
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::@2627 Byte6
struct _CDB::_SPACE_TAPE_MARKS::@2627::@2628 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
PVOID DeferredRoutine
Definition: storport.h:2164
PVOID DpcData
Definition: storport.h:2168
PVOID DeferredContext
Definition: storport.h:2165
PVOID SystemArgument1
Definition: storport.h:2166
UCHAR Number
Definition: storport.h:2157
CSHORT Type
Definition: storport.h:2156
PVOID SystemArgument2
Definition: storport.h:2167
UCHAR Importance
Definition: storport.h:2158
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
USHORT ReservedUshort
Definition: srb.h:588
PHW_INTERRUPT HwInterrupt
Definition: srb.h:569
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
BOOLEAN AutoRequestSense
Definition: srb.h:583
PHW_RESET_BUS HwResetBus
Definition: srb.h:571
USHORT VendorIdLength
Definition: srb.h:586
PHW_STARTIO HwStartIo
Definition: srb.h:568
BOOLEAN MultipleRequestPerLu
Definition: srb.h:584
BOOLEAN NeedPhysicalAddresses
Definition: srb.h:581
ULONG SpecificLuExtensionSize
Definition: srb.h:575
ULONG SrbExtensionSize
Definition: srb.h:576
ULONG HwInitializationDataSize
Definition: srb.h:550
PHW_BUILDIO HwBuildIo
Definition: storport.h:2423
USHORT DeviceIdLength
Definition: srb.h:589
PHW_INITIALIZE HwInitialize
Definition: srb.h:567
ULONG DeviceExtensionSize
Definition: srb.h:574
INTERFACE_TYPE AdapterInterfaceType
Definition: srb.h:565
PHW_FIND_ADAPTER HwFindAdapter
Definition: srb.h:570
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 LunListLength[4]
Definition: scsi.h:3223
UCHAR Lun[0][8]
Definition: scsi.h:3225
PUCHAR VirtualBase
Definition: storport.h:2061
PHYSICAL_ADDRESS PhysicalBase
Definition: storport.h:2062
STOR_PHYSICAL_ADDRESS MessageAddress
Definition: storport.h:2234
KINTERRUPT_MODE InterruptMode
Definition: storport.h:2237
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
PGROUP_AFFINITY MessageTargets
Definition: storport.h:2219
ULONG FirstRedirectionMessageNumber
Definition: storport.h:2215
ULONG LastRedirectionMessageNumber
Definition: storport.h:2216
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:2125
INTERRUPT_SYNCHRONIZATION_MODE InterruptSynchronizationMode
Definition: storport.h:2127
PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE HwMSInterruptRoutine
Definition: storport.h:2126
LARGE_INTEGER LogicalBlockAddress
Definition: scsi.h:2795
ULONG LogicalBlockAddress
Definition: cdrw_hw.h:1471
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
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
PStorPortAllocatePool AllocatePool
Definition: storport.h:2391
PStorPortGetSystemAddress GetSystemAddress
Definition: storport.h:2392
PStorPortFreePool FreePool
Definition: storport.h:2390
PStorPortPutScatterGatherList PutScatterGatherList
Definition: storport.h:2388
PStorPortGetMessageInterruptInformation GetMessageInterruptInformation
Definition: storport.h:2387
PStorPortBuildScatterGatherList BuildScatterGatherList
Definition: storport.h:2389
ULONG_PTR Lock
Definition: storport.h:2174
DPC_BUFFER Dpc
Definition: storport.h:2173
STOR_SPINLOCK Lock
Definition: storport.h:2179
struct _STOR_LOCK_HANDLE::@2688 Context
struct _STOR_LOCK_HANDLE::@2688::@2689 LockQueue
BOOLEAN StorportSpecificErrorCode
Definition: storport.h:2200
STOR_EVENT_ASSOCIATION_ENUM EventAssociation
Definition: storport.h:2196
STOR_PHYSICAL_ADDRESS PhysicalAddress
Definition: storport.h:2142
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
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: typedefs.h:53
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
void * PVOID
Definition: typedefs.h:50
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
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
_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
UCHAR Byte0
Definition: scsi.h:3490
USHORT AsUShort
Definition: scsi.h:3493
UCHAR Byte1
Definition: scsi.h:3491
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2061
_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
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
Definition: wdfdpc.h:112
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
Definition: wdfregistry.h:243
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_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
#define FORCEINLINE
Definition: wdftypes.h:67
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
_IRQL_requires_same_ _In_opt_ PVOID Argument1
Definition: cmtypes.h:697
_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:1399
_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
_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
_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