ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

storport.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.