📄 storport.h
字号:
/* * storport.h * * StorPort interface * * This file is part of the w32api package. * * Contributors: * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef __STORPORT_H#define __STORPORT_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __cplusplusextern "C" {#endif#include "ntddk.h"#include "srb.h"#if defined(_STORPORT_) #define STORPORTAPI DECLSPEC_EXPORT#else #define STORPORTAPI DECLSPEC_IMPORT#endiftypedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS;typedef struct _STOR_SCATTER_GATHER_ELEMENT { STOR_PHYSICAL_ADDRESS PhysicalAddress; ULONG Length; ULONG_PTR Reserved;} STOR_SCATTER_GATHER_ELEMENT, *PSTOR_SCATTER_GATHER_ELEMENT;typedef struct _STOR_SCATTER_GATHER_LIST { ULONG NumberOfElements; ULONG_PTR Reserved; STOR_SCATTER_GATHER_ELEMENT List[0];} STOR_SCATTER_GATHER_LIST, *PSTOR_SCATTER_GATHER_LIST;typedef struct _SCSI_WMI_REQUEST_BLOCK { USHORT Length; UCHAR Function; UCHAR SrbStatus; UCHAR WMISubFunction; UCHAR PathId; UCHAR TargetId; UCHAR Lun; UCHAR Reserved1; UCHAR WMIFlags; UCHAR Reserved2[2]; ULONG SrbFlags; ULONG DataTransferLength; ULONG TimeOutValue; PVOID DataBuffer; PVOID DataPath; PVOID Reserved3; PVOID OriginalRequest; PVOID SrbExtension; ULONG Reserved4; UCHAR Reserved5[16];} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK;STORPORTAPIULONGDDKAPIStorPortInitialize( /*IN*/ PVOID Argument1, /*IN*/ PVOID Argument2, /*IN*/ PHW_INITIALIZATION_DATA HwInitializationData, /*IN*/ PVOID Unused);STORPORTAPIVOIDDDKAPIStorPortFreeDeviceBase( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVOID MappedAddress);STORPORTAPIULONGDDKAPIStorPortGetBusData( /*IN*/ PVOID DeviceExtension, /*IN*/ ULONG BusDataType, /*IN*/ ULONG SystemIoBusNumber, /*IN*/ ULONG SlotNumber, /*IN*/ PVOID Buffer, /*IN*/ ULONG Length);STORPORTAPIULONGDDKAPIStorPortSetBusDataByOffset( /*IN*/ PVOID DeviceExtension, /*IN*/ ULONG BusDataType, /*IN*/ ULONG SystemIoBusNumber, /*IN*/ ULONG SlotNumber, /*IN*/ PVOID Buffer, /*IN*/ ULONG Offset, /*IN*/ ULONG Length);STORPORTAPIPVOIDDDKAPIStorPortGetDeviceBase( /*IN*/ PVOID HwDeviceExtension, /*IN*/ INTERFACE_TYPE BusType, /*IN*/ ULONG SystemIoBusNumber, /*IN*/ SCSI_PHYSICAL_ADDRESS IoAddress, /*IN*/ ULONG NumberOfBytes, /*IN*/ BOOLEAN InIoSpace);STORPORTAPIPVOIDDDKAPIStorPortGetLogicalUnit( /*IN*/ PVOID HwDeviceExtension, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun);STORPORTAPIPSCSI_REQUEST_BLOCKDDKAPIStorPortGetSrb( /*IN*/ PVOID DeviceExtension, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun, /*IN*/ LONG QueueTag);STORPORTAPISTOR_PHYSICAL_ADDRESSDDKAPIStorPortGetPhysicalAddress( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PSCSI_REQUEST_BLOCK Srb, /*IN*/ PVOID VirtualAddress, /*OUT*/ ULONG *Length);STORPORTAPIPVOIDDDKAPIStorPortGetVirtualAddress( /*IN*/ PVOID HwDeviceExtension, /*IN*/ STOR_PHYSICAL_ADDRESS PhysicalAddress);STORPORTAPIPVOIDDDKAPIStorPortGetUncachedExtension( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PPORT_CONFIGURATION_INFORMATION ConfigInfo, /*IN*/ ULONG NumberOfBytes);STORPORTAPIVOIDDDKCDECLAPIStorPortNotification( /*IN*/ SCSI_NOTIFICATION_TYPE NotificationType, /*IN*/ PVOID HwDeviceExtension, /*IN*/ ...);STORPORTAPIVOIDDDKAPIStorPortLogError( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PSCSI_REQUEST_BLOCK Srb /*OPTIONAL*/, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun, /*IN*/ ULONG ErrorCode, /*IN*/ ULONG UniqueId);STORPORTAPIVOIDDDKAPIStorPortCompleteRequest( /*IN*/ PVOID HwDeviceExtension, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun, /*IN*/ UCHAR SrbStatus);STORPORTAPIVOIDDDKAPIStorPortMoveMemory( /*IN*/ PVOID WriteBuffer, /*IN*/ PVOID ReadBuffer, /*IN*/ ULONG Length);STORPORTAPIVOIDDDKAPIStorPortStallExecution( /*IN*/ ULONG Delay);STORPORTAPISTOR_PHYSICAL_ADDRESSDDKAPIStorPortConvertUlong64ToPhysicalAddress( /*IN*/ ULONG64 UlongAddress);STORPORTAPIULONG64DDKAPIStorPortConvertPhysicalAddressToUlong64( /*IN*/ STOR_PHYSICAL_ADDRESS Address);STORPORTAPIBOOLEANDDKAPIStorPortValidateRange( /*IN*/ PVOID HwDeviceExtension, /*IN*/ INTERFACE_TYPE BusType, /*IN*/ ULONG SystemIoBusNumber, /*IN*/ STOR_PHYSICAL_ADDRESS IoAddress, /*IN*/ ULONG NumberOfBytes, /*IN*/ BOOLEAN InIoSpace);STORPORTAPIVOIDDDKCDECLAPIStorPortDebugPrint( /*IN*/ ULONG DebugPrintLevel, /*IN*/ PCCHAR DebugMessage, /*IN*/ ...);STORPORTAPIUCHARDDKAPIStorPortReadPortUchar( /*IN*/ PUCHAR Port);STORPORTAPIULONGDDKAPIStorPortReadPortUlong( /*IN*/ PULONG Port);STORPORTAPIUSHORTDDKAPIStorPortReadPortUshort( /*IN*/ PUSHORT Port);STORPORTAPIUCHARDDKAPIStorPortReadRegisterUchar( /*IN*/ PUCHAR Register);STORPORTAPIULONGDDKAPIStorPortReadRegisterUlong( /*IN*/ PULONG Register);STORPORTAPIUSHORTDDKAPIStorPortReadRegisterUshort( /*IN*/ PUSHORT Register);STORPORTAPIVOIDDDKAPIStorPortWritePortUchar( /*IN*/ PUCHAR Port, /*IN*/ UCHAR Value);STORPORTAPIVOIDDDKAPIStorPortWritePortUlong( /*IN*/ PULONG Port, /*IN*/ ULONG Value);STORPORTAPIVOIDDDKAPIStorPortWritePortUshort( /*IN*/ PUSHORT Port, /*IN*/ USHORT Value);STORPORTAPIVOIDDDKAPIStorPortWriteRegisterUchar( /*IN*/ PUCHAR Port, /*IN*/ UCHAR Value);STORPORTAPIVOIDDDKAPIStorPortWriteRegisterUlong( /*IN*/ PULONG Port, /*IN*/ ULONG Value);STORPORTAPIVOIDDDKAPIStorPortWriteRegisterUshort( /*IN*/ PUSHORT Port, /*IN*/ USHORT Value);STORPORTAPIBOOLEANDDKAPIStorPortPauseDevice( /*IN*/ PVOID HwDeviceExtension, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun, /*IN*/ ULONG TimeOut);STORPORTAPIBOOLEANDDKAPIStorPortResumeDevice( /*IN*/ PVOID HwDeviceExtension, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun);STORPORTAPIBOOLEANDDKAPIStorPortPause( /*IN*/ PVOID HwDeviceExtension, /*IN*/ ULONG TimeOut);STORPORTAPIBOOLEANDDKAPIStorPortResume( /*IN*/ PVOID HwDeviceExtension);STORPORTAPIBOOLEANDDKAPIStorPortDeviceBusy( /*IN*/ PVOID HwDeviceExtension, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun, /*IN*/ ULONG RequestsToComplete);STORPORTAPIBOOLEANDDKAPIStorPortDeviceReady( /*IN*/ PVOID HwDeviceExtension, /*IN*/ UCHAR PathId, /*IN*/ UCHAR TargetId, /*IN*/ UCHAR Lun);STORPORTAPIBOOLEANDDKAPIStorPortBusy( /*IN*/ PVOID HwDeviceExtension, /*IN*/ ULONG RequestsToComplete);STORPORTAPIBOOLEANDDKAPIStorPortReady( /*IN*/ PVOID HwDeviceExtension);STORPORTAPIPSTOR_SCATTER_GATHER_LISTDDKAPIStorPortGetScatterGatherList( /*IN*/ PVOID DeviceExtension, /*IN*/ PSCSI_REQUEST_BLOCK Srb);typedef BOOLEAN DDKAPI(*PSTOR_SYNCHRONIZED_ACCESS)( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PVOID Context);STORPORTAPIVOIDDDKAPIStorPortSynchronizeAccess( /*IN*/ PVOID HwDeviceExtension, /*IN*/ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine, /*IN*/ PVOID Context);#ifdef DBG#define DebugPrint(x) StorPortDebugPrint x#else#define DebugPrint(x)#endif#ifdef __cplusplus}#endif#endif /* __STORPORT_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -