home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 January / Chip_2003-01_cd2.bin / others / support / aspi / aspi_v471.exe / include / srb32.h < prev    next >
C/C++ Source or Header  |  2001-11-02  |  22KB  |  419 lines

  1. /**!!SDK_32ONLY!!**/
  2. /**++SDK_EXCLUDE++**/
  3. /******************************************************************************
  4. **
  5. ** Copyright 1992-98 Adaptec, Inc.,  All Rights Reserved.
  6. **
  7. ** This software contains the valuable trade secrets of Adaptec.  The
  8. ** software is protected under copyright laws as an unpublished work of
  9. ** Adaptec.  Notice is for informational purposes only and does not imply
  10. ** publication.  The user of this software may make copies of the software
  11. ** for use with parts manufactured by Adaptec or under license from Adaptec
  12. ** and for no other use.
  13. **
  14. ******************************************************************************/
  15.  
  16. /******************************************************************************
  17. **
  18. **  Module Name:    srb32.h
  19. **
  20. **  Description:    ASPI for Win32 SRB definitions.  No ASPI constants
  21. **                  are defined here.  Look in srbcmn.h for SRB definitions
  22. **                  common to ASPI for Win16 and ASPI for Win32.
  23. **
  24. **                  This may be bad coding practice, but to keep down on the
  25. **                  chaff I have only documented those fields in the below
  26. **                  structures which aren't defined in the ASPI specification.
  27. **                  It makes the code a little easier to read, and I assume
  28. **                  only people maintaining this code will be messing with it.
  29. **                  I've also added offsets to help out when you're looking at
  30. **                  hex dumps.
  31. **
  32. **  Programmers:    Daniel Polfer (dap)
  33. **
  34. **  History:        11/09/95 (dap)  Initial creation using other headers.
  35. **                  11/30/95 (dap)  Added the TARGETINFO structure.
  36. **                  03/02/95 (dap)  Added ASPI32BUFF structure.
  37. **                  06/01/96 (dap)  Common IOCTLs and PnP structures.
  38. **                  09/03/96 (dap)  Renamed and modified to act as a shared
  39. **                                  file between KMD/VxD and the ring-3 DLLs.
  40. **                  09/13/96 (dap)  Added queue management structures, etc.
  41. **                  06/24/98 (dap)  Modified to use allow auto-SDK generation.
  42. **
  43. **  Notes:          This file created using 4 spaces per tab.
  44. **
  45. **                  This file is NOT a customer deliverable to be included
  46. **                  with the ASPI SDK.  It is specific to our ASPI
  47. **                  implementation and DOES contain definitions of private
  48. **                  Adaptec structures.
  49. **
  50. ******************************************************************************/
  51.  
  52. #ifndef __SRB32_H__
  53. #define __SRB32_H__
  54.  
  55. /*
  56. ** Make sure structures are packed and undecorated.
  57. */
  58.  
  59. #ifdef __BORLANDC__
  60. #pragma option -a1
  61. #endif //__BORLANDC__
  62.  
  63. #ifdef _MSC_VER
  64. #pragma pack(1)
  65. #endif //__MSC_VER
  66.  
  67. #ifdef __cplusplus
  68. extern "C" {
  69. #endif //__cplusplus
  70.  
  71. /**++SDK_PUBLIC++**/
  72. /**++SDK_32ONLY++**/
  73. //*****************************************************************************
  74. //          %%% SRB - HOST ADAPTER INQUIRY - SC_HA_INQUIRY (0) %%%
  75. //*****************************************************************************
  76.  
  77. typedef struct                                  // Offset
  78. {                                               // HX/DEC
  79.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_HA_INQUIRY
  80.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  81.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  82.     BYTE        SRB_Flags;                      // 03/003 ASPI request flags
  83.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  84.     BYTE        HA_Count;                       // 08/008 Number of host adapters present
  85.     BYTE        HA_SCSI_ID;                     // 09/009 SCSI ID of host adapter
  86.     BYTE        HA_ManagerId[16];               // 0A/010 String describing the manager
  87.     BYTE        HA_Identifier[16];              // 1A/026 String describing the host adapter
  88. /**++SDK_EXCLUDE++**/
  89.     WORD        HA_BufAlignMask;                // 2A/042 HA_Unique[1-0]
  90.     BYTE        HA_Flags;                       // 2C/044 HA_Unique[2]
  91.     BYTE        HA_MaxTargets;                  // 2D/045 HA_Unique[3]
  92.     DWORD       HA_MaxTransferLength;           // 2E/046 HA_Unique[7-4]
  93.     DWORD       HA_MaxSGElements;               // 32/050 HA_Unique[11-8]
  94.     BYTE        HA_Rsvd2[4];                    // 36/054 HA_Unique[15-12]
  95. /**++SDK_32ONLY:    BYTE        HA_Unique[16];                  // 2A/042 Host Adapter Unique parameters++**/
  96.     WORD        HA_Rsvd1;                       // 3A/058 Reserved, MUST = 0
  97. }
  98. SRB32_HAInquiry, *PSRB32_HAInquiry, FAR *LPSRB32_HAInquiry;
  99.  
  100. /*
  101.  * New
  102.  *
  103.  */
  104. #define    MAX_SCSI_DEVS                16
  105.  
  106. typedef struct {
  107.     BYTE    NegoDat[4];
  108. } NegoXferData;
  109.  
  110. typedef struct tag_NEGO_XFER_RATE_STRUCT {
  111.     NegoXferData    NegoXferRate[MAX_SCSI_DEVS];
  112. } NEGO_XFER_RATE_STRUCT, *PNEGO_XFER_RATE_STRUCT;
  113.  
  114. typedef struct tag_SEE_512_STRUCT {
  115.     union {
  116.         UCHAR    b[512];
  117.         USHORT    w[256];
  118.     } array;
  119. } SEE_512_STRUCT, *PSEE_512_STRUCT;
  120.  
  121. typedef struct                                  // Offset
  122. {                                               // HX/DEC
  123.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_EXEC_SCSI_CMD
  124.     WORD        SRB_Status;                     // 01/001 ASPI command status byte
  125.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  126.     BYTE        SRB_Flags;                      // 03/003 Reserved, MUST = 0
  127.     DWORD        SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  128.     DWORD        SRB_OpCode;
  129.     WORD           SRB_BufLen;                     // 0C/012 Data Allocation Length
  130.     BYTE        FAR *SRB_BufPointer;            // 10/016 Data Buffer Pointer
  131. }
  132. SRB32_SEEPROM, *PSRB32_SEEPROM, FAR *LPSRB32_SEEPROM;
  133.  
  134. typedef struct                                  // Offset
  135. {                                               // HX/DEC
  136.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_HA_INQUIRY
  137.     WORD        SRB_Status;                     // 01/001 ASPI command status byte
  138.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  139.     BYTE        SRB_Flags;                      // 03/003 Reserved, MUST = 0
  140.     DWORD        SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  141.     DWORD        SRB_OpCode;
  142.     DWORD        SRB_BufLen;                     // 0C/012 Data Allocation Length
  143.     BYTE        FAR *SRB_BufPointer;            // 10/016 Data Buffer Pointer
  144. }
  145. SRB32_EEPROM, *PSRB32_EEPROM, FAR *LPSRB32_EEPROM;
  146.  
  147. typedef struct                                  // Offset
  148. {                                               // HX/DEC
  149.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_EXEC_SCSI_CMD
  150.     WORD        SRB_Status;                     // 01/001 ASPI command status byte
  151.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  152.     BYTE        SRB_Flags;                      // 03/003 Reserved, MUST = 0
  153.     DWORD        SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  154.     DWORD        SRB_OpCode;
  155.     WORD        SRB_BufLen;                     // 0C/012 Data Allocation Length
  156.     BYTE        FAR *SRB_BufPointer;            // 10/016 Data Buffer Pointer
  157. }
  158. SRB32_PCIINFO, *PSRB32_PCIINFO, FAR *LPSRB32_PCIINFO;
  159.  
  160. typedef struct                                  // Offset
  161. {                                               // HX/DEC
  162.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_EXEC_SCSI_CMD
  163.     WORD        SRB_Status;                     // 01/001 ASPI command status byte
  164.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  165.     BYTE        SRB_Flags;                      // 03/003 Reserved, MUST = 0
  166.     DWORD        SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  167.     DWORD        SRB_OpCode;
  168.     WORD        SRB_BufLen;                     // 0C/012 Data Allocation Length
  169.     BYTE        FAR *SRB_BufPointer;            // 10/016 Data Buffer Pointer
  170. }
  171. SRB32_NEGO_XFER_RATE, *PSRB32_NEGO_XFER_RATE, FAR *LPSRB32_NEGO_XFER_RATE;
  172.  
  173. //*****************************************************************************
  174. //          %%% SRB - GET DEVICE TYPE - SC_GET_DEV_TYPE (1) %%%
  175. //*****************************************************************************
  176.  
  177. typedef struct                                  // Offset
  178. {                                               // HX/DEC
  179.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_GET_DEV_TYPE
  180.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  181.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  182.     BYTE        SRB_Flags;                      // 03/003 Reserved, MUST = 0
  183.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  184.     BYTE        SRB_Target;                     // 08/008 Target's SCSI ID
  185.     BYTE        SRB_Lun;                        // 09/009 Target's LUN number
  186.     BYTE        SRB_DeviceType;                 // 0A/010 Target's peripheral device type
  187.     BYTE        SRB_Rsvd1;                      // 0B/011 Reserved, MUST = 0
  188. }
  189. SRB32_GDEVBlock, *PSRB32_GDEVBlock, FAR *LPSRB32_GDEVBlock;
  190.  
  191. //*****************************************************************************
  192. //          %%% SRB - EXECUTE SCSI COMMAND - SC_EXEC_SCSI_CMD (2) %%%
  193. //*****************************************************************************
  194.  
  195. typedef struct                                  // Offset
  196. {                                               // HX/DEC
  197.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_EXEC_SCSI_CMD
  198.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  199.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  200.     BYTE        SRB_Flags;                      // 03/003 ASPI request flags
  201.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved
  202.     BYTE        SRB_Target;                     // 08/008 Target's SCSI ID
  203.     BYTE        SRB_Lun;                        // 09/009 Target's LUN number
  204.     WORD        SRB_Rsvd1;                      // 0A/010 Reserved for Alignment
  205.     DWORD       SRB_BufLen;                     // 0C/012 Data Allocation Length
  206.     BYTE        FAR *SRB_BufPointer;            // 10/016 Data Buffer Pointer
  207.     BYTE        SRB_SenseLen;                   // 14/020 Sense Allocation Length
  208.     BYTE        SRB_CDBLen;                     // 15/021 CDB Length
  209.     BYTE        SRB_HaStat;                     // 16/022 Host Adapter Status
  210.     BYTE        SRB_TargStat;                   // 17/023 Target Status
  211.     VOID        FAR *SRB_PostProc;              // 18/024 Post routine
  212. /**++SDK_EXCLUDE++**/
  213.     VOID        FAR *SRB_SRB16Pointer;          // 1C/028 SRB_Rsvd2
  214.     BYTE        SRB_PortStat;                   // 20/032 SRB_Rsvd3 Byte 1
  215.     BYTE        SRB_Rsvd3[15];                  // 21/033 Reserved, MUST = 0
  216. /**++SDK_32ONLY:    BYTE        SRB_Rsvd2[20];                  // 1C/028 Reserved, MUST = 0++**/
  217.     BYTE        CDBByte[16];                    // 30/048 SCSI CDB
  218. /**++SDK_EXCLUDE++**/
  219.     BYTE        SenseArea[];                    // 40/064 Request Sense buffer
  220. /**++SDK_32ONLY:    BYTE        SenseArea[SENSE_LEN+2];         // 50/064 Request Sense buffer++**/
  221. }
  222. SRB32_ExecSCSICmd, *PSRB32_ExecSCSICmd, FAR *LPSRB32_ExecSCSICmd;
  223.  
  224. //*****************************************************************************
  225. //          %%% SRB - ABORT AN SRB - SC_ABORT_SRB (3) %%%
  226. //*****************************************************************************
  227.  
  228. typedef struct                                  // Offset
  229. {                                               // HX/DEC
  230.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_ABORT_SRB
  231.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  232.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  233.     BYTE        SRB_Flags;                      // 03/003 Reserved
  234.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved
  235.     VOID        FAR *SRB_ToAbort;               // 08/008 Pointer to SRB to abort
  236. }
  237. SRB32_Abort, *PSRB32_Abort, FAR *LPSRB32_Abort;
  238.  
  239. //*****************************************************************************
  240. //          %%% SRB - BUS DEVICE RESET - SC_RESET_DEV (4) %%%
  241. //*****************************************************************************
  242.  
  243. typedef struct                                  // Offset
  244. {                                               // HX/DEC
  245.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_RESET_DEV
  246.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  247.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  248.     BYTE        SRB_Flags;                      // 03/003 ASPI request flags
  249.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved
  250.     BYTE        SRB_Target;                     // 08/008 Target's SCSI ID
  251.     BYTE        SRB_Lun;                        // 09/009 Target's LUN number
  252.     BYTE        SRB_Rsvd1[12];                  // 0A/010 Reserved for Alignment
  253.     BYTE        SRB_HaStat;                     // 16/022 Host Adapter Status
  254.     BYTE        SRB_TargStat;                   // 17/023 Target Status
  255.     VOID        FAR *SRB_PostProc;              // 18/024 Post routine
  256. /**++SDK_EXCLUDE++**/
  257.     VOID        FAR *SRB_Rsvd2;                 // 1C/028 Reserved, MUST = 0
  258.     BYTE        SRB_Rsvd3[32];                  // 20/032 Reserved, MUST = 0
  259. /**++SDK_32ONLY:    BYTE        SRB_Rsvd2[36];                  // 1C/028 Reserved, MUST = 0++**/
  260. }
  261. SRB32_BusDeviceReset, *PSRB32_BusDeviceReset, FAR *LPSRB32_BusDeviceReset;
  262.  
  263. //*****************************************************************************
  264. //          %%% SRB - GET DISK INFORMATION - SC_GET_DISK_INFO %%%
  265. //*****************************************************************************
  266.  
  267. typedef struct                                  // Offset
  268. {                                               // HX/DEC
  269.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_GET_DISK_INFO
  270.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  271.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  272.     BYTE        SRB_Flags;                      // 03/003 Reserved, MUST = 0
  273.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  274.     BYTE        SRB_Target;                     // 08/008 Target's SCSI ID
  275.     BYTE        SRB_Lun;                        // 09/009 Target's LUN number
  276.     BYTE        SRB_DriveFlags;                 // 0A/010 Driver flags
  277.     BYTE        SRB_Int13HDriveInfo;            // 0B/011 Host Adapter Status
  278.     BYTE        SRB_Heads;                      // 0C/012 Preferred number of heads translation
  279.     BYTE        SRB_Sectors;                    // 0D/013 Preferred number of sectors translation
  280.     BYTE        SRB_Rsvd1[10];                  // 0E/014 Reserved, MUST = 0
  281. }
  282. SRB32_GetDiskInfo, *PSRB32_GetDiskInfo, FAR *LPSRB32_GetDiskInfo;
  283.  
  284. //*****************************************************************************
  285. //          %%%  SRB - RESCAN SCSI BUS(ES) ON SCSIPORT %%%
  286. //*****************************************************************************
  287.  
  288. typedef struct                                  // Offset
  289. {                                               // HX/DEC
  290.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_RESCAN_SCSI_BUS
  291.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  292.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  293.     BYTE        SRB_Flags;                      // 03/003 Reserved, MUST = 0
  294.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  295. }
  296. SRB32_RescanPort, *PSRB32_RescanPort, FAR *LPSRB32_RescanPort;
  297.  
  298. //*****************************************************************************
  299. //          %%% SRB - GET/SET TARGET TIMEOUTS %%%
  300. //*****************************************************************************
  301.  
  302. typedef struct                                  // Offset
  303. {                                               // HX/DEC
  304.     BYTE        SRB_Cmd;                        // 00/000 ASPI command code = SC_GETSET_TIMEOUTS
  305.     BYTE        SRB_Status;                     // 01/001 ASPI command status byte
  306.     BYTE        SRB_HaId;                       // 02/002 ASPI host adapter number
  307.     BYTE        SRB_Flags;                      // 03/003 ASPI request flags
  308.     DWORD       SRB_Hdr_Rsvd;                   // 04/004 Reserved, MUST = 0
  309.     BYTE        SRB_Target;                     // 08/008 Target's SCSI ID
  310.     BYTE        SRB_Lun;                        // 09/009 Target's LUN number
  311.     DWORD       SRB_Timeout;                    // 0A/010 Timeout in half seconds
  312. }
  313. SRB32_GetSetTimeouts, *PSRB32_GetSetTimeouts, FAR *LPSRB32_GetSetTimeouts;
  314.  
  315. /**++SDK_PRIVATE++**/
  316. //*****************************************************************************
  317. //          %%% SRB - PER-TARGET QUEUE MANAGEMENT %%%
  318. //*****************************************************************************
  319.  
  320. typedef struct                                  // Offset
  321. {                                               // HX/DEC
  322.     BYTE        SRB_Cmd;                        // 00/000
  323.     BYTE        SRB_Status;                     // 01/001
  324.     BYTE        SRB_HaId;                       // 02/002
  325.     BYTE        SRB_Flags;                      // 03/003
  326.     DWORD       SRB_Hdr_Rsvd;                   // 04/004
  327.     BYTE        SRB_Target;                     // 08/008
  328.     BYTE        SRB_Lun;                        // 09/009
  329.     BYTE        SRB_QueueCmd;                   // 0A/010
  330.     BYTE        SRB_Enabled;                    // 0B/011
  331.     BYTE        SRB_FreezeDepth;                // 0C/012
  332.     BYTE        SRB_Rsvd1;                      // 0D/013
  333. }
  334. SRB32_ManageQueue, *PSRB32_ManageQueue, FAR *LPSRB32_ManageQueue;
  335.  
  336. typedef struct                                  // Offset
  337. {                                               // HX/DEC
  338.     BYTE        SRB_Cmd;                        // 00/000
  339.     BYTE        SRB_Status;                     // 01/001
  340.     BYTE        SRB_HaId;                       // 02/002
  341.     BYTE        SRB_Flags;                      // 03/003
  342.     DWORD       SRB_Hdr_Rsvd;                   // 04/004
  343.     BYTE        SRB_Target;                     // 08/008
  344.     BYTE        SRB_Lun;                        // 09/009
  345.     BYTE        SRB_QueueCmd;                   // 0A/010 - Must be SRBQ_SET_CDB_DELAY
  346.     BYTE        SRB_WriteCDB;                   // 0C/012 - Must go on top of SRB_Enabled
  347.     BYTE        SRB_WriteSpeed;                 // 0D/013 - Must go on top of SRB_FreezeDepth
  348.     BYTE        SRB_DelayMode;                  // 0B/011 - 0 None, 1 Delay, 2 bufcap, 3 HP bufcap
  349.     WORD        SRB_BlockSize;                  // 0E/014
  350.     DWORD       SRB_Reserved;                   // 10/016
  351. }
  352. SRB32_SetCDBDelay, *PSRB32_SetCDBDelay, FAR *LPSRB32_SetCDBDelay;
  353.  
  354. /**++SDK_PUBLIC++**/
  355. //*****************************************************************************
  356. //          %%% ASPIBUFF - Structure For Controllng I/O Buffers %%%
  357. //*****************************************************************************
  358.  
  359. typedef struct tag_ASPI32BUFF                   // Offset
  360. {                                               // HX/DEC
  361.     PBYTE                   AB_BufPointer;      // 00/000 Pointer to the ASPI allocated buffer
  362.     DWORD                   AB_BufLen;          // 04/004 Length in bytes of the buffer
  363.     DWORD                   AB_ZeroFill;        // 08/008 Flag set to 1 if buffer should be zeroed
  364. /**++SDK_EXCLUDE++**/
  365.     struct tag_ASPI32BUFF  *AB_Next;            // 0C/012 Pointer to next buffer in chain
  366. /**++SDK_32ONLY:    DWORD                   AB_Reserved;        // 0C/012 Reserved++**/
  367. }
  368. ASPI32BUFF, *PASPI32BUFF, FAR *LPASPI32BUFF;
  369.  
  370. /**++SDK_32ONLY://*****************************************************************************++**/
  371. /**++SDK_32ONLY://          %%% PROTOTYPES - User Callable ASPI for Win32 Functions %%%++**/
  372. /**++SDK_32ONLY://*****************************************************************************++**/
  373. /**++SDK_32ONLY:++**/
  374. /**++SDK_32ONLY:typedef void *LPSRB;++**/
  375. /**++SDK_32ONLY:++**/
  376. /**++SDK_32ONLY:#if defined(__BORLANDC__)++**/
  377. /**++SDK_32ONLY:++**/
  378. /**++SDK_32ONLY:DWORD _import GetASPI32SupportInfo( void );++**/
  379. /**++SDK_32ONLY:DWORD _import SendASPI32Command( LPSRB );++**/
  380. /**++SDK_32ONLY:BOOL _import GetASPI32Buffer( PASPI32BUFF );++**/
  381. /**++SDK_32ONLY:BOOL _import FreeASPI32Buffer( PASPI32BUFF );++**/
  382. /**++SDK_32ONLY:BOOL _import TranslateASPI32Address( PDWORD, PDWORD );++**/
  383. /**++SDK_32ONLY:++**/
  384. /**++SDK_32ONLY:#elif defined(_MSC_VER)++**/
  385. /**++SDK_32ONLY:++**/
  386. /**++SDK_32ONLY:__declspec(dllimport) DWORD GetASPI32SupportInfo( void );++**/
  387. /**++SDK_32ONLY:__declspec(dllimport) DWORD SendASPI32Command( LPSRB );++**/
  388. /**++SDK_32ONLY:__declspec(dllimport) BOOL GetASPI32Buffer( PASPI32BUFF );++**/
  389. /**++SDK_32ONLY:__declspec(dllimport) BOOL FreeASPI32Buffer( PASPI32BUFF );++**/
  390. /**++SDK_32ONLY:__declspec(dllimport) BOOL TranslateASPI32Address( PDWORD, PDWORD );++**/
  391. /**++SDK_32ONLY:++**/
  392. /**++SDK_32ONLY:#else++**/
  393. /**++SDK_32ONLY:++**/
  394. /**++SDK_32ONLY:extern DWORD GetASPI32SupportInfo( void );++**/
  395. /**++SDK_32ONLY:extern DWORD SendASPI32Command( LPSRB );++**/
  396. /**++SDK_32ONLY:extern BOOL GetASPI32Buffer( PASPI32BUFF );++**/
  397. /**++SDK_32ONLY:extern BOOL FreeASPI32Buffer( PASPI32BUFF );++**/
  398. /**++SDK_32ONLY:extern BOOL TranslateASPI32Address( PDWORD, PDWORD );++**/
  399. /**++SDK_32ONLY:++**/
  400. /**++SDK_32ONLY:#endif++**/
  401.  
  402. /*
  403. ** Restore compiler default packing and close off the C declarations.
  404. */
  405.  
  406. #ifdef __BORLANDC__
  407. #pragma option -a.
  408. #endif //__BORLANDC__
  409.  
  410. #ifdef _MSC_VER
  411. #pragma pack()
  412. #endif //_MSC_VER
  413.  
  414. #ifdef __cplusplus
  415. }
  416. #endif //__cplusplus
  417.  
  418. #endif //__WNASPI32_H__
  419.