VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/ntddscsi.h@ 69505

Last change on this file since 69505 was 53206, checked in by vboxsync, 10 years ago

Devices/vmsvga: header fixes

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.0 KB
Line 
1/*
2 * Definitions for scsi media access
3 *
4 * Copyright (C) 2002 Laurent Pinchart
5 * Copyright 2005 Ivan Leo Puoti
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22/*
23 * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
24 * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
25 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
26 * a choice of LGPL license versions is made available with the language indicating
27 * that LGPLv2 or any later version may be used, or where a choice of which version
28 * of the LGPL is applied is otherwise unspecified.
29 */
30
31#ifndef _NTDDSCSI_H_
32#define _NTDDSCSI_H_
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38#define IOCTL_SCSI_BASE FILE_DEVICE_CONTROLLER
39
40#define IOCTL_SCSI_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
41#define IOCTL_SCSI_MINIPORT CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
42#define IOCTL_SCSI_GET_INQUIRY_DATA CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
43#define IOCTL_SCSI_GET_CAPABILITIES CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
44#define IOCTL_SCSI_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
45#define IOCTL_SCSI_GET_ADDRESS CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
46#define IOCTL_SCSI_RESCAN_BUS CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)
47#define IOCTL_SCSI_GET_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS)
48#define IOCTL_SCSI_FREE_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE, 0x0409, METHOD_BUFFERED, FILE_ANY_ACCESS)
49#define IOCTL_IDE_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x040a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
50#define IOCTL_ATA_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x040b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
51#define IOCTL_ATA_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE, 0x040c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
52
53#define SCSI_IOCTL_DATA_OUT 0
54#define SCSI_IOCTL_DATA_IN 1
55#define SCSI_IOCTL_DATA_UNSPECIFIED 2
56
57typedef struct _SCSI_PASS_THROUGH {
58 USHORT Length;
59 UCHAR ScsiStatus;
60 UCHAR PathId;
61 UCHAR TargetId;
62 UCHAR Lun;
63 UCHAR CdbLength;
64 UCHAR SenseInfoLength;
65 UCHAR DataIn;
66 ULONG DataTransferLength;
67 ULONG TimeOutValue;
68 ULONG_PTR DataBufferOffset;
69 ULONG SenseInfoOffset;
70 UCHAR Cdb[16];
71} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
72
73typedef struct _SCSI_PASS_THROUGH_DIRECT {
74 USHORT Length;
75 UCHAR ScsiStatus;
76 UCHAR PathId;
77 UCHAR TargetId;
78 UCHAR Lun;
79 UCHAR CdbLength;
80 UCHAR SenseInfoLength;
81 UCHAR DataIn;
82 ULONG DataTransferLength;
83 ULONG TimeOutValue;
84 PVOID DataBuffer;
85 ULONG SenseInfoOffset;
86 UCHAR Cdb[16];
87} SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
88
89typedef struct _SCSI_ADDRESS {
90 ULONG Length;
91 UCHAR PortNumber;
92 UCHAR PathId;
93 UCHAR TargetId;
94 UCHAR Lun;
95} SCSI_ADDRESS, *PSCSI_ADDRESS;
96
97typedef struct _IO_SCSI_CAPABILITIES {
98 ULONG Length;
99 ULONG MaximumTransferLength;
100 ULONG MaximumPhysicalPages;
101 ULONG SupportedAsynchronousEvents;
102 ULONG AlignmentMask;
103 BOOLEAN TaggedQueuing;
104 BOOLEAN AdapterScansDown;
105 BOOLEAN AdapterUsesPio;
106} IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
107
108typedef struct _SCSI_BUS_DATA {
109 UCHAR NumberOfLogicalUnits;
110 UCHAR InitiatorBusId;
111 ULONG InquiryDataOffset;
112} SCSI_BUS_DATA, *PSCSI_BUS_DATA;
113
114typedef struct _SCSI_ADAPTER_BUS_INFO {
115 UCHAR NumberOfBuses;
116 SCSI_BUS_DATA BusData[1];
117} SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
118
119typedef struct _SCSI_INQUIRY_DATA {
120 UCHAR PathId;
121 UCHAR TargetId;
122 UCHAR Lun;
123 BOOLEAN DeviceClaimed;
124 ULONG InquiryDataLength;
125 ULONG NextInquiryDataOffset;
126 UCHAR InquiryData[1];
127} SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
128
129#ifdef __cplusplus
130}
131#endif
132
133#endif /* _NTDDSCSI_H_ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette