VirtualBox

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

最後變更 在這個檔案從53201是 53201,由 vboxsync 提交於 10 年 前

Devices/Main: vmsvga updates

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 4.5 KB
 
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#ifndef _NTDDSCSI_H_
23#define _NTDDSCSI_H_
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#define IOCTL_SCSI_BASE FILE_DEVICE_CONTROLLER
30
31#define IOCTL_SCSI_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
32#define IOCTL_SCSI_MINIPORT CTL_CODE(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
33#define IOCTL_SCSI_GET_INQUIRY_DATA CTL_CODE(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS)
34#define IOCTL_SCSI_GET_CAPABILITIES CTL_CODE(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS)
35#define IOCTL_SCSI_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
36#define IOCTL_SCSI_GET_ADDRESS CTL_CODE(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS)
37#define IOCTL_SCSI_RESCAN_BUS CTL_CODE(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS)
38#define IOCTL_SCSI_GET_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS)
39#define IOCTL_SCSI_FREE_DUMP_POINTERS CTL_CODE(IOCTL_SCSI_BASE, 0x0409, METHOD_BUFFERED, FILE_ANY_ACCESS)
40#define IOCTL_IDE_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x040a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
41#define IOCTL_ATA_PASS_THROUGH CTL_CODE(IOCTL_SCSI_BASE, 0x040b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
42#define IOCTL_ATA_PASS_THROUGH_DIRECT CTL_CODE(IOCTL_SCSI_BASE, 0x040c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
43
44#define SCSI_IOCTL_DATA_OUT 0
45#define SCSI_IOCTL_DATA_IN 1
46#define SCSI_IOCTL_DATA_UNSPECIFIED 2
47
48typedef struct _SCSI_PASS_THROUGH {
49 USHORT Length;
50 UCHAR ScsiStatus;
51 UCHAR PathId;
52 UCHAR TargetId;
53 UCHAR Lun;
54 UCHAR CdbLength;
55 UCHAR SenseInfoLength;
56 UCHAR DataIn;
57 ULONG DataTransferLength;
58 ULONG TimeOutValue;
59 ULONG_PTR DataBufferOffset;
60 ULONG SenseInfoOffset;
61 UCHAR Cdb[16];
62} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
63
64typedef struct _SCSI_PASS_THROUGH_DIRECT {
65 USHORT Length;
66 UCHAR ScsiStatus;
67 UCHAR PathId;
68 UCHAR TargetId;
69 UCHAR Lun;
70 UCHAR CdbLength;
71 UCHAR SenseInfoLength;
72 UCHAR DataIn;
73 ULONG DataTransferLength;
74 ULONG TimeOutValue;
75 PVOID DataBuffer;
76 ULONG SenseInfoOffset;
77 UCHAR Cdb[16];
78} SCSI_PASS_THROUGH_DIRECT, *PSCSI_PASS_THROUGH_DIRECT;
79
80typedef struct _SCSI_ADDRESS {
81 ULONG Length;
82 UCHAR PortNumber;
83 UCHAR PathId;
84 UCHAR TargetId;
85 UCHAR Lun;
86} SCSI_ADDRESS, *PSCSI_ADDRESS;
87
88typedef struct _IO_SCSI_CAPABILITIES {
89 ULONG Length;
90 ULONG MaximumTransferLength;
91 ULONG MaximumPhysicalPages;
92 ULONG SupportedAsynchronousEvents;
93 ULONG AlignmentMask;
94 BOOLEAN TaggedQueuing;
95 BOOLEAN AdapterScansDown;
96 BOOLEAN AdapterUsesPio;
97} IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
98
99typedef struct _SCSI_BUS_DATA {
100 UCHAR NumberOfLogicalUnits;
101 UCHAR InitiatorBusId;
102 ULONG InquiryDataOffset;
103} SCSI_BUS_DATA, *PSCSI_BUS_DATA;
104
105typedef struct _SCSI_ADAPTER_BUS_INFO {
106 UCHAR NumberOfBuses;
107 SCSI_BUS_DATA BusData[1];
108} SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
109
110typedef struct _SCSI_INQUIRY_DATA {
111 UCHAR PathId;
112 UCHAR TargetId;
113 UCHAR Lun;
114 BOOLEAN DeviceClaimed;
115 ULONG InquiryDataLength;
116 ULONG NextInquiryDataOffset;
117 UCHAR InquiryData[1];
118} SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
119
120#ifdef __cplusplus
121}
122#endif
123
124#endif /* _NTDDSCSI_H_ */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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