Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenstorport.h
Go to the documentation of this file.
00001 /* 00002 * storport.h 00003 * 00004 * StorPort interface 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __STORPORT_H 00024 #define __STORPORT_H 00025 00026 #include "srb.h" 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 #if defined(_STORPORT_) 00033 #define STORPORTAPI 00034 #else 00035 #define STORPORTAPI DECLSPEC_IMPORT 00036 #endif 00037 00038 typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS; 00039 00040 typedef struct _STOR_SCATTER_GATHER_ELEMENT { 00041 STOR_PHYSICAL_ADDRESS PhysicalAddress; 00042 ULONG Length; 00043 ULONG_PTR Reserved; 00044 } STOR_SCATTER_GATHER_ELEMENT, *PSTOR_SCATTER_GATHER_ELEMENT; 00045 00046 typedef struct _STOR_SCATTER_GATHER_LIST { 00047 ULONG NumberOfElements; 00048 ULONG_PTR Reserved; 00049 STOR_SCATTER_GATHER_ELEMENT List[0]; 00050 } STOR_SCATTER_GATHER_LIST, *PSTOR_SCATTER_GATHER_LIST; 00051 00052 typedef struct _SCSI_WMI_REQUEST_BLOCK { 00053 USHORT Length; 00054 UCHAR Function; 00055 UCHAR SrbStatus; 00056 UCHAR WMISubFunction; 00057 UCHAR PathId; 00058 UCHAR TargetId; 00059 UCHAR Lun; 00060 UCHAR Reserved1; 00061 UCHAR WMIFlags; 00062 UCHAR Reserved2[2]; 00063 ULONG SrbFlags; 00064 ULONG DataTransferLength; 00065 ULONG TimeOutValue; 00066 PVOID DataBuffer; 00067 PVOID DataPath; 00068 PVOID Reserved3; 00069 PVOID OriginalRequest; 00070 PVOID SrbExtension; 00071 ULONG Reserved4; 00072 UCHAR Reserved5[16]; 00073 } SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK; 00074 00075 STORPORTAPI 00076 ULONG 00077 NTAPI 00078 StorPortInitialize( 00079 IN PVOID Argument1, 00080 IN PVOID Argument2, 00081 IN PHW_INITIALIZATION_DATA HwInitializationData, 00082 IN PVOID Unused); 00083 00084 STORPORTAPI 00085 VOID 00086 NTAPI 00087 StorPortFreeDeviceBase( 00088 IN PVOID HwDeviceExtension, 00089 IN PVOID MappedAddress); 00090 00091 STORPORTAPI 00092 ULONG 00093 NTAPI 00094 StorPortGetBusData( 00095 IN PVOID DeviceExtension, 00096 IN ULONG BusDataType, 00097 IN ULONG SystemIoBusNumber, 00098 IN ULONG SlotNumber, 00099 IN PVOID Buffer, 00100 IN ULONG Length); 00101 00102 STORPORTAPI 00103 ULONG 00104 NTAPI 00105 StorPortSetBusDataByOffset( 00106 IN PVOID DeviceExtension, 00107 IN ULONG BusDataType, 00108 IN ULONG SystemIoBusNumber, 00109 IN ULONG SlotNumber, 00110 IN PVOID Buffer, 00111 IN ULONG Offset, 00112 IN ULONG Length); 00113 00114 STORPORTAPI 00115 PVOID 00116 NTAPI 00117 StorPortGetDeviceBase( 00118 IN PVOID HwDeviceExtension, 00119 IN INTERFACE_TYPE BusType, 00120 IN ULONG SystemIoBusNumber, 00121 IN SCSI_PHYSICAL_ADDRESS IoAddress, 00122 IN ULONG NumberOfBytes, 00123 IN BOOLEAN InIoSpace); 00124 00125 STORPORTAPI 00126 PVOID 00127 NTAPI 00128 StorPortGetLogicalUnit( 00129 IN PVOID HwDeviceExtension, 00130 IN UCHAR PathId, 00131 IN UCHAR TargetId, 00132 IN UCHAR Lun); 00133 00134 STORPORTAPI 00135 PSCSI_REQUEST_BLOCK 00136 NTAPI 00137 StorPortGetSrb( 00138 IN PVOID DeviceExtension, 00139 IN UCHAR PathId, 00140 IN UCHAR TargetId, 00141 IN UCHAR Lun, 00142 IN LONG QueueTag); 00143 00144 STORPORTAPI 00145 STOR_PHYSICAL_ADDRESS 00146 NTAPI 00147 StorPortGetPhysicalAddress( 00148 IN PVOID HwDeviceExtension, 00149 IN PSCSI_REQUEST_BLOCK Srb, 00150 IN PVOID VirtualAddress, 00151 OUT ULONG *Length); 00152 00153 STORPORTAPI 00154 PVOID 00155 NTAPI 00156 StorPortGetVirtualAddress( 00157 IN PVOID HwDeviceExtension, 00158 IN STOR_PHYSICAL_ADDRESS PhysicalAddress); 00159 00160 STORPORTAPI 00161 PVOID 00162 NTAPI 00163 StorPortGetUncachedExtension( 00164 IN PVOID HwDeviceExtension, 00165 IN PPORT_CONFIGURATION_INFORMATION ConfigInfo, 00166 IN ULONG NumberOfBytes); 00167 00168 STORPORTAPI 00169 VOID 00170 __cdecl 00171 StorPortNotification( 00172 IN SCSI_NOTIFICATION_TYPE NotificationType, 00173 IN PVOID HwDeviceExtension, 00174 IN ...); 00175 00176 STORPORTAPI 00177 VOID 00178 NTAPI 00179 StorPortLogError( 00180 IN PVOID HwDeviceExtension, 00181 IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, 00182 IN UCHAR PathId, 00183 IN UCHAR TargetId, 00184 IN UCHAR Lun, 00185 IN ULONG ErrorCode, 00186 IN ULONG UniqueId); 00187 00188 STORPORTAPI 00189 VOID 00190 NTAPI 00191 StorPortCompleteRequest( 00192 IN PVOID HwDeviceExtension, 00193 IN UCHAR PathId, 00194 IN UCHAR TargetId, 00195 IN UCHAR Lun, 00196 IN UCHAR SrbStatus); 00197 00198 STORPORTAPI 00199 VOID 00200 NTAPI 00201 StorPortMoveMemory( 00202 IN PVOID WriteBuffer, 00203 IN PVOID ReadBuffer, 00204 IN ULONG Length); 00205 00206 STORPORTAPI 00207 VOID 00208 NTAPI 00209 StorPortStallExecution( 00210 IN ULONG Delay); 00211 00212 STORPORTAPI 00213 STOR_PHYSICAL_ADDRESS 00214 NTAPI 00215 StorPortConvertUlong64ToPhysicalAddress( 00216 IN ULONG64 UlongAddress); 00217 00218 STORPORTAPI 00219 ULONG64 00220 NTAPI 00221 StorPortConvertPhysicalAddressToUlong64( 00222 IN STOR_PHYSICAL_ADDRESS Address); 00223 00224 STORPORTAPI 00225 BOOLEAN 00226 NTAPI 00227 StorPortValidateRange( 00228 IN PVOID HwDeviceExtension, 00229 IN INTERFACE_TYPE BusType, 00230 IN ULONG SystemIoBusNumber, 00231 IN STOR_PHYSICAL_ADDRESS IoAddress, 00232 IN ULONG NumberOfBytes, 00233 IN BOOLEAN InIoSpace); 00234 00235 STORPORTAPI 00236 VOID 00237 __cdecl 00238 StorPortDebugPrint( 00239 IN ULONG DebugPrintLevel, 00240 IN PCCHAR DebugMessage, 00241 IN ...); 00242 00243 STORPORTAPI 00244 UCHAR 00245 NTAPI 00246 StorPortReadPortUchar( 00247 IN PUCHAR Port); 00248 00249 STORPORTAPI 00250 ULONG 00251 NTAPI 00252 StorPortReadPortUlong( 00253 IN PULONG Port); 00254 00255 STORPORTAPI 00256 USHORT 00257 NTAPI 00258 StorPortReadPortUshort( 00259 IN PUSHORT Port); 00260 00261 STORPORTAPI 00262 UCHAR 00263 NTAPI 00264 StorPortReadRegisterUchar( 00265 IN PUCHAR Register); 00266 00267 STORPORTAPI 00268 ULONG 00269 NTAPI 00270 StorPortReadRegisterUlong( 00271 IN PULONG Register); 00272 00273 STORPORTAPI 00274 USHORT 00275 NTAPI 00276 StorPortReadRegisterUshort( 00277 IN PUSHORT Register); 00278 00279 STORPORTAPI 00280 VOID 00281 NTAPI 00282 StorPortWritePortUchar( 00283 IN PUCHAR Port, 00284 IN UCHAR Value); 00285 00286 STORPORTAPI 00287 VOID 00288 NTAPI 00289 StorPortWritePortUlong( 00290 IN PULONG Port, 00291 IN ULONG Value); 00292 00293 STORPORTAPI 00294 VOID 00295 NTAPI 00296 StorPortWritePortUshort( 00297 IN PUSHORT Port, 00298 IN USHORT Value); 00299 00300 STORPORTAPI 00301 VOID 00302 NTAPI 00303 StorPortWriteRegisterUchar( 00304 IN PUCHAR Port, 00305 IN UCHAR Value); 00306 00307 STORPORTAPI 00308 VOID 00309 NTAPI 00310 StorPortWriteRegisterUlong( 00311 IN PULONG Port, 00312 IN ULONG Value); 00313 00314 STORPORTAPI 00315 VOID 00316 NTAPI 00317 StorPortWriteRegisterUshort( 00318 IN PUSHORT Port, 00319 IN USHORT Value); 00320 00321 STORPORTAPI 00322 BOOLEAN 00323 NTAPI 00324 StorPortPauseDevice( 00325 IN PVOID HwDeviceExtension, 00326 IN UCHAR PathId, 00327 IN UCHAR TargetId, 00328 IN UCHAR Lun, 00329 IN ULONG TimeOut); 00330 00331 STORPORTAPI 00332 BOOLEAN 00333 NTAPI 00334 StorPortResumeDevice( 00335 IN PVOID HwDeviceExtension, 00336 IN UCHAR PathId, 00337 IN UCHAR TargetId, 00338 IN UCHAR Lun); 00339 00340 STORPORTAPI 00341 BOOLEAN 00342 NTAPI 00343 StorPortPause( 00344 IN PVOID HwDeviceExtension, 00345 IN ULONG TimeOut); 00346 00347 STORPORTAPI 00348 BOOLEAN 00349 NTAPI 00350 StorPortResume( 00351 IN PVOID HwDeviceExtension); 00352 00353 STORPORTAPI 00354 BOOLEAN 00355 NTAPI 00356 StorPortDeviceBusy( 00357 IN PVOID HwDeviceExtension, 00358 IN UCHAR PathId, 00359 IN UCHAR TargetId, 00360 IN UCHAR Lun, 00361 IN ULONG RequestsToComplete); 00362 00363 STORPORTAPI 00364 BOOLEAN 00365 NTAPI 00366 StorPortDeviceReady( 00367 IN PVOID HwDeviceExtension, 00368 IN UCHAR PathId, 00369 IN UCHAR TargetId, 00370 IN UCHAR Lun); 00371 00372 STORPORTAPI 00373 BOOLEAN 00374 NTAPI 00375 StorPortBusy( 00376 IN PVOID HwDeviceExtension, 00377 IN ULONG RequestsToComplete); 00378 00379 STORPORTAPI 00380 BOOLEAN 00381 NTAPI 00382 StorPortReady( 00383 IN PVOID HwDeviceExtension); 00384 00385 STORPORTAPI 00386 PSTOR_SCATTER_GATHER_LIST 00387 NTAPI 00388 StorPortGetScatterGatherList( 00389 IN PVOID DeviceExtension, 00390 IN PSCSI_REQUEST_BLOCK Srb); 00391 00392 typedef BOOLEAN 00393 (NTAPI *PSTOR_SYNCHRONIZED_ACCESS)( 00394 IN PVOID HwDeviceExtension, 00395 IN PVOID Context); 00396 00397 STORPORTAPI 00398 VOID 00399 NTAPI 00400 StorPortSynchronizeAccess( 00401 IN PVOID HwDeviceExtension, 00402 IN PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine, 00403 IN PVOID Context); 00404 00405 #if DBG 00406 #define DebugPrint(x) StorPortDebugPrint x 00407 #else 00408 #define DebugPrint(x) 00409 #endif 00410 00411 #ifdef __cplusplus 00412 } 00413 #endif 00414 00415 #endif /* __STORPORT_H */ Generated on Sat May 26 2012 04:28:57 for ReactOS by
1.7.6.1
|