ReactOS  0.4.14-dev-1233-gf5658fd
minitape.h
Go to the documentation of this file.
1 /*
2  * minitape.h
3  *
4  * Minitape driver 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 #ifndef _MINITAPE_
23 #define _MINITAPE_
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 #pragma pack(push,4)
30 
31 #define MEDIA_ERASEABLE 0x00000001
32 #define MEDIA_WRITE_ONCE 0x00000002
33 #define MEDIA_READ_ONLY 0x00000004
34 #define MEDIA_READ_WRITE 0x00000008
35 #define MEDIA_WRITE_PROTECTED 0x00000100
36 #define MEDIA_CURRENTLY_MOUNTED 0x80000000
37 
38 typedef enum _TAPE_STATUS {
71 
72 #define INQUIRYDATABUFFERSIZE 36
73 
74 #ifndef _INQUIRYDATA_DEFINED /* also in scsi.h */
75 #define _INQUIRYDATA_DEFINED
76 
77 typedef struct _INQUIRYDATA {
78  UCHAR DeviceType:5;
82  __GNU_EXTENSION union {
84  __GNU_EXTENSION struct {
88  };
89  };
105  UCHAR SoftReset:1;
109  UCHAR Synchronous:1;
110  UCHAR Wide16Bit:1;
111  UCHAR Wide32Bit:1;
113  UCHAR VendorId[8];
114  UCHAR ProductId[16];
116  UCHAR VendorSpecific[20];
117  UCHAR Reserved3[40];
119 
120 #endif /* _INQUIRYDATA_DEFINED */
121 
122 typedef struct _MODE_CAPABILITIES_PAGE {
155 
156 typedef BOOLEAN
158  _In_ PINQUIRYDATA InquiryData,
159  _In_ PMODE_CAPABILITIES_PAGE ModeCapabilitiesPage);
160 
161 typedef VOID
163  _In_ PVOID MinitapeExtension,
164  _In_ PINQUIRYDATA InquiryData,
165  _In_ PMODE_CAPABILITIES_PAGE ModeCapabilitiesPage);
166 
167 typedef VOID
169  _In_ PVOID MinitapeExtension,
171  _Inout_ PTAPE_STATUS TapeStatus);
172 
173 typedef TAPE_STATUS
175  _Inout_ PVOID MinitapeExtension,
176  _Inout_ PVOID CommandExtension,
177  _Inout_ PVOID CommandParameters,
179  _In_ ULONG CallNumber,
180  _In_ TAPE_STATUS StatusOfLastCommand,
181  _Inout_ PULONG RetryFlags);
182 
183 #define TAPE_RETRY_MASK 0x0000FFFF
184 #define IGNORE_ERRORS 0x00010000
185 #define RETURN_ERRORS 0x00020000
186 
187 typedef struct _TAPE_INIT_DATA {
208 
209 typedef struct _TAPE_PHYS_POSITION {
213 
214 #pragma pack(pop)
215 
216 #ifdef __cplusplus
217 }
218 #endif
219 
220 #endif /* _MINITAPE_ */
#define __GNU_EXTENSION
Definition: _mingw_mac.h:135
UCHAR MaximumStoredDefectedListEntries[2]
Definition: minitape.h:149
UCHAR ProductRevisionLevel[4]
Definition: cdrw_hw.h:1134
UCHAR CurrentSpeedSelected[2]
Definition: minitape.h:151
struct _MODE_CAPABILITIES_PAGE MODE_CAPABILITIES_PAGE
ULONG SpaceBlockCount
Definition: physlogi.h:91
UCHAR ResponseDataFormat
Definition: cdrw_hw.h:1121
BOOLEAN QueryModeCapabilitiesPage
Definition: minitape.h:189
struct _TAPE_INIT_DATA * PTAPE_INIT_DATA
TAPE_PROCESS_COMMAND_ROUTINE SetMediaParameters
Definition: minitape.h:203
TAPE_PROCESS_COMMAND_ROUTINE SetPosition
Definition: minitape.h:204
UCHAR MaximumSpeedSupported[2]
Definition: minitape.h:148
UCHAR CommandQueue
Definition: cdrw_hw.h:1125
VOID(NTAPI * TAPE_EXTENSION_INIT_ROUTINE)(_In_ PVOID MinitapeExtension, _In_ PINQUIRYDATA InquiryData, _In_ PMODE_CAPABILITIES_PAGE ModeCapabilitiesPage)
Definition: minitape.h:162
UCHAR ProductId[16]
Definition: cdrw_hw.h:1133
UCHAR VendorId[8]
Definition: cdrw_hw.h:1132
UCHAR EnclosureServices
Definition: minitape.h:103
TAPE_ERROR_ROUTINE TapeError
Definition: minitape.h:193
UCHAR ReservedBit3
Definition: minitape.h:104
UCHAR ContinuousTransferLimit[2]
Definition: minitape.h:150
UCHAR VendorSpecific[20]
Definition: cdrw_hw.h:1135
UCHAR MediumChanger
Definition: minitape.h:100
UCHAR Reserved[2]
Definition: cdrw_hw.h:1123
TAPE_PROCESS_COMMAND_ROUTINE SetDriveParameters
Definition: minitape.h:202
UCHAR NormACA
Definition: minitape.h:92
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
struct _TAPE_PHYS_POSITION TAPE_PHYS_POSITION
TAPE_STATUS(NTAPI * TAPE_PROCESS_COMMAND_ROUTINE)(_Inout_ PVOID MinitapeExtension, _Inout_ PVOID CommandExtension, _Inout_ PVOID CommandParameters, _Inout_ PSCSI_REQUEST_BLOCK Srb, _In_ ULONG CallNumber, _In_ TAPE_STATUS StatusOfLastCommand, _Inout_ PULONG RetryFlags)
Definition: minitape.h:174
UCHAR RemovableMedia
Definition: cdrw_hw.h:1119
unsigned char BOOLEAN
UCHAR ECMAVersion
Definition: minitape.h:86
UCHAR SoftReset
Definition: cdrw_hw.h:1124
TAPE_PROCESS_COMMAND_ROUTINE PreProcessReadWrite
Definition: minitape.h:206
TAPE_PROCESS_COMMAND_ROUTINE Prepare
Definition: minitape.h:201
UCHAR ISOVersion
Definition: minitape.h:87
UCHAR DeviceTypeQualifier
Definition: cdrw_hw.h:1117
TAPE_EXTENSION_INIT_ROUTINE ExtensionInit
Definition: minitape.h:191
UCHAR TerminateTask
Definition: minitape.h:93
struct _MODE_CAPABILITIES_PAGE * PMODE_CAPABILITIES_PAGE
TAPE_PROCESS_COMMAND_ROUTINE GetDriveParameters
Definition: minitape.h:197
UCHAR MultiPort
Definition: minitape.h:101
UCHAR Synchronous
Definition: cdrw_hw.h:1128
struct _INQUIRYDATA * PINQUIRYDATA
UCHAR ReservedBit2
Definition: minitape.h:102
TAPE_PROCESS_COMMAND_ROUTINE GetPosition
Definition: minitape.h:199
struct _TAPE_INIT_DATA TAPE_INIT_DATA
TAPE_PROCESS_COMMAND_ROUTINE WriteMarks
Definition: minitape.h:205
ULONG DefaultTimeOutValue
Definition: minitape.h:192
ULONG CommandExtensionSize
Definition: minitape.h:194
#define _Inout_
Definition: no_sal2.h:244
UCHAR Versions
Definition: cdrw_hw.h:1120
UCHAR AERC
Definition: minitape.h:94
unsigned char UCHAR
Definition: xmlstorage.h:181
UCHAR TransferDisable
Definition: minitape.h:107
struct _INQUIRYDATA INQUIRYDATA
UCHAR Reserved3[40]
Definition: cdrw_hw.h:1136
TAPE_PROCESS_COMMAND_ROUTINE CreatePartition
Definition: minitape.h:195
#define VOID
Definition: acefi.h:82
UCHAR HiSupport
Definition: minitape.h:91
enum _TAPE_STATUS TAPE_STATUS
TAPE_PROCESS_COMMAND_ROUTINE GetMediaParameters
Definition: minitape.h:198
UCHAR AdditionalLength
Definition: cdrw_hw.h:1122
UCHAR DeviceTypeModifier
Definition: cdrw_hw.h:1118
UCHAR Addr32
Definition: minitape.h:98
struct _TAPE_PHYS_POSITION PTAPE_PHYS_POSITION
#define _In_
Definition: no_sal2.h:204
UCHAR DeviceType
Definition: cdrw_hw.h:1116
TAPE_PROCESS_COMMAND_ROUTINE GetStatus
Definition: minitape.h:200
UCHAR Addr16
Definition: minitape.h:97
unsigned int * PULONG
Definition: retypes.h:1
ULONG SeekBlockAddress
Definition: physlogi.h:90
enum _TAPE_STATUS * PTAPE_STATUS
#define BOOLEAN
Definition: pedump.c:73
unsigned int ULONG
Definition: retypes.h:1
TAPE_PROCESS_COMMAND_ROUTINE Erase
Definition: minitape.h:196
UCHAR LinkedCommands
Definition: cdrw_hw.h:1127
IN PSCSI_REQUEST_BLOCK Srb
Definition: class2.h:49
TAPE_VERIFY_INQUIRY_ROUTINE VerifyInquiry
Definition: minitape.h:188
BOOLEAN(NTAPI * TAPE_VERIFY_INQUIRY_ROUTINE)(_In_ PINQUIRYDATA InquiryData, _In_ PMODE_CAPABILITIES_PAGE ModeCapabilitiesPage)
Definition: minitape.h:157
UCHAR Wide32Bit
Definition: cdrw_hw.h:1130
UCHAR Wide16Bit
Definition: cdrw_hw.h:1129
UCHAR RelativeAddressing
Definition: cdrw_hw.h:1131
VOID(NTAPI * TAPE_ERROR_ROUTINE)(_In_ PVOID MinitapeExtension, _In_ PSCSI_REQUEST_BLOCK Srb, _Inout_ PTAPE_STATUS TapeStatus)
Definition: minitape.h:168
UCHAR ANSIVersion
Definition: minitape.h:85
ULONG MinitapeExtensionSize
Definition: minitape.h:190
UCHAR AckReqQ
Definition: minitape.h:99
_TAPE_STATUS
Definition: minitape.h:38