⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 storport.h

📁 MinGW+MSYS开发必用的api参考
💻 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 + -